
/* DWARF original prototype: int mpq_cmp_numden(mpq_srcptr op1, mpz_srcptr num_op2, mpz_srcptr
   den_op2, mpz_srcptr den_op2, mpz_srcptr num_op2) */

int mpq_cmp_numden(mpq_srcptr op1,mpz_srcptr num_op2,mpz_srcptr den_op2,mpz_srcptr den_op2_1,
                  mpz_srcptr num_op2_1)

{
  uint *puVar1;
  uint uVar2;
  mp_limb_t *pmVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  mpq_srcptr op1_00;
  uint uVar7;
  undefined1 *puVar8;
  uint uVar9;
  mpz_srcptr p_Var10;
  int iVar11;
  undefined1 *puVar12;
  mpz_srcptr p_Var13;
  int iVar14;
  mp_limb_t *pmVar15;
  mpz_srcptr p_Var16;
  mpz_srcptr p_Var17;
  undefined1 *puVar18;
  mpz_srcptr p_Var19;
  mpz_srcptr p_Var20;
  uint uVar21;
  undefined *puVar22;
  code *pcVar23;
  undefined1 auStack_60 [24];
  mp_limb_t *pmStack_34;
  tmp_reentrant_t *__tmp_marker;
  mpq_srcptr local_2c;
  
  puVar22 = PTR___stack_chk_guard_0009d540;
  puVar8 = auStack_60;
  p_Var16 = (mpz_srcptr)(op1->_mp_num)._mp_size;
  local_2c = *(mpq_srcptr *)PTR___stack_chk_guard_0009d540;
  if (p_Var16 == (mpz_srcptr)0x0) {
    p_Var10 = (mpz_srcptr)-(int)num_op2;
    puVar12 = auStack_60;
  }
  else {
    p_Var10 = p_Var16;
    puVar12 = auStack_60;
    if ((num_op2 != (mpz_srcptr)0x0) &&
       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))) {
      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;
      p_Var19 = p_Var16;
      if ((int)p_Var16 < 0) {
        p_Var19 = (mpz_srcptr)-(int)p_Var16;
      }
      iVar14 = num_op2_1->_mp_alloc;
      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;
      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);
      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];
      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);
      if (((uint)p_Var20 | uVar6) == uVar2) {
        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);
        puVar12 = auStack_60;
        if (p_Var16 == num_op2) {
          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);
          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;
          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;
          do {
            uVar2 = pmVar15[-1];
            uVar6 = *(uint *)(iVar14 + -4);
            puVar8 = puVar8 + -1;
            if (uVar2 != uVar6) {
              p_Var10 = (mpz_srcptr)0xffffffff;
              p_Var16 = (mpz_srcptr)&DAT_00000001;
              if (uVar6 < uVar2) {
                p_Var16 = (mpz_srcptr)0xffffffff;
              }
              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);
              if (uVar6 < uVar2) {
                p_Var10 = (mpz_srcptr)&DAT_00000001;
              }
              puVar12 = auStack_60;
              if (num_op2 == (mpz_srcptr)0x0) {
                p_Var10 = p_Var16;
                puVar12 = auStack_60;
              }
              goto LAB_000385e8;
            }
            pmVar15 = pmVar15 + -1;
            iVar14 = iVar14 + -4;
          } while (puVar8 != (undefined1 *)0xffffffff);
          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);
          p_Var10 = (mpz_srcptr)0x0;
          puVar12 = auStack_60;
        }
      }
      else {
        p_Var17 = num_op2;
        if ((int)num_op2 < 0) {
          p_Var17 = (mpz_srcptr)-(int)num_op2;
        }
        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;
        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);
        puVar12 = auStack_60;
        if ((int)puVar18 <= iVar11 + 1) {
          num_op2 = (mpz_srcptr)(puVar18 + 1);
          if ((int)(uVar2 + iVar11) <= (int)num_op2) {
            pmVar15 = (op1->_mp_num)._mp_d;
            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];
            if (uVar7 < 0x10000) {
              iVar4 = 9;
              if (uVar7 < 0x100) {
                iVar4 = 1;
              }
            }
            else {
              iVar4 = 0x19;
              if (uVar7 < 0x1000000) {
                iVar4 = 0x11;
              }
            }
            if (uVar9 < 0x10000) {
              iVar5 = 9;
              if (uVar9 < 0x100) {
                iVar5 = 1;
              }
            }
            else {
              iVar5 = 0x19;
              if (uVar9 < 0x1000000) {
                iVar5 = 0x11;
              }
            }
            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;
            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);
            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];
            if (uVar21 < 0x10000) {
              iVar4 = 1;
              if (0xff < uVar21) {
                iVar4 = 9;
              }
            }
            else {
              iVar4 = 0x19;
              if (uVar21 < 0x1000000) {
                iVar4 = 0x11;
              }
            }
            if (uVar6 < 0x10000) {
              iVar5 = 1;
              if (0xff < uVar6) {
                iVar5 = 9;
              }
            }
            else {
              iVar5 = 0x19;
              if (uVar6 < 0x1000000) {
                iVar5 = 0x11;
              }
            }
            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];
            puVar12 = auStack_60;
            if (iVar4 + 1U < uVar7) goto LAB_000385e8;
            if (uVar2 + iVar4 <= uVar7 + 1) {
              __tmp_marker = (tmp_reentrant_t *)0x0;
              if (((uint)den_op2_1 | uVar9) == 1) {
                uVar2 = iVar11 * 4;
                if (uVar2 < 0x7f01) {
                  puVar18 = puVar18 + -1;
                  iVar14 = -(uVar2 + 7 & 0xfffffff8);
                  puVar8 = auStack_60 + iVar14;
                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);
                }
                else {
                  pmStack_34 = (mp_limb_t *)
                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)
                                         (&__tmp_marker,uVar2);
                  pmVar15 = (op1->_mp_num)._mp_d;
                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;
                  puVar18 = puVar18 + -1;
                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;
                }
              }
              else {
                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {
                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);
                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);
                  puVar8 = auStack_60 + iVar4;
                }
                else {
                  pmVar3 = (mp_limb_t *)
                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);
                  iVar14 = num_op2_1->_mp_alloc;
                  pmVar15 = (op1->_mp_num)._mp_d;
                  puVar8 = auStack_60;
                }
                pmStack_34 = pmVar3 + (int)puVar18;
                if ((int)p_Var19 < (int)den_op2_1) {
                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;
                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);
                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;
                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;
                  puVar18 = puVar18 + -(uint)(iVar14 == 0);
                  pmVar15 = pmVar3;
                }
                else {
                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;
                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);
                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;
                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;
                  puVar18 = puVar18 + -(uint)(iVar14 == 0);
                  pmVar15 = pmVar3;
                }
              }
              if ((int)p_Var17 < (int)p_Var20) {
                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;
                p_Var10 = p_Var13;
                p_Var13 = num_op2;
              }
              else {
                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;
                p_Var10 = num_op2;
                p_Var20 = p_Var17;
              }
              num_op2 = p_Var10;
              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);
              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));
              if (puVar18 == puVar12) {
                pmVar15 = pmVar15 + (int)puVar18;
                pmStack_34 = pmStack_34 + (int)puVar18;
                do {
                  puVar18 = puVar18 + -1;
                  pmStack_34 = pmStack_34 + -1;
                  if ((int)puVar18 < 0) {
                    p_Var19 = (mpz_srcptr)0x0;
                    goto LAB_000385d0;
                  }
                  puVar1 = pmVar15 + -1;
                  pmVar15 = pmVar15 + -1;
                } while (*puVar1 == *pmStack_34);
                p_Var19 = (mpz_srcptr)&DAT_00000001;
                if (*puVar1 <= *pmStack_34) {
                  p_Var19 = (mpz_srcptr)0xffffffff;
                }
              }
              else {
                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);
              }
LAB_000385d0:
              if (__tmp_marker != (tmp_reentrant_t *)0x0) {
                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
              }
              p_Var10 = (mpz_srcptr)-(int)p_Var19;
              puVar12 = puVar8;
              if (-1 < (int)p_Var16) {
                p_Var10 = p_Var19;
              }
              goto LAB_000385e8;
            }
          }
          p_Var10 = (mpz_srcptr)-(int)p_Var16;
          puVar12 = auStack_60;
        }
      }
    }
  }
LAB_000385e8:
  if (local_2c == *(mpq_srcptr *)puVar22) {
    return (int)p_Var10;
  }
  pcVar23 = __gmpq_cmp;
  op1_00 = local_2c;
  puVar22 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  p_Var10 = (mpz_srcptr)num_op2[1]._mp_size;
  p_Var16 = (mpz_srcptr)num_op2->_mp_size;
  *(code **)(puVar12 + -4) = pcVar23;
  *(undefined **)(puVar12 + -0x10) = puVar22 + 0x6c7ac;
  *(mp_limb_t ***)(puVar12 + -0x18) = &num_op2[1]._mp_d;
  iVar14 = mpq_cmp_numden(op1_00,p_Var16,(mpz_srcptr)&num_op2->_mp_d,p_Var10,
                          *(mpz_srcptr *)(puVar12 + -0x18));
  return iVar14;
}



uint FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)

{
  uint *puVar1;
  uint uVar2;
  uint *puVar3;
  undefined1 *puVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  undefined1 *puVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  undefined *puVar21;
  undefined1 *puVar22;
  code *pcVar23;
  undefined1 auStack_60 [24];
  undefined1 *local_34;
  int local_30;
  int local_2c;
  
  puVar21 = PTR___stack_chk_guard_0009d540;
  puVar22 = auStack_60;
  uVar16 = *(uint *)(param_1 + 4);
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  if (uVar16 == 0) {
    uVar9 = -param_2;
    puVar4 = auStack_60;
  }
  else {
    uVar9 = uVar16;
    puVar4 = auStack_60;
    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {
      uVar19 = *(uint *)(param_1 + 0x10);
      uVar18 = uVar16;
      if ((int)uVar16 < 0) {
        uVar18 = -uVar16;
      }
      iVar14 = *param_5;
      uVar13 = *(uint *)(param_1 + 0x14);
      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);
      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);
      uVar2 = (uint)((param_4 | uVar10) == 1);
      if ((uVar19 | uVar7) == uVar2) {
        uVar9 = uVar16 - param_2;
        puVar4 = auStack_60;
        if (uVar16 == param_2) {
          iVar12 = uVar18 - 1;
          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;
          iVar14 = *param_3 + uVar18 * 4;
          do {
            uVar16 = *(uint *)(iVar11 + -4);
            uVar18 = *(uint *)(iVar14 + -4);
            iVar12 = iVar12 + -1;
            if (uVar16 != uVar18) {
              uVar9 = 0xffffffff;
              uVar19 = 1;
              if (uVar18 < uVar16) {
                uVar19 = 0xffffffff;
              }
              param_2 = (uint)(0 < (int)param_2);
              if (uVar18 < uVar16) {
                uVar9 = 1;
              }
              puVar4 = auStack_60;
              if (param_2 == 0) {
                uVar9 = uVar19;
                puVar4 = auStack_60;
              }
              goto LAB_000385e8;
            }
            iVar11 = iVar11 + -4;
            iVar14 = iVar14 + -4;
          } while (iVar12 != -1);
          param_2 = (uint)(0 < (int)param_2);
          uVar9 = 0;
          puVar4 = auStack_60;
        }
      }
      else {
        uVar17 = param_2;
        if ((int)param_2 < 0) {
          uVar17 = -param_2;
        }
        iVar11 = uVar19 + uVar17;
        iVar12 = uVar18 + param_4;
        puVar4 = auStack_60;
        if (iVar12 <= iVar11 + 1) {
          param_2 = iVar12 + 1;
          if ((int)(uVar2 + iVar11) <= (int)param_2) {
            puVar15 = *(undefined1 **)(param_1 + 8);
            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);
            if (uVar8 < 0x10000) {
              iVar5 = 9;
              if (uVar8 < 0x100) {
                iVar5 = 1;
              }
            }
            else {
              iVar5 = 0x19;
              if (uVar8 < 0x1000000) {
                iVar5 = 0x11;
              }
            }
            if (uVar10 < 0x10000) {
              iVar6 = 9;
              if (uVar10 < 0x100) {
                iVar6 = 1;
              }
            }
            else {
              iVar6 = 0x19;
              if (uVar10 < 0x1000000) {
                iVar6 = 0x11;
              }
            }
            param_2 = *param_3;
            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);
            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];
            if (uVar20 < 0x10000) {
              iVar5 = 1;
              if (0xff < uVar20) {
                iVar5 = 9;
              }
            }
            else {
              iVar5 = 0x19;
              if (uVar20 < 0x1000000) {
                iVar5 = 0x11;
              }
            }
            if (uVar7 < 0x10000) {
              iVar6 = 1;
              if (0xff < uVar7) {
                iVar6 = 9;
              }
            }
            else {
              iVar6 = 0x19;
              if (uVar7 < 0x1000000) {
                iVar6 = 0x11;
              }
            }
            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];
            puVar4 = auStack_60;
            if (iVar5 + 1U < uVar8) goto LAB_000385e8;
            if (uVar2 + iVar5 <= uVar8 + 1) {
              local_30 = 0;
              if ((param_4 | uVar10) == 1) {
                uVar9 = iVar11 * 4;
                if (uVar9 < 0x7f01) {
                  iVar12 = iVar12 + -1;
                  iVar14 = -(uVar9 + 7 & 0xfffffff8);
                  puVar22 = auStack_60 + iVar14;
                  local_34 = &stack0xffffffb8 + iVar14;
                }
                else {
                  local_34 = (undefined1 *)
                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);
                  puVar15 = *(undefined1 **)(param_1 + 8);
                  uVar13 = *(uint *)(param_1 + 0x14);
                  iVar12 = iVar12 + -1;
                  param_2 = *param_3;
                }
              }
              else {
                uVar9 = (iVar12 + iVar11) * 4;
                if (uVar9 < 0x7f01) {
                  iVar5 = -(uVar9 + 7 & 0xfffffff8);
                  puVar4 = &stack0xffffffb8 + iVar5;
                  puVar22 = auStack_60 + iVar5;
                }
                else {
                  puVar4 = (undefined1 *)
                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
                  iVar14 = *param_5;
                  puVar15 = *(undefined1 **)(param_1 + 8);
                  puVar22 = auStack_60;
                }
                local_34 = puVar4 + iVar12 * 4;
                if ((int)uVar18 < (int)param_4) {
                  *(uint *)(puVar22 + 0x10) = uVar18;
                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);
                  uVar13 = *(uint *)(param_1 + 0x14);
                  param_2 = *param_3;
                  iVar12 = iVar12 - (uint)(iVar14 == 0);
                  puVar15 = puVar4;
                }
                else {
                  *(uint *)(puVar22 + 0x10) = param_4;
                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);
                  param_2 = *param_3;
                  uVar13 = *(uint *)(param_1 + 0x14);
                  iVar12 = iVar12 - (uint)(iVar14 == 0);
                  puVar15 = puVar4;
                }
              }
              if ((int)uVar17 < (int)uVar19) {
                *(uint *)(puVar22 + 0x10) = uVar17;
                uVar9 = uVar13;
                uVar13 = param_2;
              }
              else {
                *(uint *)(puVar22 + 0x10) = uVar19;
                uVar9 = param_2;
                uVar19 = uVar17;
              }
              param_2 = uVar9;
              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);
              iVar11 = iVar11 - (uint)(iVar14 == 0);
              if (iVar12 == iVar11) {
                puVar15 = puVar15 + iVar12 * 4;
                puVar3 = (uint *)(local_34 + iVar12 * 4);
                do {
                  iVar12 = iVar12 + -1;
                  puVar3 = puVar3 + -1;
                  if (iVar12 < 0) {
                    uVar18 = 0;
                    goto LAB_000385d0;
                  }
                  puVar1 = (uint *)(puVar15 + -4);
                  puVar15 = puVar15 + -4;
                } while (*puVar1 == *puVar3);
                uVar18 = 1;
                if (*puVar1 <= *puVar3) {
                  uVar18 = 0xffffffff;
                }
              }
              else {
                uVar18 = iVar12 - iVar11;
              }
LAB_000385d0:
              if (local_30 != 0) {
                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
              }
              uVar9 = -uVar18;
              puVar4 = puVar22;
              if (-1 < (int)uVar16) {
                uVar9 = uVar18;
              }
              goto LAB_000385e8;
            }
          }
          uVar9 = -uVar16;
          puVar4 = auStack_60;
        }
      }
    }
  }
LAB_000385e8:
  if (local_2c == *(int *)puVar21) {
    return uVar9;
  }
  pcVar23 = __gmpq_cmp;
  puVar21 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  *(code **)(puVar4 + -4) = pcVar23;
  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;
  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;
  uVar16 = FUN_000382f0();
  return uVar16;
}


lui gp,0x7
addiu gp,gp,-0x32b0
addu gp,gp,t9
addiu sp,sp,-0x60
sw s2,0x40(sp)
sw s0,0x38(sp)
lw s2,-0x7b00(gp)
lw s0,0x4(a0)
sw s8,0x58(sp)
or s8,sp,zero
sw s5,0x4c(sp)
sw ra,0x5c(sp)
sw s7,0x54(sp)
sw s6,0x50(sp)
sw s4,0x48(sp)
sw s3,0x44(sp)
sw s1,0x3c(sp)
sw gp,0x18(sp)
lw v0,0x0(s2)
lw s5,0x70(s8)
sw v0,0x34(s8)
beq s0,zero,0x00038630
_nop
beq a1,zero,0x000385e8
_xor v0,s0,a1
bltz v0,0x000385e8
_or s7,a2,zero
lw s6,0x10(a0)
or s3,a0,zero
or s4,a3,zero
bltz s0,0x00038638
_or a2,s0,zero
lui v0,0x3fff
lw t4,0x0(s5)
lw t2,0x14(s3)
ori v0,v0,0xffff
addu v1,s4,v0
addu v0,s6,v0
sll v1,v1,0x2
sll v0,v0,0x2
addu v1,t4,v1
addu v0,t2,v0
lw a3,0x0(v1)
lw a0,0x0(v0)
or t3,s4,a3
xori v0,t3,0x1
sltiu v0,v0,0x1
or v1,s6,a0
beq v1,v0,0x00038648
_nop
bltz a1,0x00038640
_or s1,a1,zero
addu t0,s6,s1
addu t1,a2,s4
addiu v1,t0,0x1
slt v1,v1,t1
bne v1,zero,0x000385e8
_addu v1,v0,t0
addiu a1,t1,0x1
slt v1,a1,v1
bne v1,zero,0x00038658
_sll v1,a2,0x2
lw t7,0x8(s3)
addu v1,t7,v1
lw a1,-0x4(v1)
lui v1,0x1
sltu v1,a1,v1
bne v1,zero,0x00038660
_li t5,0x1
lui t6,0x100
li t5,0x11
li v1,0x19
sltu t6,a1,t6
movn v1,t5,t6
or t6,v1,zero
lw t8,-0x7eb4(gp)
srlv a1,a1,t6
lui v1,0x1
addu a1,t8,a1
sltu v1,a3,v1
lbu a1,0x0(a1)
beq v1,zero,0x000386ac
_sw a1,0x2c(s8)
li a1,0x1
li v1,0x9
sltiu t5,a3,0x100
movn v1,a1,t5
or t5,v1,zero
sll v1,t1,0x5
lw a1,0x0(s7)
sll t9,s1,0x2
addiu v1,v1,-0x42
srlv a3,a3,t5
addu v1,v1,t6
lw t6,0x2c(s8)
addu t9,a1,t9
addu a3,t8,a3
addu v1,v1,t6
lw t9,-0x4(t9)
lbu t6,0x0(a3)
lui a3,0x1
addu t5,v1,t5
sltu a3,t9,a3
beq a3,zero,0x00038690
_addu t5,t5,t6
li v1,0x1
li a3,0x9
sltiu t6,t9,0x100
movz v1,a3,t6
srlv t9,t9,v1
lui a3,0x1
addu t9,t8,t9
sltu a3,a0,a3
lbu t6,0x0(t9)
beq a3,zero,0x00038674
_sw t6,0x2c(s8)
li t6,0x1
li a3,0x9
sltiu t9,a0,0x100
movz t6,a3,t9
sll a3,t0,0x5
srlv a0,a0,t6
addiu a3,a3,-0x42
addu a0,t8,a0
addu a3,a3,v1
lw v1,0x2c(s8)
lbu t9,0x0(a0)
addu a3,a3,v1
addu a3,a3,t6
addu a3,a3,t9
addiu v1,a3,0x1
sltu v1,v1,t5
bne v1,zero,0x000385e8
_addu v0,v0,a3
addiu t5,t5,0x1
sltu v0,t5,v0
bne v0,zero,0x00038658
_li v0,0x1
beq t3,v0,0x0003878c
_sw zero,0x30(s8)
addu a1,t1,t0
sll a1,a1,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x0003881c
_addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s5,sp,0x18
sll v0,t1,0x2
lw t9,-0x7d8c(gp)
slt v1,a2,s4
sw t0,0x24(s8)
addu v0,s5,v0
sw t1,0x28(s8)
bne v1,zero,0x000387c0
_sw v0,0x2c(s8)
or a1,t7,zero
sw s4,0x10(sp)
or a3,t4,zero
jalr t9
_or a0,s5,zero
lw t1,0x28(s8)
sltiu v0,v0,0x1
lw gp,0x18(s8)
lw a1,0x0(s7)
lw t0,0x24(s8)
lw t2,0x14(s3)
subu s3,t1,v0
slt v0,s1,s6
lw t9,-0x7d8c(gp)
bne v0,zero,0x00038714
_sw t0,0x28(s8)
or a3,t2,zero
sw s6,0x10(sp)
or a2,s1,zero
jalr t9
_lw a0,0x2c(s8)
lw t0,0x28(s8)
sltiu v0,v0,0x1
subu t0,t0,v0
beq s3,t0,0x00038750
_lw gp,0x18(s8)
subu s3,s3,t0
lw a0,0x30(s8)
bne a0,zero,0x0003880c
_lw t9,-0x7a28(gp)
bltz s0,0x000385e8
_subu s0,zero,s3
or s0,s3,zero
lw a0,0x34(s8)
or v0,s0,zero
lw v1,0x0(s2)
bne a0,v1,0x0003888c
_lw t9,-0x7b70(gp)
or sp,s8,zero
lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
b 0x000385e8
_subu s0,zero,a1
b 0x00038370
_subu a2,zero,s0
b 0x000383c0
_subu s1,zero,a1
beq s0,a1,0x000386c8
_subu s0,s0,a1
b 0x000385e8
_nop
b 0x000385e8
_subu s0,zero,s0
li v1,0x9
sltiu t6,a1,0x100
movn v1,t5,t6
b 0x0003841c
_or t6,v1,zero
lui t6,0x100
li t9,0x11
li a3,0x19
sltu t6,a0,t6
movn a3,t9,t6
b 0x000384d0
_or t6,a3,zero
lui v1,0x100
li t6,0x11
li a3,0x19
sltu v1,t9,v1
movn a3,t6,v1
b 0x000384a4
_or v1,a3,zero
lui t5,0x100
li a1,0x11
li v1,0x19
sltu t5,a3,t5
movn v1,a1,t5
b 0x00038450
_or t5,v1,zero
lw v1,0x8(s3)
sll a0,a2,0x2
lw v0,0x0(s7)
addiu a2,a2,-0x1
li a3,-0x1
addu v1,v1,a0
addu v0,v0,a0
lw a0,-0x4(v1)
lw s0,-0x4(v0)
bne a0,s0,0x00038728
_addiu a2,a2,-0x1
addiu v1,v1,-0x4
bne a2,a3,0x000386e4
_addiu v0,v0,-0x4
or v0,zero,zero
or s0,zero,zero
slt a1,zero,a1
b 0x000385e8
_movz s0,v0,a1
or a3,a1,zero
sw s1,0x10(sp)
or a2,s6,zero
b 0x000385b0
_or a1,t2,zero
li a2,0x1
li v1,-0x1
sltu a0,s0,a0
or v0,a2,zero
movn v0,v1,a0
slt a1,zero,a1
movn v1,a2,a0
or s0,v1,zero
b 0x000385e8
_movz s0,v0,a1
lw v1,0x2c(s8)
sll v0,s3,0x2
addu s5,s5,v0
b 0x00038774
_addu v0,v1,v0
lw v1,-0x4(s5)
lw a0,0x0(v0)
bne v1,a0,0x000387f8
_addiu s5,s5,-0x4
addiu s3,s3,-0x1
bgez s3,0x00038764
_addiu v0,v0,-0x4
addiu v0,v0,0x4
b 0x000385d0
_or s3,zero,zero
sll v0,t0,0x2
sltiu v1,v0,0x7f01
beq v1,zero,0x00038854
_lw t9,-0x7d50(gp)
addiu v0,v0,0x7
or s5,t7,zero
srl v0,v0,0x3
addiu s3,t1,-0x1
sll v0,v0,0x3
subu sp,sp,v0
addiu v0,sp,0x18
b 0x00038594
_sw v0,0x2c(s8)
sw a2,0x10(sp)
or a1,t4,zero
or a3,t7,zero
or a2,s4,zero
jalr t9
_or a0,s5,zero
lw t1,0x28(s8)
sltiu v0,v0,0x1
lw t2,0x14(s3)
lw gp,0x18(s8)
lw a1,0x0(s7)
subu s3,t1,v0
b 0x00038594
_lw t0,0x24(s8)
li s3,0x1
li t0,-0x1
sltu v1,a0,v1
b 0x000385d0
_movz s3,t0,v1
jalr t9
_nop
b 0x000385dc
_lw gp,0x18(s8)
lw t9,-0x7d50(gp)
addiu a0,s8,0x30
sw a2,0x24(s8)
sw t0,0x28(s8)
jalr t9
_sw t1,0x2c(s8)
lw t4,0x0(s5)
or s5,v0,zero
lw gp,0x18(s8)
lw t7,0x8(s3)
lw a2,0x24(s8)
lw t0,0x28(s8)
b 0x00038544
_lw t1,0x2c(s8)
addiu a0,s8,0x30
sw t0,0x24(s8)
or a1,v0,zero
jalr t9
_sw t1,0x28(s8)
lw t1,0x28(s8)
lw s5,0x8(s3)
lw t2,0x14(s3)
lw gp,0x18(s8)
addiu s3,t1,-0x1
lw a1,0x0(s7)
lw t0,0x24(s8)
b 0x00038594
_sw v0,0x2c(s8)
jalr t9
_nop
(translation_unit "uint FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined1 *puVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  undefined *puVar21;\n  undefined1 *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  undefined1 *local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_0009d540;\n  puVar22 = auStack_60;\n  uVar16 = *(uint *)(param_1 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }\n  pcVar23 = __gmpq_cmp;\n  puVar21 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(code **)(puVar4 + -4) = pcVar23;\n  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;\n  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;\n  uVar16 = FUN_000382f0();\n  return uVar16;\n}\n\n" (function_definition "uint FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined1 *puVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  undefined *puVar21;\n  undefined1 *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  undefined1 *local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_0009d540;\n  puVar22 = auStack_60;\n  uVar16 = *(uint *)(param_1 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }\n  pcVar23 = __gmpq_cmp;\n  puVar21 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(code **)(puVar4 + -4) = pcVar23;\n  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;\n  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;\n  uVar16 = FUN_000382f0();\n  return uVar16;\n}" type_identifier (function_declarator "FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)" identifier (parameter_list "(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined1 *puVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  undefined *puVar21;\n  undefined1 *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  undefined1 *local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_0009d540;\n  puVar22 = auStack_60;\n  uVar16 = *(uint *)(param_1 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }\n  pcVar23 = __gmpq_cmp;\n  puVar21 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(code **)(puVar4 + -4) = pcVar23;\n  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;\n  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;\n  uVar16 = FUN_000382f0();\n  return uVar16;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined1 auStack_60 [24];" type_identifier (array_declarator "auStack_60 [24]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar21 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar21 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 4);" (assignment_expression "uVar16 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }" { (expression_statement "uVar9 = -param_2;" (assignment_expression "uVar9 = -param_2" identifier = (unary_expression "-param_2" - identifier)) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" { (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" identifier = identifier) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }" if (parenthesized_expression "((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2)))" ( (binary_expression "(param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))" ( (comma_expression "puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2)" (assignment_expression "puVar4 = auStack_60" identifier = identifier) , (binary_expression "-1 < (int)(uVar16 ^ param_2)" number_literal < (cast_expression "(int)(uVar16 ^ param_2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar16 ^ param_2)" ( (binary_expression "uVar16 ^ param_2" identifier ^ identifier) ))))) ))) )) (compound_statement "{\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }" { (expression_statement "uVar19 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0x10)" identifier = (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) (if_statement "if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }" if (parenthesized_expression "((int)uVar16 < 0)" ( (binary_expression "(int)uVar16 < 0" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar18 = -uVar16;\n      }" { (expression_statement "uVar18 = -uVar16;" (assignment_expression "uVar18 = -uVar16" identifier = (unary_expression "-uVar16" - identifier)) ;) })) (expression_statement "iVar14 = *param_5;" (assignment_expression "iVar14 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);" (assignment_expression "uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" identifier = (pointer_expression "*(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" * (cast_expression "(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + (param_4 + 0x3fffffff) * 4)" ( (binary_expression "iVar14 + (param_4 + 0x3fffffff) * 4" identifier + (binary_expression "(param_4 + 0x3fffffff) * 4" (parenthesized_expression "(param_4 + 0x3fffffff)" ( (binary_expression "param_4 + 0x3fffffff" identifier + number_literal) )) * number_literal)) ))))) ;) (expression_statement "uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);" (assignment_expression "uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" identifier = (pointer_expression "*(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" * (cast_expression "(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar13 + (uVar19 + 0x3fffffff) * 4)" ( (binary_expression "uVar13 + (uVar19 + 0x3fffffff) * 4" identifier + (binary_expression "(uVar19 + 0x3fffffff) * 4" (parenthesized_expression "(uVar19 + 0x3fffffff)" ( (binary_expression "uVar19 + 0x3fffffff" identifier + number_literal) )) * number_literal)) ))))) ;) (expression_statement "uVar2 = (uint)((param_4 | uVar10) == 1);" (assignment_expression "uVar2 = (uint)((param_4 | uVar10) == 1)" identifier = (call_expression "(uint)((param_4 | uVar10) == 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_4 | uVar10) == 1)" ( (binary_expression "(param_4 | uVar10) == 1" (parenthesized_expression "(param_4 | uVar10)" ( (binary_expression "param_4 | uVar10" identifier | identifier) )) == number_literal) )))) ;) (if_statement "if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" if (parenthesized_expression "((uVar19 | uVar7) == uVar2)" ( (binary_expression "(uVar19 | uVar7) == uVar2" (parenthesized_expression "(uVar19 | uVar7)" ( (binary_expression "uVar19 | uVar7" identifier | identifier) )) == identifier) )) (compound_statement "{\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }" { (expression_statement "uVar9 = uVar16 - param_2;" (assignment_expression "uVar9 = uVar16 - param_2" identifier = (binary_expression "uVar16 - param_2" identifier - identifier)) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }" if (parenthesized_expression "(uVar16 == param_2)" ( (binary_expression "uVar16 == param_2" identifier == identifier) )) (compound_statement "{\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }" { (expression_statement "iVar12 = uVar18 - 1;" (assignment_expression "iVar12 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ;) (expression_statement "iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;" (assignment_expression "iVar11 = *(int *)(param_1 + 8) + uVar18 * 4" identifier = (binary_expression "*(int *)(param_1 + 8) + uVar18 * 4" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + (binary_expression "uVar18 * 4" identifier * number_literal))) ;) (expression_statement "iVar14 = *param_3 + uVar18 * 4;" (assignment_expression "iVar14 = *param_3 + uVar18 * 4" identifier = (binary_expression "*param_3 + uVar18 * 4" (pointer_expression "*param_3" * identifier) + (binary_expression "uVar18 * 4" identifier * number_literal))) ;) (do_statement "do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);" do (compound_statement "{\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          }" { (expression_statement "uVar16 = *(uint *)(iVar11 + -4);" (assignment_expression "uVar16 = *(uint *)(iVar11 + -4)" identifier = (pointer_expression "*(uint *)(iVar11 + -4)" * (cast_expression "(uint *)(iVar11 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(iVar14 + -4);" (assignment_expression "uVar18 = *(uint *)(iVar14 + -4)" identifier = (pointer_expression "*(uint *)(iVar14 + -4)" * (cast_expression "(uint *)(iVar14 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -4)" ( (binary_expression "iVar14 + -4" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }" if (parenthesized_expression "(uVar16 != uVar18)" ( (binary_expression "uVar16 != uVar18" identifier != identifier) )) (compound_statement "{\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) (if_statement "if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\n                uVar19 = 0xffffffff;\n              }" { (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;) })) (expression_statement "param_2 = (uint)(0 < (int)param_2);" (assignment_expression "param_2 = (uint)(0 < (int)param_2)" identifier = (call_expression "(uint)(0 < (int)param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\n                uVar9 = 1;\n              }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) })) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }" { (expression_statement "uVar9 = uVar19;" (assignment_expression "uVar9 = uVar19" identifier = identifier) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) })) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;) })) (expression_statement "iVar11 = iVar11 + -4;" (assignment_expression "iVar11 = iVar11 + -4" identifier = (binary_expression "iVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + -4;" (assignment_expression "iVar14 = iVar14 + -4" identifier = (binary_expression "iVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) ;) (expression_statement "param_2 = (uint)(0 < (int)param_2);" (assignment_expression "param_2 = (uint)(0 < (int)param_2)" identifier = (call_expression "(uint)(0 < (int)param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) })) }) (else_clause "else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" else (compound_statement "{\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" { (expression_statement "uVar17 = param_2;" (assignment_expression "uVar17 = param_2" identifier = identifier) ;) (if_statement "if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }" if (parenthesized_expression "((int)param_2 < 0)" ( (binary_expression "(int)param_2 < 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar17 = -param_2;\n        }" { (expression_statement "uVar17 = -param_2;" (assignment_expression "uVar17 = -param_2" identifier = (unary_expression "-param_2" - identifier)) ;) })) (expression_statement "iVar11 = uVar19 + uVar17;" (assignment_expression "iVar11 = uVar19 + uVar17" identifier = (binary_expression "uVar19 + uVar17" identifier + identifier)) ;) (expression_statement "iVar12 = uVar18 + param_4;" (assignment_expression "iVar12 = uVar18 + param_4" identifier = (binary_expression "uVar18 + param_4" identifier + identifier)) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }" if (parenthesized_expression "(iVar12 <= iVar11 + 1)" ( (binary_expression "iVar12 <= iVar11 + 1" identifier <= (binary_expression "iVar11 + 1" identifier + number_literal)) )) (compound_statement "{\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }" { (expression_statement "param_2 = iVar12 + 1;" (assignment_expression "param_2 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }" if (parenthesized_expression "((int)(uVar2 + iVar11) <= (int)param_2)" ( (binary_expression "(int)(uVar2 + iVar11) <= (int)param_2" (cast_expression "(int)(uVar2 + iVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + iVar11)" ( (binary_expression "uVar2 + iVar11" identifier + identifier) ))) <= (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }" { (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 8)" * (cast_expression "(undefined1 **)(param_1 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);" (assignment_expression "uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4)" identifier = (pointer_expression "*(uint *)(puVar15 + uVar18 * 4 + -4)" * (cast_expression "(uint *)(puVar15 + uVar18 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + uVar18 * 4 + -4)" ( (binary_expression "puVar15 + uVar18 * 4 + -4" (binary_expression "puVar15 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar8 < 0x10000)" ( (binary_expression "uVar8 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (if_statement "if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }" if (parenthesized_expression "(uVar8 < 0x100)" ( (binary_expression "uVar8 < 0x100" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 1;\n              }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" { (expression_statement "iVar5 = 0x19;" (assignment_expression "iVar5 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }" if (parenthesized_expression "(uVar8 < 0x1000000)" ( (binary_expression "uVar8 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 0x11;\n              }" { (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) })) }))) (if_statement "if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar10 < 0x10000)" ( (binary_expression "uVar10 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }" { (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) (if_statement "if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }" if (parenthesized_expression "(uVar10 < 0x100)" ( (binary_expression "uVar10 < 0x100" identifier < number_literal) )) (compound_statement "{\n                iVar6 = 1;\n              }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" { (expression_statement "iVar6 = 0x19;" (assignment_expression "iVar6 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }" if (parenthesized_expression "(uVar10 < 0x1000000)" ( (binary_expression "uVar10 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar6 = 0x11;\n              }" { (expression_statement "iVar6 = 0x11;" (assignment_expression "iVar6 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);" (assignment_expression "uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4)" identifier = (pointer_expression "*(uint *)(param_2 + uVar17 * 4 + -4)" * (cast_expression "(uint *)(param_2 + uVar17 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + uVar17 * 4 + -4)" ( (binary_expression "param_2 + uVar17 * 4 + -4" (binary_expression "param_2 + uVar17 * 4" identifier + (binary_expression "uVar17 * 4" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];" (assignment_expression "uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" identifier = (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5" (binary_expression "iVar12 * 0x20 + -0x42" (binary_expression "iVar12 * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" identifier [ (binary_expression "uVar8 >> iVar5" identifier >> identifier) ])))) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" identifier [ (binary_expression "uVar10 >> iVar6" identifier >> identifier) ]))))) ;) (if_statement "if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar20 < 0x10000)" ( (binary_expression "uVar20 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (if_statement "if (0xff < uVar20) {\n                iVar5 = 9;\n              }" if (parenthesized_expression "(0xff < uVar20)" ( (binary_expression "0xff < uVar20" number_literal < identifier) )) (compound_statement "{\n                iVar5 = 9;\n              }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" { (expression_statement "iVar5 = 0x19;" (assignment_expression "iVar5 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }" if (parenthesized_expression "(uVar20 < 0x1000000)" ( (binary_expression "uVar20 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 0x11;\n              }" { (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) })) }))) (if_statement "if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar7 < 0x10000)" ( (binary_expression "uVar7 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (if_statement "if (0xff < uVar7) {\n                iVar6 = 9;\n              }" if (parenthesized_expression "(0xff < uVar7)" ( (binary_expression "0xff < uVar7" number_literal < identifier) )) (compound_statement "{\n                iVar6 = 9;\n              }" { (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" { (expression_statement "iVar6 = 0x19;" (assignment_expression "iVar6 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }" if (parenthesized_expression "(uVar7 < 0x1000000)" ( (binary_expression "uVar7 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar6 = 0x11;\n              }" { (expression_statement "iVar6 = 0x11;" (assignment_expression "iVar6 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];" (assignment_expression "iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" identifier = (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5" (binary_expression "iVar11 * 0x20 + -0x42" (binary_expression "iVar11 * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" identifier [ (binary_expression "uVar20 >> iVar5" identifier >> identifier) ])))) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" identifier [ (binary_expression "uVar7 >> iVar6" identifier >> identifier) ]))))) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if (iVar5 + 1U < uVar8) goto LAB_000385e8;" if (parenthesized_expression "(iVar5 + 1U < uVar8)" ( (binary_expression "iVar5 + 1U < uVar8" (binary_expression "iVar5 + 1U" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;)) (if_statement "if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }" if (parenthesized_expression "(uVar2 + iVar5 <= uVar8 + 1)" ( (binary_expression "uVar2 + iVar5 <= uVar8 + 1" (binary_expression "uVar2 + iVar5" identifier + identifier) <= (binary_expression "uVar8 + 1" identifier + number_literal)) )) (compound_statement "{\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" if (parenthesized_expression "((param_4 | uVar10) == 1)" ( (binary_expression "(param_4 | uVar10) == 1" (parenthesized_expression "(param_4 | uVar10)" ( (binary_expression "param_4 | uVar10" identifier | identifier) )) == number_literal) )) (compound_statement "{\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }" { (expression_statement "uVar9 = iVar11 * 4;" (assignment_expression "uVar9 = iVar11 * 4" identifier = (binary_expression "iVar11 * 4" identifier * number_literal)) ;) (if_statement "if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" if (parenthesized_expression "(uVar9 < 0x7f01)" ( (binary_expression "uVar9 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }" { (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "iVar14 = -(uVar9 + 7 & 0xfffffff8);" (assignment_expression "iVar14 = -(uVar9 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar9 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar9 + 7 & 0xfffffff8)" ( (binary_expression "uVar9 + 7 & 0xfffffff8" (binary_expression "uVar9 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar22 = auStack_60 + iVar14;" (assignment_expression "puVar22 = auStack_60 + iVar14" identifier = (binary_expression "auStack_60 + iVar14" identifier + identifier)) ;) (expression_statement "local_34 = &stack0xffffffb8 + iVar14;" (assignment_expression "local_34 = &stack0xffffffb8 + iVar14" identifier = (binary_expression "&stack0xffffffb8 + iVar14" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) }) (else_clause "else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" else (compound_statement "{\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" { (expression_statement "local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);" (assignment_expression "local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" identifier = (cast_expression "(undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,uVar9)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 8)" * (cast_expression "(undefined1 **)(param_1 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) }))) }) (else_clause "else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" else (compound_statement "{\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" { (expression_statement "uVar9 = (iVar12 + iVar11) * 4;" (assignment_expression "uVar9 = (iVar12 + iVar11) * 4" identifier = (binary_expression "(iVar12 + iVar11) * 4" (parenthesized_expression "(iVar12 + iVar11)" ( (binary_expression "iVar12 + iVar11" identifier + identifier) )) * number_literal)) ;) (if_statement "if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" if (parenthesized_expression "(uVar9 < 0x7f01)" ( (binary_expression "uVar9 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }" { (expression_statement "iVar5 = -(uVar9 + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(uVar9 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar9 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar9 + 7 & 0xfffffff8)" ( (binary_expression "uVar9 + 7 & 0xfffffff8" (binary_expression "uVar9 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar4 = &stack0xffffffb8 + iVar5;" (assignment_expression "puVar4 = &stack0xffffffb8 + iVar5" identifier = (binary_expression "&stack0xffffffb8 + iVar5" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) (expression_statement "puVar22 = auStack_60 + iVar5;" (assignment_expression "puVar22 = auStack_60 + iVar5" identifier = (binary_expression "auStack_60 + iVar5" identifier + identifier)) ;) }) (else_clause "else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" else (compound_statement "{\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" { (expression_statement "puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) (expression_statement "iVar14 = *param_5;" (assignment_expression "iVar14 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 8)" * (cast_expression "(undefined1 **)(param_1 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) }))) (expression_statement "local_34 = puVar4 + iVar12 * 4;" (assignment_expression "local_34 = puVar4 + iVar12 * 4" identifier = (binary_expression "puVar4 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal))) ;) (if_statement "if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" if (parenthesized_expression "((int)uVar18 < (int)param_4)" ( (binary_expression "(int)uVar18 < (int)param_4" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" { (expression_statement "*(uint *)(puVar22 + 0x10) = uVar18;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar18" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,iVar14,param_4,puVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar12 = iVar12 - (uint)(iVar14 == 0);" (assignment_expression "iVar12 = iVar12 - (uint)(iVar14 == 0)" identifier = (binary_expression "iVar12 - (uint)(iVar14 == 0)" identifier - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" identifier = identifier) ;) }) (else_clause "else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" else (compound_statement "{\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" { (expression_statement "*(uint *)(puVar22 + 0x10) = param_4;" (assignment_expression "*(uint *)(puVar22 + 0x10) = param_4" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,puVar15,uVar18,iVar14)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 - (uint)(iVar14 == 0);" (assignment_expression "iVar12 = iVar12 - (uint)(iVar14 == 0)" identifier = (binary_expression "iVar12 - (uint)(iVar14 == 0)" identifier - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" identifier = identifier) ;) }))) }))) (if_statement "if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" if (parenthesized_expression "((int)uVar17 < (int)uVar19)" ( (binary_expression "(int)uVar17 < (int)uVar19" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }" { (expression_statement "*(uint *)(puVar22 + 0x10) = uVar17;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar17" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" identifier = identifier) ;) (expression_statement "uVar13 = param_2;" (assignment_expression "uVar13 = param_2" identifier = identifier) ;) }) (else_clause "else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" else (compound_statement "{\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" { (expression_statement "*(uint *)(puVar22 + 0x10) = uVar19;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar19" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = param_2;" (assignment_expression "uVar9 = param_2" identifier = identifier) ;) (expression_statement "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" identifier = identifier) ;) }))) (expression_statement "param_2 = uVar9;" (assignment_expression "param_2 = uVar9" identifier = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_34,param_2,uVar19,uVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar11 = iVar11 - (uint)(iVar14 == 0);" (assignment_expression "iVar11 = iVar11 - (uint)(iVar14 == 0)" identifier = (binary_expression "iVar11 - (uint)(iVar14 == 0)" identifier - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) ))))) ;) (if_statement "if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }" if (parenthesized_expression "(iVar12 == iVar11)" ( (binary_expression "iVar12 == iVar11" identifier == identifier) )) (compound_statement "{\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }" { (expression_statement "puVar15 = puVar15 + iVar12 * 4;" (assignment_expression "puVar15 = puVar15 + iVar12 * 4" identifier = (binary_expression "puVar15 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal))) ;) (expression_statement "puVar3 = (uint *)(local_34 + iVar12 * 4);" (assignment_expression "puVar3 = (uint *)(local_34 + iVar12 * 4)" identifier = (cast_expression "(uint *)(local_34 + iVar12 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + iVar12 * 4)" ( (binary_expression "local_34 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);" do (compound_statement "{\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" { (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + -1;" (assignment_expression "puVar3 = puVar3 + -1" identifier = (binary_expression "puVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (compound_statement "{\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000385d0;" goto statement_identifier ;) })) (expression_statement "puVar1 = (uint *)(puVar15 + -4);" (assignment_expression "puVar1 = (uint *)(puVar15 + -4)" identifier = (cast_expression "(uint *)(puVar15 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*puVar1 == *puVar3)" ( (binary_expression "*puVar1 == *puVar3" (pointer_expression "*puVar1" * identifier) == (pointer_expression "*puVar3" * identifier)) )) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (if_statement "if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }" if (parenthesized_expression "(*puVar1 <= *puVar3)" ( (binary_expression "*puVar1 <= *puVar3" (pointer_expression "*puVar1" * identifier) <= (pointer_expression "*puVar3" * identifier)) )) (compound_statement "{\n                  uVar18 = 0xffffffff;\n                }" { (expression_statement "uVar18 = 0xffffffff;" (assignment_expression "uVar18 = 0xffffffff" identifier = number_literal) ;) })) }) (else_clause "else {\n                uVar18 = iVar12 - iVar11;\n              }" else (compound_statement "{\n                uVar18 = iVar12 - iVar11;\n              }" { (expression_statement "uVar18 = iVar12 - iVar11;" (assignment_expression "uVar18 = iVar12 - iVar11" identifier = (binary_expression "iVar12 - iVar11" identifier - identifier)) ;) }))) (labeled_statement "LAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" statement_identifier : (if_statement "if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar9 = -uVar18;" (assignment_expression "uVar9 = -uVar18" identifier = (unary_expression "-uVar18" - identifier)) ;) (expression_statement "puVar4 = puVar22;" (assignment_expression "puVar4 = puVar22" identifier = identifier) ;) (if_statement "if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar9 = uVar18;\n              }" { (expression_statement "uVar9 = uVar18;" (assignment_expression "uVar9 = uVar18" identifier = identifier) ;) })) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;) })) })) (expression_statement "uVar9 = -uVar16;" (assignment_expression "uVar9 = -uVar16" identifier = (unary_expression "-uVar16" - identifier)) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) })) }))) })) }))) (labeled_statement "LAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar21)" ( (binary_expression "local_2c == *(int *)puVar21" identifier == (pointer_expression "*(int *)puVar21" * (cast_expression "(int *)puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar9;\n  }" { (return_statement "return uVar9;" return identifier ;) }))) (expression_statement "pcVar23 = __gmpq_cmp;" (assignment_expression "pcVar23 = __gmpq_cmp" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar21 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar4 + -4) = pcVar23;" (assignment_expression "*(code **)(puVar4 + -4) = pcVar23" (pointer_expression "*(code **)(puVar4 + -4)" * (cast_expression "(code **)(puVar4 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -4)" ( (binary_expression "puVar4 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;" (assignment_expression "*(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac" (pointer_expression "*(undefined **)(puVar4 + -0x10)" * (cast_expression "(undefined **)(puVar4 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x10)" ( (binary_expression "puVar4 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar21 + 0x6c7ac" identifier + number_literal)) ;) (expression_statement "*(uint *)(puVar4 + -0x18) = param_2 + 0x14;" (assignment_expression "*(uint *)(puVar4 + -0x18) = param_2 + 0x14" (pointer_expression "*(uint *)(puVar4 + -0x18)" * (cast_expression "(uint *)(puVar4 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x18)" ( (binary_expression "puVar4 + -0x18" identifier + number_literal) )))) = (binary_expression "param_2 + 0x14" identifier + number_literal)) ;) (expression_statement "uVar16 = FUN_000382f0();" (assignment_expression "uVar16 = FUN_000382f0()" identifier = (call_expression "FUN_000382f0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar16;" return identifier ;) })))
(translation_unit "/* DWARF original prototype: int mpq_cmp_numden(mpq_srcptr op1, mpz_srcptr num_op2, mpz_srcptr\n   den_op2, mpz_srcptr den_op2, mpz_srcptr num_op2) */\n\nint mpq_cmp_numden(mpq_srcptr op1,mpz_srcptr num_op2,mpz_srcptr den_op2,mpz_srcptr den_op2_1,\n                  mpz_srcptr num_op2_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  mp_limb_t *pmVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  mpq_srcptr op1_00;\n  uint uVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  mpz_srcptr p_Var10;\n  int iVar11;\n  undefined1 *puVar12;\n  mpz_srcptr p_Var13;\n  int iVar14;\n  mp_limb_t *pmVar15;\n  mpz_srcptr p_Var16;\n  mpz_srcptr p_Var17;\n  undefined1 *puVar18;\n  mpz_srcptr p_Var19;\n  mpz_srcptr p_Var20;\n  uint uVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  mp_limb_t *pmStack_34;\n  tmp_reentrant_t *__tmp_marker;\n  mpq_srcptr local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0009d540;\n  puVar8 = auStack_60;\n  p_Var16 = (mpz_srcptr)(op1->_mp_num)._mp_size;\n  local_2c = *(mpq_srcptr *)PTR___stack_chk_guard_0009d540;\n  if (p_Var16 == (mpz_srcptr)0x0) {\n    p_Var10 = (mpz_srcptr)-(int)num_op2;\n    puVar12 = auStack_60;\n  }\n  else {\n    p_Var10 = p_Var16;\n    puVar12 = auStack_60;\n    if ((num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))) {\n      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;\n      p_Var19 = p_Var16;\n      if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }\n      iVar14 = num_op2_1->_mp_alloc;\n      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);\n      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];\n      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);\n      if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(mpq_srcptr *)puVar22) {\n    return (int)p_Var10;\n  }\n  pcVar23 = __gmpq_cmp;\n  op1_00 = local_2c;\n  puVar22 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  p_Var10 = (mpz_srcptr)num_op2[1]._mp_size;\n  p_Var16 = (mpz_srcptr)num_op2->_mp_size;\n  *(code **)(puVar12 + -4) = pcVar23;\n  *(undefined **)(puVar12 + -0x10) = puVar22 + 0x6c7ac;\n  *(mp_limb_t ***)(puVar12 + -0x18) = &num_op2[1]._mp_d;\n  iVar14 = mpq_cmp_numden(op1_00,p_Var16,(mpz_srcptr)&num_op2->_mp_d,p_Var10,\n                          *(mpz_srcptr *)(puVar12 + -0x18));\n  return iVar14;\n}\n\n" comment (function_definition "int mpq_cmp_numden(mpq_srcptr op1,mpz_srcptr num_op2,mpz_srcptr den_op2,mpz_srcptr den_op2_1,\n                  mpz_srcptr num_op2_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  mp_limb_t *pmVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  mpq_srcptr op1_00;\n  uint uVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  mpz_srcptr p_Var10;\n  int iVar11;\n  undefined1 *puVar12;\n  mpz_srcptr p_Var13;\n  int iVar14;\n  mp_limb_t *pmVar15;\n  mpz_srcptr p_Var16;\n  mpz_srcptr p_Var17;\n  undefined1 *puVar18;\n  mpz_srcptr p_Var19;\n  mpz_srcptr p_Var20;\n  uint uVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  mp_limb_t *pmStack_34;\n  tmp_reentrant_t *__tmp_marker;\n  mpq_srcptr local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0009d540;\n  puVar8 = auStack_60;\n  p_Var16 = (mpz_srcptr)(op1->_mp_num)._mp_size;\n  local_2c = *(mpq_srcptr *)PTR___stack_chk_guard_0009d540;\n  if (p_Var16 == (mpz_srcptr)0x0) {\n    p_Var10 = (mpz_srcptr)-(int)num_op2;\n    puVar12 = auStack_60;\n  }\n  else {\n    p_Var10 = p_Var16;\n    puVar12 = auStack_60;\n    if ((num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))) {\n      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;\n      p_Var19 = p_Var16;\n      if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }\n      iVar14 = num_op2_1->_mp_alloc;\n      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);\n      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];\n      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);\n      if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(mpq_srcptr *)puVar22) {\n    return (int)p_Var10;\n  }\n  pcVar23 = __gmpq_cmp;\n  op1_00 = local_2c;\n  puVar22 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  p_Var10 = (mpz_srcptr)num_op2[1]._mp_size;\n  p_Var16 = (mpz_srcptr)num_op2->_mp_size;\n  *(code **)(puVar12 + -4) = pcVar23;\n  *(undefined **)(puVar12 + -0x10) = puVar22 + 0x6c7ac;\n  *(mp_limb_t ***)(puVar12 + -0x18) = &num_op2[1]._mp_d;\n  iVar14 = mpq_cmp_numden(op1_00,p_Var16,(mpz_srcptr)&num_op2->_mp_d,p_Var10,\n                          *(mpz_srcptr *)(puVar12 + -0x18));\n  return iVar14;\n}" primitive_type (function_declarator "mpq_cmp_numden(mpq_srcptr op1,mpz_srcptr num_op2,mpz_srcptr den_op2,mpz_srcptr den_op2_1,\n                  mpz_srcptr num_op2_1)" identifier (parameter_list "(mpq_srcptr op1,mpz_srcptr num_op2,mpz_srcptr den_op2,mpz_srcptr den_op2_1,\n                  mpz_srcptr num_op2_1)" ( (parameter_declaration "mpq_srcptr op1" type_identifier identifier) , (parameter_declaration "mpz_srcptr num_op2" type_identifier identifier) , (parameter_declaration "mpz_srcptr den_op2" type_identifier identifier) , (parameter_declaration "mpz_srcptr den_op2_1" type_identifier identifier) , (parameter_declaration "mpz_srcptr num_op2_1" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  mp_limb_t *pmVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  mpq_srcptr op1_00;\n  uint uVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  mpz_srcptr p_Var10;\n  int iVar11;\n  undefined1 *puVar12;\n  mpz_srcptr p_Var13;\n  int iVar14;\n  mp_limb_t *pmVar15;\n  mpz_srcptr p_Var16;\n  mpz_srcptr p_Var17;\n  undefined1 *puVar18;\n  mpz_srcptr p_Var19;\n  mpz_srcptr p_Var20;\n  uint uVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  mp_limb_t *pmStack_34;\n  tmp_reentrant_t *__tmp_marker;\n  mpq_srcptr local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_0009d540;\n  puVar8 = auStack_60;\n  p_Var16 = (mpz_srcptr)(op1->_mp_num)._mp_size;\n  local_2c = *(mpq_srcptr *)PTR___stack_chk_guard_0009d540;\n  if (p_Var16 == (mpz_srcptr)0x0) {\n    p_Var10 = (mpz_srcptr)-(int)num_op2;\n    puVar12 = auStack_60;\n  }\n  else {\n    p_Var10 = p_Var16;\n    puVar12 = auStack_60;\n    if ((num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))) {\n      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;\n      p_Var19 = p_Var16;\n      if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }\n      iVar14 = num_op2_1->_mp_alloc;\n      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);\n      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];\n      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);\n      if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(mpq_srcptr *)puVar22) {\n    return (int)p_Var10;\n  }\n  pcVar23 = __gmpq_cmp;\n  op1_00 = local_2c;\n  puVar22 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  p_Var10 = (mpz_srcptr)num_op2[1]._mp_size;\n  p_Var16 = (mpz_srcptr)num_op2->_mp_size;\n  *(code **)(puVar12 + -4) = pcVar23;\n  *(undefined **)(puVar12 + -0x10) = puVar22 + 0x6c7ac;\n  *(mp_limb_t ***)(puVar12 + -0x18) = &num_op2[1]._mp_d;\n  iVar14 = mpq_cmp_numden(op1_00,p_Var16,(mpz_srcptr)&num_op2->_mp_d,p_Var10,\n                          *(mpz_srcptr *)(puVar12 + -0x18));\n  return iVar14;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar3;" type_identifier (pointer_declarator "*pmVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "mpq_srcptr op1_00;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "mpz_srcptr p_Var10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "mpz_srcptr p_Var13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "mp_limb_t *pmVar15;" type_identifier (pointer_declarator "*pmVar15" * identifier) ;) (declaration "mpz_srcptr p_Var16;" type_identifier identifier ;) (declaration "mpz_srcptr p_Var17;" type_identifier identifier ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "mpz_srcptr p_Var19;" type_identifier identifier ;) (declaration "mpz_srcptr p_Var20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined1 auStack_60 [24];" type_identifier (array_declarator "auStack_60 [24]" identifier [ number_literal ]) ;) (declaration "mp_limb_t *pmStack_34;" type_identifier (pointer_declarator "*pmStack_34" * identifier) ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "mpq_srcptr local_2c;" type_identifier identifier ;) (expression_statement "puVar22 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar22 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar8 = auStack_60;" (assignment_expression "puVar8 = auStack_60" identifier = identifier) ;) (expression_statement "p_Var16 = (mpz_srcptr)(op1->_mp_num)._mp_size;" (assignment_expression "p_Var16 = (mpz_srcptr)(op1->_mp_num)._mp_size" identifier = (field_expression "(mpz_srcptr)(op1->_mp_num)._mp_size" (call_expression "(mpz_srcptr)(op1->_mp_num)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(op1->_mp_num)" ( (field_expression "op1->_mp_num" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "local_2c = *(mpq_srcptr *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(mpq_srcptr *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(mpq_srcptr *)PTR___stack_chk_guard_0009d540" * (cast_expression "(mpq_srcptr *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "mpq_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (p_Var16 == (mpz_srcptr)0x0) {\n    p_Var10 = (mpz_srcptr)-(int)num_op2;\n    puVar12 = auStack_60;\n  }\n  else {\n    p_Var10 = p_Var16;\n    puVar12 = auStack_60;\n    if ((num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))) {\n      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;\n      p_Var19 = p_Var16;\n      if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }\n      iVar14 = num_op2_1->_mp_alloc;\n      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);\n      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];\n      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);\n      if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(p_Var16 == (mpz_srcptr)0x0)" ( (binary_expression "p_Var16 == (mpz_srcptr)0x0" identifier == (cast_expression "(mpz_srcptr)0x0" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) )) (compound_statement "{\n    p_Var10 = (mpz_srcptr)-(int)num_op2;\n    puVar12 = auStack_60;\n  }" { (expression_statement "p_Var10 = (mpz_srcptr)-(int)num_op2;" (assignment_expression "p_Var10 = (mpz_srcptr)-(int)num_op2" identifier = (binary_expression "(mpz_srcptr)-(int)num_op2" (parenthesized_expression "(mpz_srcptr)" ( identifier )) - (cast_expression "(int)num_op2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n    p_Var10 = p_Var16;\n    puVar12 = auStack_60;\n    if ((num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))) {\n      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;\n      p_Var19 = p_Var16;\n      if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }\n      iVar14 = num_op2_1->_mp_alloc;\n      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);\n      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];\n      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);\n      if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    p_Var10 = p_Var16;\n    puVar12 = auStack_60;\n    if ((num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))) {\n      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;\n      p_Var19 = p_Var16;\n      if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }\n      iVar14 = num_op2_1->_mp_alloc;\n      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);\n      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];\n      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);\n      if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }\n    }\n  }" { (expression_statement "p_Var10 = p_Var16;" (assignment_expression "p_Var10 = p_Var16" identifier = identifier) ;) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) (if_statement "if ((num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))) {\n      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;\n      p_Var19 = p_Var16;\n      if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }\n      iVar14 = num_op2_1->_mp_alloc;\n      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);\n      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];\n      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);\n      if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }\n    }" if (parenthesized_expression "((num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2)))" ( (binary_expression "(num_op2 != (mpz_srcptr)0x0) &&\n       (puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))" (parenthesized_expression "(num_op2 != (mpz_srcptr)0x0)" ( (binary_expression "num_op2 != (mpz_srcptr)0x0" identifier != (cast_expression "(mpz_srcptr)0x0" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) )) && (parenthesized_expression "(puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2))" ( (comma_expression "puVar12 = auStack_60, -1 < (int)((uint)p_Var16 ^ (uint)num_op2)" (assignment_expression "puVar12 = auStack_60" identifier = identifier) , (binary_expression "-1 < (int)((uint)p_Var16 ^ (uint)num_op2)" number_literal < (cast_expression "(int)((uint)p_Var16 ^ (uint)num_op2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)p_Var16 ^ (uint)num_op2)" ( (binary_expression "(uint)p_Var16 ^ (uint)num_op2" (cast_expression "(uint)p_Var16" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (cast_expression "(uint)num_op2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ))) )) (compound_statement "{\n      p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;\n      p_Var19 = p_Var16;\n      if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }\n      iVar14 = num_op2_1->_mp_alloc;\n      p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n      uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);\n      uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];\n      uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);\n      if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }\n    }" { (expression_statement "p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size;" (assignment_expression "p_Var20 = (mpz_srcptr)(op1->_mp_den)._mp_size" identifier = (field_expression "(mpz_srcptr)(op1->_mp_den)._mp_size" (call_expression "(mpz_srcptr)(op1->_mp_den)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(op1->_mp_den)" ( (field_expression "op1->_mp_den" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "p_Var19 = p_Var16;" (assignment_expression "p_Var19 = p_Var16" identifier = identifier) ;) (if_statement "if ((int)p_Var16 < 0) {\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }" if (parenthesized_expression "((int)p_Var16 < 0)" ( (binary_expression "(int)p_Var16 < 0" (cast_expression "(int)p_Var16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        p_Var19 = (mpz_srcptr)-(int)p_Var16;\n      }" { (expression_statement "p_Var19 = (mpz_srcptr)-(int)p_Var16;" (assignment_expression "p_Var19 = (mpz_srcptr)-(int)p_Var16" identifier = (binary_expression "(mpz_srcptr)-(int)p_Var16" (parenthesized_expression "(mpz_srcptr)" ( identifier )) - (cast_expression "(int)p_Var16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "iVar14 = num_op2_1->_mp_alloc;" (assignment_expression "iVar14 = num_op2_1->_mp_alloc" identifier = (field_expression "num_op2_1->_mp_alloc" identifier -> field_identifier)) ;) (expression_statement "p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;" (assignment_expression "p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d" identifier = (field_expression "(mpz_srcptr)(op1->_mp_den)._mp_d" (call_expression "(mpz_srcptr)(op1->_mp_den)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(op1->_mp_den)" ( (field_expression "op1->_mp_den" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4);" (assignment_expression "uVar9 = *(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4)" identifier = (pointer_expression "*(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4)" * (cast_expression "(uint *)(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4)" ( (binary_expression "iVar14 + (int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4" identifier + (binary_expression "(int)((int)&den_op2_1[0x5555555]._mp_alloc + 3) * 4" (cast_expression "(int)((int)&den_op2_1[0x5555555]._mp_alloc + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&den_op2_1[0x5555555]._mp_alloc + 3)" ( (binary_expression "(int)&den_op2_1[0x5555555]._mp_alloc + 3" (cast_expression "(int)&den_op2_1[0x5555555]._mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&den_op2_1[0x5555555]._mp_alloc" & (field_expression "den_op2_1[0x5555555]._mp_alloc" (subscript_expression "den_op2_1[0x5555555]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc];" (assignment_expression "uVar6 = (&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc]" identifier = (subscript_expression "(&p_Var13[1]._mp_alloc)[(int)&p_Var20[0x5555555]._mp_alloc]" (parenthesized_expression "(&p_Var13[1]._mp_alloc)" ( (pointer_expression "&p_Var13[1]._mp_alloc" & (field_expression "p_Var13[1]._mp_alloc" (subscript_expression "p_Var13[1]" identifier [ number_literal ]) . field_identifier)) )) [ (cast_expression "(int)&p_Var20[0x5555555]._mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var20[0x5555555]._mp_alloc" & (field_expression "p_Var20[0x5555555]._mp_alloc" (subscript_expression "p_Var20[0x5555555]" identifier [ number_literal ]) . field_identifier))) ])) ;) (expression_statement "uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1);" (assignment_expression "uVar2 = (uint)(((uint)den_op2_1 | uVar9) == 1)" identifier = (call_expression "(uint)(((uint)den_op2_1 | uVar9) == 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((uint)den_op2_1 | uVar9) == 1)" ( (binary_expression "((uint)den_op2_1 | uVar9) == 1" (parenthesized_expression "((uint)den_op2_1 | uVar9)" ( (binary_expression "(uint)den_op2_1 | uVar9" (cast_expression "(uint)den_op2_1" ( (type_descriptor "uint" type_identifier) ) identifier) | identifier) )) == number_literal) )))) ;) (if_statement "if (((uint)p_Var20 | uVar6) == uVar2) {\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }\n      else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }" if (parenthesized_expression "(((uint)p_Var20 | uVar6) == uVar2)" ( (binary_expression "((uint)p_Var20 | uVar6) == uVar2" (parenthesized_expression "((uint)p_Var20 | uVar6)" ( (binary_expression "(uint)p_Var20 | uVar6" (cast_expression "(uint)p_Var20" ( (type_descriptor "uint" type_identifier) ) identifier) | identifier) )) == identifier) )) (compound_statement "{\n        p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);\n        puVar12 = auStack_60;\n        if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }\n      }" { (expression_statement "p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2);" (assignment_expression "p_Var10 = (mpz_srcptr)((int)p_Var16 - (int)num_op2)" identifier = (call_expression "(mpz_srcptr)((int)p_Var16 - (int)num_op2)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "((int)p_Var16 - (int)num_op2)" ( (binary_expression "(int)p_Var16 - (int)num_op2" (cast_expression "(int)p_Var16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)num_op2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) (if_statement "if (p_Var16 == num_op2) {\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }" if (parenthesized_expression "(p_Var16 == num_op2)" ( (binary_expression "p_Var16 == num_op2" identifier == identifier) )) (compound_statement "{\n          puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);\n          pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;\n          iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;\n          do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);\n          num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n          p_Var10 = (mpz_srcptr)0x0;\n          puVar12 = auStack_60;\n        }" { (expression_statement "puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3);" (assignment_expression "puVar8 = (undefined1 *)((int)&p_Var19[-1]._mp_d + 3)" identifier = (cast_expression "(undefined1 *)((int)&p_Var19[-1]._mp_d + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&p_Var19[-1]._mp_d + 3)" ( (binary_expression "(int)&p_Var19[-1]._mp_d + 3" (cast_expression "(int)&p_Var19[-1]._mp_d" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var19[-1]._mp_d" & (field_expression "p_Var19[-1]._mp_d" (subscript_expression "p_Var19[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19;" (assignment_expression "pmVar15 = (op1->_mp_num)._mp_d + (int)p_Var19" identifier = (binary_expression "(op1->_mp_num)._mp_d + (int)p_Var19" (field_expression "(op1->_mp_num)._mp_d" (parenthesized_expression "(op1->_mp_num)" ( (field_expression "op1->_mp_num" identifier -> field_identifier) )) . field_identifier) + (cast_expression "(int)p_Var19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4;" (assignment_expression "iVar14 = den_op2->_mp_alloc + (int)p_Var19 * 4" identifier = (binary_expression "den_op2->_mp_alloc + (int)p_Var19 * 4" (field_expression "den_op2->_mp_alloc" identifier -> field_identifier) + (binary_expression "(int)p_Var19 * 4" (cast_expression "(int)p_Var19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (do_statement "do {\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          } while (puVar8 != (undefined1 *)0xffffffff);" do (compound_statement "{\n            uVar2 = pmVar15[-1];\n            uVar6 = *(uint *)(iVar14 + -4);\n            puVar8 = puVar8 + -1;\n            if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            pmVar15 = pmVar15 + -1;\n            iVar14 = iVar14 + -4;\n          }" { (expression_statement "uVar2 = pmVar15[-1];" (assignment_expression "uVar2 = pmVar15[-1]" identifier = (subscript_expression "pmVar15[-1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = *(uint *)(iVar14 + -4);" (assignment_expression "uVar6 = *(uint *)(iVar14 + -4)" identifier = (pointer_expression "*(uint *)(iVar14 + -4)" * (cast_expression "(uint *)(iVar14 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -4)" ( (binary_expression "iVar14 + -4" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = puVar8 + -1;" (assignment_expression "puVar8 = puVar8 + -1" identifier = (binary_expression "puVar8 + -1" identifier + number_literal)) ;) (if_statement "if (uVar2 != uVar6) {\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }" if (parenthesized_expression "(uVar2 != uVar6)" ( (binary_expression "uVar2 != uVar6" identifier != identifier) )) (compound_statement "{\n              p_Var10 = (mpz_srcptr)0xffffffff;\n              p_Var16 = (mpz_srcptr)&DAT_00000001;\n              if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }\n              num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);\n              if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }\n              puVar12 = auStack_60;\n              if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }" { (expression_statement "p_Var10 = (mpz_srcptr)0xffffffff;" (assignment_expression "p_Var10 = (mpz_srcptr)0xffffffff" identifier = (cast_expression "(mpz_srcptr)0xffffffff" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) (expression_statement "p_Var16 = (mpz_srcptr)&DAT_00000001;" (assignment_expression "p_Var16 = (mpz_srcptr)&DAT_00000001" identifier = (binary_expression "(mpz_srcptr)&DAT_00000001" (parenthesized_expression "(mpz_srcptr)" ( identifier )) & identifier)) ;) (if_statement "if (uVar6 < uVar2) {\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }" if (parenthesized_expression "(uVar6 < uVar2)" ( (binary_expression "uVar6 < uVar2" identifier < identifier) )) (compound_statement "{\n                p_Var16 = (mpz_srcptr)0xffffffff;\n              }" { (expression_statement "p_Var16 = (mpz_srcptr)0xffffffff;" (assignment_expression "p_Var16 = (mpz_srcptr)0xffffffff" identifier = (cast_expression "(mpz_srcptr)0xffffffff" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) })) (expression_statement "num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);" (assignment_expression "num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2)" identifier = (call_expression "(mpz_srcptr)(uint)(0 < (int)num_op2)" (call_expression "(mpz_srcptr)(uint)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(0 < (int)num_op2)" ( (binary_expression "0 < (int)num_op2" number_literal < (cast_expression "(int)num_op2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (uVar6 < uVar2) {\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }" if (parenthesized_expression "(uVar6 < uVar2)" ( (binary_expression "uVar6 < uVar2" identifier < identifier) )) (compound_statement "{\n                p_Var10 = (mpz_srcptr)&DAT_00000001;\n              }" { (expression_statement "p_Var10 = (mpz_srcptr)&DAT_00000001;" (assignment_expression "p_Var10 = (mpz_srcptr)&DAT_00000001" identifier = (binary_expression "(mpz_srcptr)&DAT_00000001" (parenthesized_expression "(mpz_srcptr)" ( identifier )) & identifier)) ;) })) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) (if_statement "if (num_op2 == (mpz_srcptr)0x0) {\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }" if (parenthesized_expression "(num_op2 == (mpz_srcptr)0x0)" ( (binary_expression "num_op2 == (mpz_srcptr)0x0" identifier == (cast_expression "(mpz_srcptr)0x0" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) )) (compound_statement "{\n                p_Var10 = p_Var16;\n                puVar12 = auStack_60;\n              }" { (expression_statement "p_Var10 = p_Var16;" (assignment_expression "p_Var10 = p_Var16" identifier = identifier) ;) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) })) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;) })) (expression_statement "pmVar15 = pmVar15 + -1;" (assignment_expression "pmVar15 = pmVar15 + -1" identifier = (binary_expression "pmVar15 + -1" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + -4;" (assignment_expression "iVar14 = iVar14 + -4" identifier = (binary_expression "iVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 != (undefined1 *)0xffffffff)" ( (binary_expression "puVar8 != (undefined1 *)0xffffffff" identifier != (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2);" (assignment_expression "num_op2 = (mpz_srcptr)(uint)(0 < (int)num_op2)" identifier = (call_expression "(mpz_srcptr)(uint)(0 < (int)num_op2)" (call_expression "(mpz_srcptr)(uint)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(0 < (int)num_op2)" ( (binary_expression "0 < (int)num_op2" number_literal < (cast_expression "(int)num_op2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "p_Var10 = (mpz_srcptr)0x0;" (assignment_expression "p_Var10 = (mpz_srcptr)0x0" identifier = (cast_expression "(mpz_srcptr)0x0" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) })) }) (else_clause "else {\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }" else (compound_statement "{\n        p_Var17 = num_op2;\n        if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }\n        iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;\n        puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);\n        puVar12 = auStack_60;\n        if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }\n      }" { (expression_statement "p_Var17 = num_op2;" (assignment_expression "p_Var17 = num_op2" identifier = identifier) ;) (if_statement "if ((int)num_op2 < 0) {\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }" if (parenthesized_expression "((int)num_op2 < 0)" ( (binary_expression "(int)num_op2 < 0" (cast_expression "(int)num_op2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          p_Var17 = (mpz_srcptr)-(int)num_op2;\n        }" { (expression_statement "p_Var17 = (mpz_srcptr)-(int)num_op2;" (assignment_expression "p_Var17 = (mpz_srcptr)-(int)num_op2" identifier = (binary_expression "(mpz_srcptr)-(int)num_op2" (parenthesized_expression "(mpz_srcptr)" ( identifier )) - (cast_expression "(int)num_op2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (expression_statement "iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc;" (assignment_expression "iVar11 = (int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc" identifier = (binary_expression "(int)&p_Var17->_mp_alloc + (int)&p_Var20->_mp_alloc" (cast_expression "(int)&p_Var17->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var17->_mp_alloc" & (field_expression "p_Var17->_mp_alloc" identifier -> field_identifier))) + (cast_expression "(int)&p_Var20->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var20->_mp_alloc" & (field_expression "p_Var20->_mp_alloc" identifier -> field_identifier))))) ;) (expression_statement "puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc);" (assignment_expression "puVar18 = (undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc)" identifier = (cast_expression "(undefined1 *)((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc)" ( (binary_expression "(int)&den_op2_1->_mp_alloc + (int)&p_Var19->_mp_alloc" (cast_expression "(int)&den_op2_1->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&den_op2_1->_mp_alloc" & (field_expression "den_op2_1->_mp_alloc" identifier -> field_identifier))) + (cast_expression "(int)&p_Var19->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var19->_mp_alloc" & (field_expression "p_Var19->_mp_alloc" identifier -> field_identifier)))) )))) ;) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) (if_statement "if ((int)puVar18 <= iVar11 + 1) {\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }" if (parenthesized_expression "((int)puVar18 <= iVar11 + 1)" ( (binary_expression "(int)puVar18 <= iVar11 + 1" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar11 + 1" identifier + number_literal)) )) (compound_statement "{\n          num_op2 = (mpz_srcptr)(puVar18 + 1);\n          if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          p_Var10 = (mpz_srcptr)-(int)p_Var16;\n          puVar12 = auStack_60;\n        }" { (expression_statement "num_op2 = (mpz_srcptr)(puVar18 + 1);" (assignment_expression "num_op2 = (mpz_srcptr)(puVar18 + 1)" identifier = (call_expression "(mpz_srcptr)(puVar18 + 1)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(puVar18 + 1)" ( (binary_expression "puVar18 + 1" identifier + number_literal) )))) ;) (if_statement "if ((int)(uVar2 + iVar11) <= (int)num_op2) {\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }" if (parenthesized_expression "((int)(uVar2 + iVar11) <= (int)num_op2)" ( (binary_expression "(int)(uVar2 + iVar11) <= (int)num_op2" (cast_expression "(int)(uVar2 + iVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + iVar11)" ( (binary_expression "uVar2 + iVar11" identifier + identifier) ))) <= (cast_expression "(int)num_op2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            pmVar15 = (op1->_mp_num)._mp_d;\n            uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];\n            if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n            uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);\n            uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];\n            if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }\n            if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];\n            puVar12 = auStack_60;\n            if (iVar4 + 1U < uVar7) goto LAB_000385e8;\n            if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }\n          }" { (expression_statement "pmVar15 = (op1->_mp_num)._mp_d;" (assignment_expression "pmVar15 = (op1->_mp_num)._mp_d" identifier = (field_expression "(op1->_mp_num)._mp_d" (parenthesized_expression "(op1->_mp_num)" ( (field_expression "op1->_mp_num" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)];" (assignment_expression "uVar7 = pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)]" identifier = (subscript_expression "pmVar15[(int)((int)&p_Var19[-1]._mp_d + 3)]" identifier [ (cast_expression "(int)((int)&p_Var19[-1]._mp_d + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&p_Var19[-1]._mp_d + 3)" ( (binary_expression "(int)&p_Var19[-1]._mp_d + 3" (cast_expression "(int)&p_Var19[-1]._mp_d" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var19[-1]._mp_d" & (field_expression "p_Var19[-1]._mp_d" (subscript_expression "p_Var19[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) ])) ;) (if_statement "if (uVar7 < 0x10000) {\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar7 < 0x10000)" ( (binary_expression "uVar7 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar4 = 9;\n              if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }\n            }" { (expression_statement "iVar4 = 9;" (assignment_expression "iVar4 = 9" identifier = number_literal) ;) (if_statement "if (uVar7 < 0x100) {\n                iVar4 = 1;\n              }" if (parenthesized_expression "(uVar7 < 0x100)" ( (binary_expression "uVar7 < 0x100" identifier < number_literal) )) (compound_statement "{\n                iVar4 = 1;\n              }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar4 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }" { (expression_statement "iVar4 = 0x19;" (assignment_expression "iVar4 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar7 < 0x1000000) {\n                iVar4 = 0x11;\n              }" if (parenthesized_expression "(uVar7 < 0x1000000)" ( (binary_expression "uVar7 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar4 = 0x11;\n              }" { (expression_statement "iVar4 = 0x11;" (assignment_expression "iVar4 = 0x11" identifier = number_literal) ;) })) }))) (if_statement "if (uVar9 < 0x10000) {\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar9 < 0x10000)" ( (binary_expression "uVar9 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar5 = 9;\n              if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }\n            }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (if_statement "if (uVar9 < 0x100) {\n                iVar5 = 1;\n              }" if (parenthesized_expression "(uVar9 < 0x100)" ( (binary_expression "uVar9 < 0x100" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 1;\n              }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar5 = 0x19;\n              if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" { (expression_statement "iVar5 = 0x19;" (assignment_expression "iVar5 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar9 < 0x1000000) {\n                iVar5 = 0x11;\n              }" if (parenthesized_expression "(uVar9 < 0x1000000)" ( (binary_expression "uVar9 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 0x11;\n              }" { (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "num_op2 = (mpz_srcptr)den_op2->_mp_alloc;" (assignment_expression "num_op2 = (mpz_srcptr)den_op2->_mp_alloc" identifier = (cast_expression "(mpz_srcptr)den_op2->_mp_alloc" ( (type_descriptor "mpz_srcptr" type_identifier) ) (field_expression "den_op2->_mp_alloc" identifier -> field_identifier))) ;) (expression_statement "uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4);" (assignment_expression "uVar21 = *(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4)" identifier = (pointer_expression "*(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4)" * (cast_expression "(uint *)((int)num_op2 + (int)p_Var17 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)num_op2 + (int)p_Var17 * 4 + -4)" ( (binary_expression "(int)num_op2 + (int)p_Var17 * 4 + -4" (binary_expression "(int)num_op2 + (int)p_Var17 * 4" (cast_expression "(int)num_op2" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)p_Var17 * 4" (cast_expression "(int)p_Var17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5];" (assignment_expression "uVar7 = (int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5]" identifier = (binary_expression "(int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5]" (binary_expression "(int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4] + iVar5" (binary_expression "(int)puVar18 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4]" (binary_expression "(int)puVar18 * 0x20 + -0x42 + iVar4" (binary_expression "(int)puVar18 * 0x20 + -0x42" (binary_expression "(int)puVar18 * 0x20" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar4]" identifier [ (binary_expression "uVar7 >> iVar4" identifier >> identifier) ])))) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar5]" identifier [ (binary_expression "uVar9 >> iVar5" identifier >> identifier) ]))))) ;) (if_statement "if (uVar21 < 0x10000) {\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }\n            else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar21 < 0x10000)" ( (binary_expression "uVar21 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar4 = 1;\n              if (0xff < uVar21) {\n                iVar4 = 9;\n              }\n            }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (if_statement "if (0xff < uVar21) {\n                iVar4 = 9;\n              }" if (parenthesized_expression "(0xff < uVar21)" ( (binary_expression "0xff < uVar21" number_literal < identifier) )) (compound_statement "{\n                iVar4 = 9;\n              }" { (expression_statement "iVar4 = 9;" (assignment_expression "iVar4 = 9" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar4 = 0x19;\n              if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }\n            }" { (expression_statement "iVar4 = 0x19;" (assignment_expression "iVar4 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar21 < 0x1000000) {\n                iVar4 = 0x11;\n              }" if (parenthesized_expression "(uVar21 < 0x1000000)" ( (binary_expression "uVar21 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar4 = 0x11;\n              }" { (expression_statement "iVar4 = 0x11;" (assignment_expression "iVar4 = 0x11" identifier = number_literal) ;) })) }))) (if_statement "if (uVar6 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar6 < 0x10000)" ( (binary_expression "uVar6 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar5 = 1;\n              if (0xff < uVar6) {\n                iVar5 = 9;\n              }\n            }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (if_statement "if (0xff < uVar6) {\n                iVar5 = 9;\n              }" if (parenthesized_expression "(0xff < uVar6)" ( (binary_expression "0xff < uVar6" number_literal < identifier) )) (compound_statement "{\n                iVar5 = 9;\n              }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar5 = 0x19;\n              if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" { (expression_statement "iVar5 = 0x19;" (assignment_expression "iVar5 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar6 < 0x1000000) {\n                iVar5 = 0x11;\n              }" if (parenthesized_expression "(uVar6 < 0x1000000)" ( (binary_expression "uVar6 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 0x11;\n              }" { (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5];" (assignment_expression "iVar4 = iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5]" identifier = (binary_expression "iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5]" (binary_expression "iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4] + iVar5" (binary_expression "iVar11 * 0x20 + -0x42 + iVar4 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4]" (binary_expression "iVar11 * 0x20 + -0x42 + iVar4" (binary_expression "iVar11 * 0x20 + -0x42" (binary_expression "iVar11 * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar21 >> iVar4]" identifier [ (binary_expression "uVar21 >> iVar4" identifier >> identifier) ])))) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar6 >> iVar5]" identifier [ (binary_expression "uVar6 >> iVar5" identifier >> identifier) ]))))) ;) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) (if_statement "if (iVar4 + 1U < uVar7) goto LAB_000385e8;" if (parenthesized_expression "(iVar4 + 1U < uVar7)" ( (binary_expression "iVar4 + 1U < uVar7" (binary_expression "iVar4 + 1U" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;)) (if_statement "if (uVar2 + iVar4 <= uVar7 + 1) {\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }" if (parenthesized_expression "(uVar2 + iVar4 <= uVar7 + 1)" ( (binary_expression "uVar2 + iVar4 <= uVar7 + 1" (binary_expression "uVar2 + iVar4" identifier + identifier) <= (binary_expression "uVar7 + 1" identifier + number_literal)) )) (compound_statement "{\n              __tmp_marker = (tmp_reentrant_t *)0x0;\n              if (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }\n              if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }\n              num_op2 = p_Var10;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);\n              puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));\n              if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }\nLAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              p_Var10 = (mpz_srcptr)-(int)p_Var19;\n              puVar12 = puVar8;\n              if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }\n              goto LAB_000385e8;\n            }" { (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 (((uint)den_op2_1 | uVar9) == 1) {\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }\n              else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }" if (parenthesized_expression "(((uint)den_op2_1 | uVar9) == 1)" ( (binary_expression "((uint)den_op2_1 | uVar9) == 1" (parenthesized_expression "((uint)den_op2_1 | uVar9)" ( (binary_expression "(uint)den_op2_1 | uVar9" (cast_expression "(uint)den_op2_1" ( (type_descriptor "uint" type_identifier) ) identifier) | identifier) )) == number_literal) )) (compound_statement "{\n                uVar2 = iVar11 * 4;\n                if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }\n              }" { (expression_statement "uVar2 = iVar11 * 4;" (assignment_expression "uVar2 = iVar11 * 4" identifier = (binary_expression "iVar11 * 4" identifier * number_literal)) ;) (if_statement "if (uVar2 < 0x7f01) {\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }\n                else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n                  puVar18 = puVar18 + -1;\n                  iVar14 = -(uVar2 + 7 & 0xfffffff8);\n                  puVar8 = auStack_60 + iVar14;\n                  pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);\n                }" { (expression_statement "puVar18 = puVar18 + -1;" (assignment_expression "puVar18 = puVar18 + -1" identifier = (binary_expression "puVar18 + -1" identifier + number_literal)) ;) (expression_statement "iVar14 = -(uVar2 + 7 & 0xfffffff8);" (assignment_expression "iVar14 = -(uVar2 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar2 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar2 + 7 & 0xfffffff8)" ( (binary_expression "uVar2 + 7 & 0xfffffff8" (binary_expression "uVar2 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar8 = auStack_60 + iVar14;" (assignment_expression "puVar8 = auStack_60 + iVar14" identifier = (binary_expression "auStack_60 + iVar14" identifier + identifier)) ;) (expression_statement "pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14);" (assignment_expression "pmStack_34 = (mp_limb_t *)(&stack0xffffffb8 + iVar14)" identifier = (cast_expression "(mp_limb_t *)(&stack0xffffffb8 + iVar14)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffb8 + iVar14)" ( (binary_expression "&stack0xffffffb8 + iVar14" (pointer_expression "&stack0xffffffb8" & identifier) + identifier) )))) ;) }) (else_clause "else {\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }" else (compound_statement "{\n                  pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -1;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                }" { (expression_statement "pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2);" (assignment_expression "pmStack_34 = (mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2)" identifier = (cast_expression "(mp_limb_t *)\n                               (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)\n                                         (&__tmp_marker,uVar2)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker,uVar2)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier ))))) ;) (expression_statement "pmVar15 = (op1->_mp_num)._mp_d;" (assignment_expression "pmVar15 = (op1->_mp_num)._mp_d" identifier = (field_expression "(op1->_mp_num)._mp_d" (parenthesized_expression "(op1->_mp_num)" ( (field_expression "op1->_mp_num" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;" (assignment_expression "p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d" identifier = (field_expression "(mpz_srcptr)(op1->_mp_den)._mp_d" (call_expression "(mpz_srcptr)(op1->_mp_den)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(op1->_mp_den)" ( (field_expression "op1->_mp_den" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "puVar18 = puVar18 + -1;" (assignment_expression "puVar18 = puVar18 + -1" identifier = (binary_expression "puVar18 + -1" identifier + number_literal)) ;) (expression_statement "num_op2 = (mpz_srcptr)den_op2->_mp_alloc;" (assignment_expression "num_op2 = (mpz_srcptr)den_op2->_mp_alloc" identifier = (cast_expression "(mpz_srcptr)den_op2->_mp_alloc" ( (type_descriptor "mpz_srcptr" type_identifier) ) (field_expression "den_op2->_mp_alloc" identifier -> field_identifier))) ;) }))) }) (else_clause "else {\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }" else (compound_statement "{\n                if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }\n                pmStack_34 = pmVar3 + (int)puVar18;\n                if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n              }" { (if_statement "if ((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01) {\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }\n                else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }" if (parenthesized_expression "((uint)((int)(puVar18 + iVar11) * 4) < 0x7f01)" ( (binary_expression "(uint)((int)(puVar18 + iVar11) * 4) < 0x7f01" (call_expression "(uint)((int)(puVar18 + iVar11) * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(puVar18 + iVar11) * 4)" ( (binary_expression "(int)(puVar18 + iVar11) * 4" (cast_expression "(int)(puVar18 + iVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar18 + iVar11)" ( (binary_expression "puVar18 + iVar11" identifier + identifier) ))) * number_literal) ))) < number_literal) )) (compound_statement "{\n                  iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);\n                  pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);\n                  puVar8 = auStack_60 + iVar4;\n                }" { (expression_statement "iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)(puVar18 + iVar11) * 4 + 7U & 0xfffffff8" (binary_expression "(int)(puVar18 + iVar11) * 4 + 7U" (binary_expression "(int)(puVar18 + iVar11) * 4" (cast_expression "(int)(puVar18 + iVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar18 + iVar11)" ( (binary_expression "puVar18 + iVar11" identifier + identifier) ))) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4);" (assignment_expression "pmVar3 = (mp_limb_t *)(&stack0xffffffb8 + iVar4)" identifier = (cast_expression "(mp_limb_t *)(&stack0xffffffb8 + iVar4)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffb8 + iVar4)" ( (binary_expression "&stack0xffffffb8 + iVar4" (pointer_expression "&stack0xffffffb8" & identifier) + identifier) )))) ;) (expression_statement "puVar8 = auStack_60 + iVar4;" (assignment_expression "puVar8 = auStack_60 + iVar4" identifier = (binary_expression "auStack_60 + iVar4" identifier + identifier)) ;) }) (else_clause "else {\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }" else (compound_statement "{\n                  pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n                  iVar14 = num_op2_1->_mp_alloc;\n                  pmVar15 = (op1->_mp_num)._mp_d;\n                  puVar8 = auStack_60;\n                }" { (expression_statement "pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);" (assignment_expression "pmVar3 = (mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" identifier = (cast_expression "(mp_limb_t *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) (expression_statement "iVar14 = num_op2_1->_mp_alloc;" (assignment_expression "iVar14 = num_op2_1->_mp_alloc" identifier = (field_expression "num_op2_1->_mp_alloc" identifier -> field_identifier)) ;) (expression_statement "pmVar15 = (op1->_mp_num)._mp_d;" (assignment_expression "pmVar15 = (op1->_mp_num)._mp_d" identifier = (field_expression "(op1->_mp_num)._mp_d" (parenthesized_expression "(op1->_mp_num)" ( (field_expression "op1->_mp_num" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar8 = auStack_60;" (assignment_expression "puVar8 = auStack_60" identifier = identifier) ;) }))) (expression_statement "pmStack_34 = pmVar3 + (int)puVar18;" (assignment_expression "pmStack_34 = pmVar3 + (int)puVar18" identifier = (binary_expression "pmVar3 + (int)puVar18" identifier + (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)p_Var19 < (int)den_op2_1) {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }\n                else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }" if (parenthesized_expression "((int)p_Var19 < (int)den_op2_1)" ( (binary_expression "(int)p_Var19 < (int)den_op2_1" (cast_expression "(int)p_Var19" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)den_op2_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  *(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }" { (expression_statement "*(mpz_srcptr *)(puVar8 + 0x10) = p_Var19;" (assignment_expression "*(mpz_srcptr *)(puVar8 + 0x10) = p_Var19" (pointer_expression "*(mpz_srcptr *)(puVar8 + 0x10)" * (cast_expression "(mpz_srcptr *)(puVar8 + 0x10)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x10)" ( (binary_expression "puVar8 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,iVar14,den_op2_1,pmVar15)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar3,iVar14,den_op2_1,pmVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;" (assignment_expression "p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d" identifier = (field_expression "(mpz_srcptr)(op1->_mp_den)._mp_d" (call_expression "(mpz_srcptr)(op1->_mp_den)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(op1->_mp_den)" ( (field_expression "op1->_mp_den" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "num_op2 = (mpz_srcptr)den_op2->_mp_alloc;" (assignment_expression "num_op2 = (mpz_srcptr)den_op2->_mp_alloc" identifier = (cast_expression "(mpz_srcptr)den_op2->_mp_alloc" ( (type_descriptor "mpz_srcptr" type_identifier) ) (field_expression "den_op2->_mp_alloc" identifier -> field_identifier))) ;) (expression_statement "puVar18 = puVar18 + -(uint)(iVar14 == 0);" (assignment_expression "puVar18 = puVar18 + -(uint)(iVar14 == 0)" identifier = (binary_expression "puVar18 + -(uint)(iVar14 == 0)" identifier + (unary_expression "-(uint)(iVar14 == 0)" - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )))))) ;) (expression_statement "pmVar15 = pmVar3;" (assignment_expression "pmVar15 = pmVar3" identifier = identifier) ;) }) (else_clause "else {\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }" else (compound_statement "{\n                  *(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);\n                  num_op2 = (mpz_srcptr)den_op2->_mp_alloc;\n                  p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;\n                  puVar18 = puVar18 + -(uint)(iVar14 == 0);\n                  pmVar15 = pmVar3;\n                }" { (expression_statement "*(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1;" (assignment_expression "*(mpz_srcptr *)(puVar8 + 0x10) = den_op2_1" (pointer_expression "*(mpz_srcptr *)(puVar8 + 0x10)" * (cast_expression "(mpz_srcptr *)(puVar8 + 0x10)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x10)" ( (binary_expression "puVar8 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(pmVar3,pmVar15,p_Var19,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar3,pmVar15,p_Var19,iVar14)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "num_op2 = (mpz_srcptr)den_op2->_mp_alloc;" (assignment_expression "num_op2 = (mpz_srcptr)den_op2->_mp_alloc" identifier = (cast_expression "(mpz_srcptr)den_op2->_mp_alloc" ( (type_descriptor "mpz_srcptr" type_identifier) ) (field_expression "den_op2->_mp_alloc" identifier -> field_identifier))) ;) (expression_statement "p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d;" (assignment_expression "p_Var13 = (mpz_srcptr)(op1->_mp_den)._mp_d" identifier = (field_expression "(mpz_srcptr)(op1->_mp_den)._mp_d" (call_expression "(mpz_srcptr)(op1->_mp_den)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(op1->_mp_den)" ( (field_expression "op1->_mp_den" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "puVar18 = puVar18 + -(uint)(iVar14 == 0);" (assignment_expression "puVar18 = puVar18 + -(uint)(iVar14 == 0)" identifier = (binary_expression "puVar18 + -(uint)(iVar14 == 0)" identifier + (unary_expression "-(uint)(iVar14 == 0)" - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )))))) ;) (expression_statement "pmVar15 = pmVar3;" (assignment_expression "pmVar15 = pmVar3" identifier = identifier) ;) }))) }))) (if_statement "if ((int)p_Var17 < (int)p_Var20) {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }\n              else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }" if (parenthesized_expression "((int)p_Var17 < (int)p_Var20)" ( (binary_expression "(int)p_Var17 < (int)p_Var20" (cast_expression "(int)p_Var17" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)p_Var20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;\n                p_Var10 = p_Var13;\n                p_Var13 = num_op2;\n              }" { (expression_statement "*(mpz_srcptr *)(puVar8 + 0x10) = p_Var17;" (assignment_expression "*(mpz_srcptr *)(puVar8 + 0x10) = p_Var17" (pointer_expression "*(mpz_srcptr *)(puVar8 + 0x10)" * (cast_expression "(mpz_srcptr *)(puVar8 + 0x10)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x10)" ( (binary_expression "puVar8 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "p_Var10 = p_Var13;" (assignment_expression "p_Var10 = p_Var13" identifier = identifier) ;) (expression_statement "p_Var13 = num_op2;" (assignment_expression "p_Var13 = num_op2" identifier = identifier) ;) }) (else_clause "else {\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }" else (compound_statement "{\n                *(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;\n                p_Var10 = num_op2;\n                p_Var20 = p_Var17;\n              }" { (expression_statement "*(mpz_srcptr *)(puVar8 + 0x10) = p_Var20;" (assignment_expression "*(mpz_srcptr *)(puVar8 + 0x10) = p_Var20" (pointer_expression "*(mpz_srcptr *)(puVar8 + 0x10)" * (cast_expression "(mpz_srcptr *)(puVar8 + 0x10)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x10)" ( (binary_expression "puVar8 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "p_Var10 = num_op2;" (assignment_expression "p_Var10 = num_op2" identifier = identifier) ;) (expression_statement "p_Var20 = p_Var17;" (assignment_expression "p_Var20 = p_Var17" identifier = identifier) ;) }))) (expression_statement "num_op2 = p_Var10;" (assignment_expression "num_op2 = p_Var10" identifier = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(pmStack_34,num_op2,p_Var20,p_Var13)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmStack_34,num_op2,p_Var20,p_Var13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0));" (assignment_expression "puVar12 = (undefined1 *)(iVar11 - (uint)(iVar14 == 0))" identifier = (cast_expression "(undefined1 *)(iVar11 - (uint)(iVar14 == 0))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 - (uint)(iVar14 == 0))" ( (binary_expression "iVar11 - (uint)(iVar14 == 0)" identifier - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )))) )))) ;) (if_statement "if (puVar18 == puVar12) {\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }\n              else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }" if (parenthesized_expression "(puVar18 == puVar12)" ( (binary_expression "puVar18 == puVar12" identifier == identifier) )) (compound_statement "{\n                pmVar15 = pmVar15 + (int)puVar18;\n                pmStack_34 = pmStack_34 + (int)puVar18;\n                do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);\n                p_Var19 = (mpz_srcptr)&DAT_00000001;\n                if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }\n              }" { (expression_statement "pmVar15 = pmVar15 + (int)puVar18;" (assignment_expression "pmVar15 = pmVar15 + (int)puVar18" identifier = (binary_expression "pmVar15 + (int)puVar18" identifier + (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pmStack_34 = pmStack_34 + (int)puVar18;" (assignment_expression "pmStack_34 = pmStack_34 + (int)puVar18" identifier = (binary_expression "pmStack_34 + (int)puVar18" identifier + (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                } while (*puVar1 == *pmStack_34);" do (compound_statement "{\n                  puVar18 = puVar18 + -1;\n                  pmStack_34 = pmStack_34 + -1;\n                  if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = pmVar15 + -1;\n                  pmVar15 = pmVar15 + -1;\n                }" { (expression_statement "puVar18 = puVar18 + -1;" (assignment_expression "puVar18 = puVar18 + -1" identifier = (binary_expression "puVar18 + -1" identifier + number_literal)) ;) (expression_statement "pmStack_34 = pmStack_34 + -1;" (assignment_expression "pmStack_34 = pmStack_34 + -1" identifier = (binary_expression "pmStack_34 + -1" identifier + number_literal)) ;) (if_statement "if ((int)puVar18 < 0) {\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }" if (parenthesized_expression "((int)puVar18 < 0)" ( (binary_expression "(int)puVar18 < 0" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    p_Var19 = (mpz_srcptr)0x0;\n                    goto LAB_000385d0;\n                  }" { (expression_statement "p_Var19 = (mpz_srcptr)0x0;" (assignment_expression "p_Var19 = (mpz_srcptr)0x0" identifier = (cast_expression "(mpz_srcptr)0x0" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) (goto_statement "goto LAB_000385d0;" goto statement_identifier ;) })) (expression_statement "puVar1 = pmVar15 + -1;" (assignment_expression "puVar1 = pmVar15 + -1" identifier = (binary_expression "pmVar15 + -1" identifier + number_literal)) ;) (expression_statement "pmVar15 = pmVar15 + -1;" (assignment_expression "pmVar15 = pmVar15 + -1" identifier = (binary_expression "pmVar15 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*puVar1 == *pmStack_34)" ( (binary_expression "*puVar1 == *pmStack_34" (pointer_expression "*puVar1" * identifier) == (pointer_expression "*pmStack_34" * identifier)) )) ;) (expression_statement "p_Var19 = (mpz_srcptr)&DAT_00000001;" (assignment_expression "p_Var19 = (mpz_srcptr)&DAT_00000001" identifier = (binary_expression "(mpz_srcptr)&DAT_00000001" (parenthesized_expression "(mpz_srcptr)" ( identifier )) & identifier)) ;) (if_statement "if (*puVar1 <= *pmStack_34) {\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }" if (parenthesized_expression "(*puVar1 <= *pmStack_34)" ( (binary_expression "*puVar1 <= *pmStack_34" (pointer_expression "*puVar1" * identifier) <= (pointer_expression "*pmStack_34" * identifier)) )) (compound_statement "{\n                  p_Var19 = (mpz_srcptr)0xffffffff;\n                }" { (expression_statement "p_Var19 = (mpz_srcptr)0xffffffff;" (assignment_expression "p_Var19 = (mpz_srcptr)0xffffffff" identifier = (cast_expression "(mpz_srcptr)0xffffffff" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) })) }) (else_clause "else {\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }" else (compound_statement "{\n                p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);\n              }" { (expression_statement "p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12);" (assignment_expression "p_Var19 = (mpz_srcptr)(puVar18 + -(int)puVar12)" identifier = (call_expression "(mpz_srcptr)(puVar18 + -(int)puVar12)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(puVar18 + -(int)puVar12)" ( (binary_expression "puVar18 + -(int)puVar12" identifier + (unary_expression "-(int)puVar12" - (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) }))) (labeled_statement "LAB_000385d0:\n              if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" statement_identifier : (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\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                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "p_Var10 = (mpz_srcptr)-(int)p_Var19;" (assignment_expression "p_Var10 = (mpz_srcptr)-(int)p_Var19" identifier = (binary_expression "(mpz_srcptr)-(int)p_Var19" (parenthesized_expression "(mpz_srcptr)" ( identifier )) - (cast_expression "(int)p_Var19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar12 = puVar8;" (assignment_expression "puVar12 = puVar8" identifier = identifier) ;) (if_statement "if (-1 < (int)p_Var16) {\n                p_Var10 = p_Var19;\n              }" if (parenthesized_expression "(-1 < (int)p_Var16)" ( (binary_expression "-1 < (int)p_Var16" number_literal < (cast_expression "(int)p_Var16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                p_Var10 = p_Var19;\n              }" { (expression_statement "p_Var10 = p_Var19;" (assignment_expression "p_Var10 = p_Var19" identifier = identifier) ;) })) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;) })) })) (expression_statement "p_Var10 = (mpz_srcptr)-(int)p_Var16;" (assignment_expression "p_Var10 = (mpz_srcptr)-(int)p_Var16" identifier = (binary_expression "(mpz_srcptr)-(int)p_Var16" (parenthesized_expression "(mpz_srcptr)" ( identifier )) - (cast_expression "(int)p_Var16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar12 = auStack_60;" (assignment_expression "puVar12 = auStack_60" identifier = identifier) ;) })) }))) })) }))) (labeled_statement "LAB_000385e8:\n  if (local_2c == *(mpq_srcptr *)puVar22) {\n    return (int)p_Var10;\n  }" statement_identifier : (if_statement "if (local_2c == *(mpq_srcptr *)puVar22) {\n    return (int)p_Var10;\n  }" if (parenthesized_expression "(local_2c == *(mpq_srcptr *)puVar22)" ( (binary_expression "local_2c == *(mpq_srcptr *)puVar22" identifier == (pointer_expression "*(mpq_srcptr *)puVar22" * (cast_expression "(mpq_srcptr *)puVar22" ( (type_descriptor "mpq_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (int)p_Var10;\n  }" { (return_statement "return (int)p_Var10;" return (cast_expression "(int)p_Var10" ( (type_descriptor "int" primitive_type) ) identifier) ;) }))) (expression_statement "pcVar23 = __gmpq_cmp;" (assignment_expression "pcVar23 = __gmpq_cmp" identifier = identifier) ;) (expression_statement "op1_00 = local_2c;" (assignment_expression "op1_00 = local_2c" identifier = identifier) ;) (expression_statement "puVar22 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar22 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "p_Var10 = (mpz_srcptr)num_op2[1]._mp_size;" (assignment_expression "p_Var10 = (mpz_srcptr)num_op2[1]._mp_size" identifier = (cast_expression "(mpz_srcptr)num_op2[1]._mp_size" ( (type_descriptor "mpz_srcptr" type_identifier) ) (field_expression "num_op2[1]._mp_size" (subscript_expression "num_op2[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "p_Var16 = (mpz_srcptr)num_op2->_mp_size;" (assignment_expression "p_Var16 = (mpz_srcptr)num_op2->_mp_size" identifier = (cast_expression "(mpz_srcptr)num_op2->_mp_size" ( (type_descriptor "mpz_srcptr" type_identifier) ) (field_expression "num_op2->_mp_size" identifier -> field_identifier))) ;) (expression_statement "*(code **)(puVar12 + -4) = pcVar23;" (assignment_expression "*(code **)(puVar12 + -4) = pcVar23" (pointer_expression "*(code **)(puVar12 + -4)" * (cast_expression "(code **)(puVar12 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar12 + -0x10) = puVar22 + 0x6c7ac;" (assignment_expression "*(undefined **)(puVar12 + -0x10) = puVar22 + 0x6c7ac" (pointer_expression "*(undefined **)(puVar12 + -0x10)" * (cast_expression "(undefined **)(puVar12 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar22 + 0x6c7ac" identifier + number_literal)) ;) (expression_statement "*(mp_limb_t ***)(puVar12 + -0x18) = &num_op2[1]._mp_d;" (assignment_expression "*(mp_limb_t ***)(puVar12 + -0x18) = &num_op2[1]._mp_d" (pointer_expression "*(mp_limb_t ***)(puVar12 + -0x18)" * (cast_expression "(mp_limb_t ***)(puVar12 + -0x18)" ( (type_descriptor "mp_limb_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar12 + -0x18)" ( (binary_expression "puVar12 + -0x18" identifier + number_literal) )))) = (pointer_expression "&num_op2[1]._mp_d" & (field_expression "num_op2[1]._mp_d" (subscript_expression "num_op2[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar14 = mpq_cmp_numden(op1_00,p_Var16,(mpz_srcptr)&num_op2->_mp_d,p_Var10,\n                          *(mpz_srcptr *)(puVar12 + -0x18));" (assignment_expression "iVar14 = mpq_cmp_numden(op1_00,p_Var16,(mpz_srcptr)&num_op2->_mp_d,p_Var10,\n                          *(mpz_srcptr *)(puVar12 + -0x18))" identifier = (call_expression "mpq_cmp_numden(op1_00,p_Var16,(mpz_srcptr)&num_op2->_mp_d,p_Var10,\n                          *(mpz_srcptr *)(puVar12 + -0x18))" identifier (argument_list "(op1_00,p_Var16,(mpz_srcptr)&num_op2->_mp_d,p_Var10,\n                          *(mpz_srcptr *)(puVar12 + -0x18))" ( identifier , identifier , (binary_expression "(mpz_srcptr)&num_op2->_mp_d" (parenthesized_expression "(mpz_srcptr)" ( identifier )) & (field_expression "num_op2->_mp_d" identifier -> field_identifier)) , identifier , (pointer_expression "*(mpz_srcptr *)(puVar12 + -0x18)" * (cast_expression "(mpz_srcptr *)(puVar12 + -0x18)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x18)" ( (binary_expression "puVar12 + -0x18" identifier + number_literal) )))) )))) ;) (return_statement "return iVar14;" return identifier ;) })))
(translation_unit "uint FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined1 *puVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  undefined *puVar21;\n  undefined1 *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  undefined1 *local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_0009d540;\n  puVar22 = auStack_60;\n  uVar16 = *(uint *)(param_1 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }\n  pcVar23 = __gmpq_cmp;\n  puVar21 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(code **)(puVar4 + -4) = pcVar23;\n  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;\n  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;\n  uVar16 = FUN_000382f0();\n  return uVar16;\n}\n\n" (function_definition "uint FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined1 *puVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  undefined *puVar21;\n  undefined1 *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  undefined1 *local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_0009d540;\n  puVar22 = auStack_60;\n  uVar16 = *(uint *)(param_1 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }\n  pcVar23 = __gmpq_cmp;\n  puVar21 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(code **)(puVar4 + -4) = pcVar23;\n  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;\n  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;\n  uVar16 = FUN_000382f0();\n  return uVar16;\n}" type_identifier (function_declarator "FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)" identifier (parameter_list "(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined1 *puVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  undefined *puVar21;\n  undefined1 *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  undefined1 *local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_0009d540;\n  puVar22 = auStack_60;\n  uVar16 = *(uint *)(param_1 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }\n  pcVar23 = __gmpq_cmp;\n  puVar21 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(code **)(puVar4 + -4) = pcVar23;\n  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;\n  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;\n  uVar16 = FUN_000382f0();\n  return uVar16;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined1 auStack_60 [24];" type_identifier (array_declarator "auStack_60 [24]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar21 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar21 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 4);" (assignment_expression "uVar16 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }" { (expression_statement "uVar9 = -param_2;" (assignment_expression "uVar9 = -param_2" identifier = (unary_expression "-param_2" - identifier)) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) }) (else_clause "else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" { (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" identifier = identifier) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }" if (parenthesized_expression "((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2)))" ( (binary_expression "(param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))" ( (comma_expression "puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2)" (assignment_expression "puVar4 = auStack_60" identifier = identifier) , (binary_expression "-1 < (int)(uVar16 ^ param_2)" number_literal < (cast_expression "(int)(uVar16 ^ param_2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar16 ^ param_2)" ( (binary_expression "uVar16 ^ param_2" identifier ^ identifier) ))))) ))) )) (compound_statement "{\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }" { (expression_statement "uVar19 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0x10)" identifier = (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) (if_statement "if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }" if (parenthesized_expression "((int)uVar16 < 0)" ( (binary_expression "(int)uVar16 < 0" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar18 = -uVar16;\n      }" { (expression_statement "uVar18 = -uVar16;" (assignment_expression "uVar18 = -uVar16" identifier = (unary_expression "-uVar16" - identifier)) ;) })) (expression_statement "iVar14 = *param_5;" (assignment_expression "iVar14 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);" (assignment_expression "uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" identifier = (pointer_expression "*(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" * (cast_expression "(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + (param_4 + 0x3fffffff) * 4)" ( (binary_expression "iVar14 + (param_4 + 0x3fffffff) * 4" identifier + (binary_expression "(param_4 + 0x3fffffff) * 4" (parenthesized_expression "(param_4 + 0x3fffffff)" ( (binary_expression "param_4 + 0x3fffffff" identifier + number_literal) )) * number_literal)) ))))) ;) (expression_statement "uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);" (assignment_expression "uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" identifier = (pointer_expression "*(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" * (cast_expression "(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar13 + (uVar19 + 0x3fffffff) * 4)" ( (binary_expression "uVar13 + (uVar19 + 0x3fffffff) * 4" identifier + (binary_expression "(uVar19 + 0x3fffffff) * 4" (parenthesized_expression "(uVar19 + 0x3fffffff)" ( (binary_expression "uVar19 + 0x3fffffff" identifier + number_literal) )) * number_literal)) ))))) ;) (expression_statement "uVar2 = (uint)((param_4 | uVar10) == 1);" (assignment_expression "uVar2 = (uint)((param_4 | uVar10) == 1)" identifier = (call_expression "(uint)((param_4 | uVar10) == 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_4 | uVar10) == 1)" ( (binary_expression "(param_4 | uVar10) == 1" (parenthesized_expression "(param_4 | uVar10)" ( (binary_expression "param_4 | uVar10" identifier | identifier) )) == number_literal) )))) ;) (if_statement "if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" if (parenthesized_expression "((uVar19 | uVar7) == uVar2)" ( (binary_expression "(uVar19 | uVar7) == uVar2" (parenthesized_expression "(uVar19 | uVar7)" ( (binary_expression "uVar19 | uVar7" identifier | identifier) )) == identifier) )) (compound_statement "{\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }" { (expression_statement "uVar9 = uVar16 - param_2;" (assignment_expression "uVar9 = uVar16 - param_2" identifier = (binary_expression "uVar16 - param_2" identifier - identifier)) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }" if (parenthesized_expression "(uVar16 == param_2)" ( (binary_expression "uVar16 == param_2" identifier == identifier) )) (compound_statement "{\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }" { (expression_statement "iVar12 = uVar18 - 1;" (assignment_expression "iVar12 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ;) (expression_statement "iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;" (assignment_expression "iVar11 = *(int *)(param_1 + 8) + uVar18 * 4" identifier = (binary_expression "*(int *)(param_1 + 8) + uVar18 * 4" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + (binary_expression "uVar18 * 4" identifier * number_literal))) ;) (expression_statement "iVar14 = *param_3 + uVar18 * 4;" (assignment_expression "iVar14 = *param_3 + uVar18 * 4" identifier = (binary_expression "*param_3 + uVar18 * 4" (pointer_expression "*param_3" * identifier) + (binary_expression "uVar18 * 4" identifier * number_literal))) ;) (do_statement "do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);" do (compound_statement "{\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          }" { (expression_statement "uVar16 = *(uint *)(iVar11 + -4);" (assignment_expression "uVar16 = *(uint *)(iVar11 + -4)" identifier = (pointer_expression "*(uint *)(iVar11 + -4)" * (cast_expression "(uint *)(iVar11 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -4)" ( (binary_expression "iVar11 + -4" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(iVar14 + -4);" (assignment_expression "uVar18 = *(uint *)(iVar14 + -4)" identifier = (pointer_expression "*(uint *)(iVar14 + -4)" * (cast_expression "(uint *)(iVar14 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -4)" ( (binary_expression "iVar14 + -4" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }" if (parenthesized_expression "(uVar16 != uVar18)" ( (binary_expression "uVar16 != uVar18" identifier != identifier) )) (compound_statement "{\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) (if_statement "if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\n                uVar19 = 0xffffffff;\n              }" { (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;) })) (expression_statement "param_2 = (uint)(0 < (int)param_2);" (assignment_expression "param_2 = (uint)(0 < (int)param_2)" identifier = (call_expression "(uint)(0 < (int)param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }" if (parenthesized_expression "(uVar18 < uVar16)" ( (binary_expression "uVar18 < uVar16" identifier < identifier) )) (compound_statement "{\n                uVar9 = 1;\n              }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) })) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }" { (expression_statement "uVar9 = uVar19;" (assignment_expression "uVar9 = uVar19" identifier = identifier) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) })) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;) })) (expression_statement "iVar11 = iVar11 + -4;" (assignment_expression "iVar11 = iVar11 + -4" identifier = (binary_expression "iVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + -4;" (assignment_expression "iVar14 = iVar14 + -4" identifier = (binary_expression "iVar14 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) ;) (expression_statement "param_2 = (uint)(0 < (int)param_2);" (assignment_expression "param_2 = (uint)(0 < (int)param_2)" identifier = (call_expression "(uint)(0 < (int)param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) })) }) (else_clause "else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" else (compound_statement "{\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" { (expression_statement "uVar17 = param_2;" (assignment_expression "uVar17 = param_2" identifier = identifier) ;) (if_statement "if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }" if (parenthesized_expression "((int)param_2 < 0)" ( (binary_expression "(int)param_2 < 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar17 = -param_2;\n        }" { (expression_statement "uVar17 = -param_2;" (assignment_expression "uVar17 = -param_2" identifier = (unary_expression "-param_2" - identifier)) ;) })) (expression_statement "iVar11 = uVar19 + uVar17;" (assignment_expression "iVar11 = uVar19 + uVar17" identifier = (binary_expression "uVar19 + uVar17" identifier + identifier)) ;) (expression_statement "iVar12 = uVar18 + param_4;" (assignment_expression "iVar12 = uVar18 + param_4" identifier = (binary_expression "uVar18 + param_4" identifier + identifier)) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }" if (parenthesized_expression "(iVar12 <= iVar11 + 1)" ( (binary_expression "iVar12 <= iVar11 + 1" identifier <= (binary_expression "iVar11 + 1" identifier + number_literal)) )) (compound_statement "{\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }" { (expression_statement "param_2 = iVar12 + 1;" (assignment_expression "param_2 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }" if (parenthesized_expression "((int)(uVar2 + iVar11) <= (int)param_2)" ( (binary_expression "(int)(uVar2 + iVar11) <= (int)param_2" (cast_expression "(int)(uVar2 + iVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 + iVar11)" ( (binary_expression "uVar2 + iVar11" identifier + identifier) ))) <= (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }" { (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 8)" * (cast_expression "(undefined1 **)(param_1 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);" (assignment_expression "uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4)" identifier = (pointer_expression "*(uint *)(puVar15 + uVar18 * 4 + -4)" * (cast_expression "(uint *)(puVar15 + uVar18 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + uVar18 * 4 + -4)" ( (binary_expression "puVar15 + uVar18 * 4 + -4" (binary_expression "puVar15 + uVar18 * 4" identifier + (binary_expression "uVar18 * 4" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar8 < 0x10000)" ( (binary_expression "uVar8 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) (if_statement "if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }" if (parenthesized_expression "(uVar8 < 0x100)" ( (binary_expression "uVar8 < 0x100" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 1;\n              }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" { (expression_statement "iVar5 = 0x19;" (assignment_expression "iVar5 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }" if (parenthesized_expression "(uVar8 < 0x1000000)" ( (binary_expression "uVar8 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 0x11;\n              }" { (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) })) }))) (if_statement "if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar10 < 0x10000)" ( (binary_expression "uVar10 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }" { (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) (if_statement "if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }" if (parenthesized_expression "(uVar10 < 0x100)" ( (binary_expression "uVar10 < 0x100" identifier < number_literal) )) (compound_statement "{\n                iVar6 = 1;\n              }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" { (expression_statement "iVar6 = 0x19;" (assignment_expression "iVar6 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }" if (parenthesized_expression "(uVar10 < 0x1000000)" ( (binary_expression "uVar10 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar6 = 0x11;\n              }" { (expression_statement "iVar6 = 0x11;" (assignment_expression "iVar6 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);" (assignment_expression "uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4)" identifier = (pointer_expression "*(uint *)(param_2 + uVar17 * 4 + -4)" * (cast_expression "(uint *)(param_2 + uVar17 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + uVar17 * 4 + -4)" ( (binary_expression "param_2 + uVar17 * 4 + -4" (binary_expression "param_2 + uVar17 * 4" identifier + (binary_expression "uVar17 * 4" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];" (assignment_expression "uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" identifier = (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5" (binary_expression "iVar12 * 0x20 + -0x42" (binary_expression "iVar12 * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" identifier [ (binary_expression "uVar8 >> iVar5" identifier >> identifier) ])))) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" identifier [ (binary_expression "uVar10 >> iVar6" identifier >> identifier) ]))))) ;) (if_statement "if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar20 < 0x10000)" ( (binary_expression "uVar20 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (if_statement "if (0xff < uVar20) {\n                iVar5 = 9;\n              }" if (parenthesized_expression "(0xff < uVar20)" ( (binary_expression "0xff < uVar20" number_literal < identifier) )) (compound_statement "{\n                iVar5 = 9;\n              }" { (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" { (expression_statement "iVar5 = 0x19;" (assignment_expression "iVar5 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }" if (parenthesized_expression "(uVar20 < 0x1000000)" ( (binary_expression "uVar20 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar5 = 0x11;\n              }" { (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" identifier = number_literal) ;) })) }))) (if_statement "if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" if (parenthesized_expression "(uVar7 < 0x10000)" ( (binary_expression "uVar7 < 0x10000" identifier < number_literal) )) (compound_statement "{\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (if_statement "if (0xff < uVar7) {\n                iVar6 = 9;\n              }" if (parenthesized_expression "(0xff < uVar7)" ( (binary_expression "0xff < uVar7" number_literal < identifier) )) (compound_statement "{\n                iVar6 = 9;\n              }" { (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) })) }) (else_clause "else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" else (compound_statement "{\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" { (expression_statement "iVar6 = 0x19;" (assignment_expression "iVar6 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }" if (parenthesized_expression "(uVar7 < 0x1000000)" ( (binary_expression "uVar7 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n                iVar6 = 0x11;\n              }" { (expression_statement "iVar6 = 0x11;" (assignment_expression "iVar6 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];" (assignment_expression "iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" identifier = (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5" (binary_expression "iVar11 * 0x20 + -0x42" (binary_expression "iVar11 * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" identifier [ (binary_expression "uVar20 >> iVar5" identifier >> identifier) ])))) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" identifier [ (binary_expression "uVar7 >> iVar6" identifier >> identifier) ]))))) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) (if_statement "if (iVar5 + 1U < uVar8) goto LAB_000385e8;" if (parenthesized_expression "(iVar5 + 1U < uVar8)" ( (binary_expression "iVar5 + 1U < uVar8" (binary_expression "iVar5 + 1U" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;)) (if_statement "if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }" if (parenthesized_expression "(uVar2 + iVar5 <= uVar8 + 1)" ( (binary_expression "uVar2 + iVar5 <= uVar8 + 1" (binary_expression "uVar2 + iVar5" identifier + identifier) <= (binary_expression "uVar8 + 1" identifier + number_literal)) )) (compound_statement "{\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" if (parenthesized_expression "((param_4 | uVar10) == 1)" ( (binary_expression "(param_4 | uVar10) == 1" (parenthesized_expression "(param_4 | uVar10)" ( (binary_expression "param_4 | uVar10" identifier | identifier) )) == number_literal) )) (compound_statement "{\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }" { (expression_statement "uVar9 = iVar11 * 4;" (assignment_expression "uVar9 = iVar11 * 4" identifier = (binary_expression "iVar11 * 4" identifier * number_literal)) ;) (if_statement "if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" if (parenthesized_expression "(uVar9 < 0x7f01)" ( (binary_expression "uVar9 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }" { (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "iVar14 = -(uVar9 + 7 & 0xfffffff8);" (assignment_expression "iVar14 = -(uVar9 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar9 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar9 + 7 & 0xfffffff8)" ( (binary_expression "uVar9 + 7 & 0xfffffff8" (binary_expression "uVar9 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar22 = auStack_60 + iVar14;" (assignment_expression "puVar22 = auStack_60 + iVar14" identifier = (binary_expression "auStack_60 + iVar14" identifier + identifier)) ;) (expression_statement "local_34 = &stack0xffffffb8 + iVar14;" (assignment_expression "local_34 = &stack0xffffffb8 + iVar14" identifier = (binary_expression "&stack0xffffffb8 + iVar14" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) }) (else_clause "else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" else (compound_statement "{\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" { (expression_statement "local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);" (assignment_expression "local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" identifier = (cast_expression "(undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,uVar9)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 8)" * (cast_expression "(undefined1 **)(param_1 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) }))) }) (else_clause "else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" else (compound_statement "{\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" { (expression_statement "uVar9 = (iVar12 + iVar11) * 4;" (assignment_expression "uVar9 = (iVar12 + iVar11) * 4" identifier = (binary_expression "(iVar12 + iVar11) * 4" (parenthesized_expression "(iVar12 + iVar11)" ( (binary_expression "iVar12 + iVar11" identifier + identifier) )) * number_literal)) ;) (if_statement "if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" if (parenthesized_expression "(uVar9 < 0x7f01)" ( (binary_expression "uVar9 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }" { (expression_statement "iVar5 = -(uVar9 + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(uVar9 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar9 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar9 + 7 & 0xfffffff8)" ( (binary_expression "uVar9 + 7 & 0xfffffff8" (binary_expression "uVar9 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar4 = &stack0xffffffb8 + iVar5;" (assignment_expression "puVar4 = &stack0xffffffb8 + iVar5" identifier = (binary_expression "&stack0xffffffb8 + iVar5" (pointer_expression "&stack0xffffffb8" & identifier) + identifier)) ;) (expression_statement "puVar22 = auStack_60 + iVar5;" (assignment_expression "puVar22 = auStack_60 + iVar5" identifier = (binary_expression "auStack_60 + iVar5" identifier + identifier)) ;) }) (else_clause "else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" else (compound_statement "{\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" { (expression_statement "puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) (expression_statement "iVar14 = *param_5;" (assignment_expression "iVar14 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 8)" * (cast_expression "(undefined1 **)(param_1 + 8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" identifier = identifier) ;) }))) (expression_statement "local_34 = puVar4 + iVar12 * 4;" (assignment_expression "local_34 = puVar4 + iVar12 * 4" identifier = (binary_expression "puVar4 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal))) ;) (if_statement "if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" if (parenthesized_expression "((int)uVar18 < (int)param_4)" ( (binary_expression "(int)uVar18 < (int)param_4" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" { (expression_statement "*(uint *)(puVar22 + 0x10) = uVar18;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar18" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,iVar14,param_4,puVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar12 = iVar12 - (uint)(iVar14 == 0);" (assignment_expression "iVar12 = iVar12 - (uint)(iVar14 == 0)" identifier = (binary_expression "iVar12 - (uint)(iVar14 == 0)" identifier - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" identifier = identifier) ;) }) (else_clause "else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" else (compound_statement "{\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" { (expression_statement "*(uint *)(puVar22 + 0x10) = param_4;" (assignment_expression "*(uint *)(puVar22 + 0x10) = param_4" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,puVar15,uVar18,iVar14)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 - (uint)(iVar14 == 0);" (assignment_expression "iVar12 = iVar12 - (uint)(iVar14 == 0)" identifier = (binary_expression "iVar12 - (uint)(iVar14 == 0)" identifier - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" identifier = identifier) ;) }))) }))) (if_statement "if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" if (parenthesized_expression "((int)uVar17 < (int)uVar19)" ( (binary_expression "(int)uVar17 < (int)uVar19" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }" { (expression_statement "*(uint *)(puVar22 + 0x10) = uVar17;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar17" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" identifier = identifier) ;) (expression_statement "uVar13 = param_2;" (assignment_expression "uVar13 = param_2" identifier = identifier) ;) }) (else_clause "else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" else (compound_statement "{\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" { (expression_statement "*(uint *)(puVar22 + 0x10) = uVar19;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar19" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = param_2;" (assignment_expression "uVar9 = param_2" identifier = identifier) ;) (expression_statement "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" identifier = identifier) ;) }))) (expression_statement "param_2 = uVar9;" (assignment_expression "param_2 = uVar9" identifier = identifier) ;) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_34,param_2,uVar19,uVar13)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar11 = iVar11 - (uint)(iVar14 == 0);" (assignment_expression "iVar11 = iVar11 - (uint)(iVar14 == 0)" identifier = (binary_expression "iVar11 - (uint)(iVar14 == 0)" identifier - (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) ))))) ;) (if_statement "if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }" if (parenthesized_expression "(iVar12 == iVar11)" ( (binary_expression "iVar12 == iVar11" identifier == identifier) )) (compound_statement "{\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }" { (expression_statement "puVar15 = puVar15 + iVar12 * 4;" (assignment_expression "puVar15 = puVar15 + iVar12 * 4" identifier = (binary_expression "puVar15 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal))) ;) (expression_statement "puVar3 = (uint *)(local_34 + iVar12 * 4);" (assignment_expression "puVar3 = (uint *)(local_34 + iVar12 * 4)" identifier = (cast_expression "(uint *)(local_34 + iVar12 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + iVar12 * 4)" ( (binary_expression "local_34 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) )))) ;) (do_statement "do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);" do (compound_statement "{\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" { (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "puVar3 = puVar3 + -1;" (assignment_expression "puVar3 = puVar3 + -1" identifier = (binary_expression "puVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (compound_statement "{\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000385d0;" goto statement_identifier ;) })) (expression_statement "puVar1 = (uint *)(puVar15 + -4);" (assignment_expression "puVar1 = (uint *)(puVar15 + -4)" identifier = (cast_expression "(uint *)(puVar15 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*puVar1 == *puVar3)" ( (binary_expression "*puVar1 == *puVar3" (pointer_expression "*puVar1" * identifier) == (pointer_expression "*puVar3" * identifier)) )) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (if_statement "if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }" if (parenthesized_expression "(*puVar1 <= *puVar3)" ( (binary_expression "*puVar1 <= *puVar3" (pointer_expression "*puVar1" * identifier) <= (pointer_expression "*puVar3" * identifier)) )) (compound_statement "{\n                  uVar18 = 0xffffffff;\n                }" { (expression_statement "uVar18 = 0xffffffff;" (assignment_expression "uVar18 = 0xffffffff" identifier = number_literal) ;) })) }) (else_clause "else {\n                uVar18 = iVar12 - iVar11;\n              }" else (compound_statement "{\n                uVar18 = iVar12 - iVar11;\n              }" { (expression_statement "uVar18 = iVar12 - iVar11;" (assignment_expression "uVar18 = iVar12 - iVar11" identifier = (binary_expression "iVar12 - iVar11" identifier - identifier)) ;) }))) (labeled_statement "LAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" statement_identifier : (if_statement "if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar9 = -uVar18;" (assignment_expression "uVar9 = -uVar18" identifier = (unary_expression "-uVar18" - identifier)) ;) (expression_statement "puVar4 = puVar22;" (assignment_expression "puVar4 = puVar22" identifier = identifier) ;) (if_statement "if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar9 = uVar18;\n              }" { (expression_statement "uVar9 = uVar18;" (assignment_expression "uVar9 = uVar18" identifier = identifier) ;) })) (goto_statement "goto LAB_000385e8;" goto statement_identifier ;) })) })) (expression_statement "uVar9 = -uVar16;" (assignment_expression "uVar9 = -uVar16" identifier = (unary_expression "-uVar16" - identifier)) ;) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" identifier = identifier) ;) })) }))) })) }))) (labeled_statement "LAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar21)" ( (binary_expression "local_2c == *(int *)puVar21" identifier == (pointer_expression "*(int *)puVar21" * (cast_expression "(int *)puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar9;\n  }" { (return_statement "return uVar9;" return identifier ;) }))) (expression_statement "pcVar23 = __gmpq_cmp;" (assignment_expression "pcVar23 = __gmpq_cmp" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar21 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar4 + -4) = pcVar23;" (assignment_expression "*(code **)(puVar4 + -4) = pcVar23" (pointer_expression "*(code **)(puVar4 + -4)" * (cast_expression "(code **)(puVar4 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -4)" ( (binary_expression "puVar4 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;" (assignment_expression "*(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac" (pointer_expression "*(undefined **)(puVar4 + -0x10)" * (cast_expression "(undefined **)(puVar4 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x10)" ( (binary_expression "puVar4 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar21 + 0x6c7ac" identifier + number_literal)) ;) (expression_statement "*(uint *)(puVar4 + -0x18) = param_2 + 0x14;" (assignment_expression "*(uint *)(puVar4 + -0x18) = param_2 + 0x14" (pointer_expression "*(uint *)(puVar4 + -0x18)" * (cast_expression "(uint *)(puVar4 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x18)" ( (binary_expression "puVar4 + -0x18" identifier + number_literal) )))) = (binary_expression "param_2 + 0x14" identifier + number_literal)) ;) (expression_statement "uVar16 = FUN_000382f0();" (assignment_expression "uVar16 = FUN_000382f0()" identifier = (call_expression "FUN_000382f0()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar16;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ IDENT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT | IDENT) )) == LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT | IDENT) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (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 = (unary_expression - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT >> IDENT) ])))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT >> IDENT) ]))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT >> IDENT) ])))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT >> IDENT) ]))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT | IDENT) )) == LIT) )) (compound_statement { (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (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 < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) <= (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })))
(function_definition "uint FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined1 *puVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  undefined *puVar21;\n  undefined1 *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  undefined1 *local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_0009d540;\n  puVar22 = auStack_60;\n  uVar16 = *(uint *)(param_1 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }\n  pcVar23 = __gmpq_cmp;\n  puVar21 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(code **)(puVar4 + -4) = pcVar23;\n  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;\n  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;\n  uVar16 = FUN_000382f0();\n  return uVar16;\n}" (type_identifier "uint") (function_declarator "FUN_000382f0(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)" (identifier "FUN_000382f0") (parameter_list "(int param_1,uint param_2,uint *param_3,uint param_4,int *param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  uint *puVar3;\n  undefined1 *puVar4;\n  int iVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  undefined *puVar21;\n  undefined1 *puVar22;\n  code *pcVar23;\n  undefined1 auStack_60 [24];\n  undefined1 *local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar21 = PTR___stack_chk_guard_0009d540;\n  puVar22 = auStack_60;\n  uVar16 = *(uint *)(param_1 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }\nLAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }\n  pcVar23 = __gmpq_cmp;\n  puVar21 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(code **)(puVar4 + -4) = pcVar23;\n  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;\n  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;\n  uVar16 = FUN_000382f0();\n  return uVar16;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 *puVar4;" (type_identifier "undefined1") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "undefined *puVar21;" (type_identifier "undefined") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined1 *puVar22;" (type_identifier "undefined1") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "undefined1 auStack_60 [24];" (type_identifier "undefined1") (array_declarator "auStack_60 [24]" (identifier "auStack_60") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar21 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar21 = PTR___stack_chk_guard_0009d540" (identifier "puVar21") (= "=") (identifier "PTR___stack_chk_guard_0009d540")) (; ";")) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" (identifier "puVar22") (= "=") (identifier "auStack_60")) (; ";")) (expression_statement "uVar16 = *(uint *)(param_1 + 4);" (assignment_expression "uVar16 = *(uint *)(param_1 + 4)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0009d540" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0009d540")))) (; ";")) (if_statement "if (uVar16 == 0) {\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }\n  else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar9 = -param_2;\n    puVar4 = auStack_60;\n  }" ({ "{") (expression_statement "uVar9 = -param_2;" (assignment_expression "uVar9 = -param_2" (identifier "uVar9") (= "=") (unary_expression "-param_2" (- "-") (identifier "param_2"))) (; ";")) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (} "}")) (else_clause "else {\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    uVar9 = uVar16;\n    puVar4 = auStack_60;\n    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" (identifier "uVar9") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (if_statement "if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }" (if "if") (parenthesized_expression "((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2)))" (( "(") (binary_expression "(param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))" (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))" (( "(") (comma_expression "puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2)" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (, ",") (binary_expression "-1 < (int)(uVar16 ^ param_2)" (number_literal "-1") (< "<") (cast_expression "(int)(uVar16 ^ param_2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar16 ^ param_2)" (( "(") (binary_expression "uVar16 ^ param_2" (identifier "uVar16") (^ "^") (identifier "param_2")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      uVar19 = *(uint *)(param_1 + 0x10);\n      uVar18 = uVar16;\n      if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }\n      iVar14 = *param_5;\n      uVar13 = *(uint *)(param_1 + 0x14);\n      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);\n      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);\n      uVar2 = (uint)((param_4 | uVar10) == 1);\n      if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }\n    }" ({ "{") (expression_statement "uVar19 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(uint *)(param_1 + 0x10)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(param_1 + 0x10)" (* "*") (cast_expression "(uint *)(param_1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if ((int)uVar16 < 0) {\n        uVar18 = -uVar16;\n      }" (if "if") (parenthesized_expression "((int)uVar16 < 0)" (( "(") (binary_expression "(int)uVar16 < 0" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        uVar18 = -uVar16;\n      }" ({ "{") (expression_statement "uVar18 = -uVar16;" (assignment_expression "uVar18 = -uVar16" (identifier "uVar18") (= "=") (unary_expression "-uVar16" (- "-") (identifier "uVar16"))) (; ";")) (} "}"))) (expression_statement "iVar14 = *param_5;" (assignment_expression "iVar14 = *param_5" (identifier "iVar14") (= "=") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (; ";")) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);" (assignment_expression "uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" (* "*") (cast_expression "(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + (param_4 + 0x3fffffff) * 4)" (( "(") (binary_expression "iVar14 + (param_4 + 0x3fffffff) * 4" (identifier "iVar14") (+ "+") (binary_expression "(param_4 + 0x3fffffff) * 4" (parenthesized_expression "(param_4 + 0x3fffffff)" (( "(") (binary_expression "param_4 + 0x3fffffff" (identifier "param_4") (+ "+") (number_literal "0x3fffffff")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);" (assignment_expression "uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" (* "*") (cast_expression "(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar13 + (uVar19 + 0x3fffffff) * 4)" (( "(") (binary_expression "uVar13 + (uVar19 + 0x3fffffff) * 4" (identifier "uVar13") (+ "+") (binary_expression "(uVar19 + 0x3fffffff) * 4" (parenthesized_expression "(uVar19 + 0x3fffffff)" (( "(") (binary_expression "uVar19 + 0x3fffffff" (identifier "uVar19") (+ "+") (number_literal "0x3fffffff")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar2 = (uint)((param_4 | uVar10) == 1);" (assignment_expression "uVar2 = (uint)((param_4 | uVar10) == 1)" (identifier "uVar2") (= "=") (call_expression "(uint)((param_4 | uVar10) == 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_4 | uVar10) == 1)" (( "(") (binary_expression "(param_4 | uVar10) == 1" (parenthesized_expression "(param_4 | uVar10)" (( "(") (binary_expression "param_4 | uVar10" (identifier "param_4") (| "|") (identifier "uVar10")) () ")")) (== "==") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((uVar19 | uVar7) == uVar2) {\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }\n      else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" (if "if") (parenthesized_expression "((uVar19 | uVar7) == uVar2)" (( "(") (binary_expression "(uVar19 | uVar7) == uVar2" (parenthesized_expression "(uVar19 | uVar7)" (( "(") (binary_expression "uVar19 | uVar7" (identifier "uVar19") (| "|") (identifier "uVar7")) () ")")) (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n        uVar9 = uVar16 - param_2;\n        puVar4 = auStack_60;\n        if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }\n      }" ({ "{") (expression_statement "uVar9 = uVar16 - param_2;" (assignment_expression "uVar9 = uVar16 - param_2" (identifier "uVar9") (= "=") (binary_expression "uVar16 - param_2" (identifier "uVar16") (- "-") (identifier "param_2"))) (; ";")) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (if_statement "if (uVar16 == param_2) {\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }" (if "if") (parenthesized_expression "(uVar16 == param_2)" (( "(") (binary_expression "uVar16 == param_2" (identifier "uVar16") (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n          iVar12 = uVar18 - 1;\n          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;\n          iVar14 = *param_3 + uVar18 * 4;\n          do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);\n          param_2 = (uint)(0 < (int)param_2);\n          uVar9 = 0;\n          puVar4 = auStack_60;\n        }" ({ "{") (expression_statement "iVar12 = uVar18 - 1;" (assignment_expression "iVar12 = uVar18 - 1" (identifier "iVar12") (= "=") (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;" (assignment_expression "iVar11 = *(int *)(param_1 + 8) + uVar18 * 4" (identifier "iVar11") (= "=") (binary_expression "*(int *)(param_1 + 8) + uVar18 * 4" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar14 = *param_3 + uVar18 * 4;" (assignment_expression "iVar14 = *param_3 + uVar18 * 4" (identifier "iVar14") (= "=") (binary_expression "*param_3 + uVar18 * 4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4")))) (; ";")) (do_statement "do {\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          } while (iVar12 != -1);" (do "do") (compound_statement "{\n            uVar16 = *(uint *)(iVar11 + -4);\n            uVar18 = *(uint *)(iVar14 + -4);\n            iVar12 = iVar12 + -1;\n            if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }\n            iVar11 = iVar11 + -4;\n            iVar14 = iVar14 + -4;\n          }" ({ "{") (expression_statement "uVar16 = *(uint *)(iVar11 + -4);" (assignment_expression "uVar16 = *(uint *)(iVar11 + -4)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(iVar11 + -4)" (* "*") (cast_expression "(uint *)(iVar11 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -4)" (( "(") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "uVar18 = *(uint *)(iVar14 + -4);" (assignment_expression "uVar18 = *(uint *)(iVar14 + -4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar14 + -4)" (* "*") (cast_expression "(uint *)(iVar14 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + -4)" (( "(") (binary_expression "iVar14 + -4" (identifier "iVar14") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (uVar16 != uVar18) {\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }" (if "if") (parenthesized_expression "(uVar16 != uVar18)" (( "(") (binary_expression "uVar16 != uVar18" (identifier "uVar16") (!= "!=") (identifier "uVar18")) () ")")) (compound_statement "{\n              uVar9 = 0xffffffff;\n              uVar19 = 1;\n              if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }\n              param_2 = (uint)(0 < (int)param_2);\n              if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }\n              puVar4 = auStack_60;\n              if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }\n              goto LAB_000385e8;\n            }" ({ "{") (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" (identifier "uVar19") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar18 < uVar16) {\n                uVar19 = 0xffffffff;\n              }" (if "if") (parenthesized_expression "(uVar18 < uVar16)" (( "(") (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n                uVar19 = 0xffffffff;\n              }" ({ "{") (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" (identifier "uVar19") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (expression_statement "param_2 = (uint)(0 < (int)param_2);" (assignment_expression "param_2 = (uint)(0 < (int)param_2)" (identifier "param_2") (= "=") (call_expression "(uint)(0 < (int)param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0 < (int)param_2)" (( "(") (binary_expression "0 < (int)param_2" (number_literal "0") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";")) (if_statement "if (uVar18 < uVar16) {\n                uVar9 = 1;\n              }" (if "if") (parenthesized_expression "(uVar18 < uVar16)" (( "(") (binary_expression "uVar18 < uVar16" (identifier "uVar18") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n                uVar9 = 1;\n              }" ({ "{") (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" (identifier "uVar9") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (if_statement "if (param_2 == 0) {\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar9 = uVar19;\n                puVar4 = auStack_60;\n              }" ({ "{") (expression_statement "uVar9 = uVar19;" (assignment_expression "uVar9 = uVar19" (identifier "uVar9") (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (} "}"))) (goto_statement "goto LAB_000385e8;" (goto "goto") (statement_identifier "LAB_000385e8") (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + -4;" (assignment_expression "iVar11 = iVar11 + -4" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -4" (identifier "iVar11") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar14 = iVar14 + -4;" (assignment_expression "iVar14 = iVar14 + -4" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -4" (identifier "iVar14") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != -1)" (( "(") (binary_expression "iVar12 != -1" (identifier "iVar12") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (expression_statement "param_2 = (uint)(0 < (int)param_2);" (assignment_expression "param_2 = (uint)(0 < (int)param_2)" (identifier "param_2") (= "=") (call_expression "(uint)(0 < (int)param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0 < (int)param_2)" (( "(") (binary_expression "0 < (int)param_2" (number_literal "0") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" (else "else") (compound_statement "{\n        uVar17 = param_2;\n        if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }\n        iVar11 = uVar19 + uVar17;\n        iVar12 = uVar18 + param_4;\n        puVar4 = auStack_60;\n        if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }\n      }" ({ "{") (expression_statement "uVar17 = param_2;" (assignment_expression "uVar17 = param_2" (identifier "uVar17") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((int)param_2 < 0) {\n          uVar17 = -param_2;\n        }" (if "if") (parenthesized_expression "((int)param_2 < 0)" (( "(") (binary_expression "(int)param_2 < 0" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          uVar17 = -param_2;\n        }" ({ "{") (expression_statement "uVar17 = -param_2;" (assignment_expression "uVar17 = -param_2" (identifier "uVar17") (= "=") (unary_expression "-param_2" (- "-") (identifier "param_2"))) (; ";")) (} "}"))) (expression_statement "iVar11 = uVar19 + uVar17;" (assignment_expression "iVar11 = uVar19 + uVar17" (identifier "iVar11") (= "=") (binary_expression "uVar19 + uVar17" (identifier "uVar19") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "iVar12 = uVar18 + param_4;" (assignment_expression "iVar12 = uVar18 + param_4" (identifier "iVar12") (= "=") (binary_expression "uVar18 + param_4" (identifier "uVar18") (+ "+") (identifier "param_4"))) (; ";")) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (if_statement "if (iVar12 <= iVar11 + 1) {\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }" (if "if") (parenthesized_expression "(iVar12 <= iVar11 + 1)" (( "(") (binary_expression "iVar12 <= iVar11 + 1" (identifier "iVar12") (<= "<=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          param_2 = iVar12 + 1;\n          if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }\n          uVar9 = -uVar16;\n          puVar4 = auStack_60;\n        }" ({ "{") (expression_statement "param_2 = iVar12 + 1;" (assignment_expression "param_2 = iVar12 + 1" (identifier "param_2") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)(uVar2 + iVar11) <= (int)param_2) {\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }" (if "if") (parenthesized_expression "((int)(uVar2 + iVar11) <= (int)param_2)" (( "(") (binary_expression "(int)(uVar2 + iVar11) <= (int)param_2" (cast_expression "(int)(uVar2 + iVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 + iVar11)" (( "(") (binary_expression "uVar2 + iVar11" (identifier "uVar2") (+ "+") (identifier "iVar11")) () ")"))) (<= "<=") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n            puVar15 = *(undefined1 **)(param_1 + 8);\n            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);\n            if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            param_2 = *param_3;\n            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);\n            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];\n            if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }\n            if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }\n            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];\n            puVar4 = auStack_60;\n            if (iVar5 + 1U < uVar8) goto LAB_000385e8;\n            if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }\n          }" ({ "{") (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined1 **)(param_1 + 8)" (* "*") (cast_expression "(undefined1 **)(param_1 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);" (assignment_expression "uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(puVar15 + uVar18 * 4 + -4)" (* "*") (cast_expression "(uint *)(puVar15 + uVar18 * 4 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + uVar18 * 4 + -4)" (( "(") (binary_expression "puVar15 + uVar18 * 4 + -4" (binary_expression "puVar15 + uVar18 * 4" (identifier "puVar15") (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4"))) (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (if_statement "if (uVar8 < 0x10000) {\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" (if "if") (parenthesized_expression "(uVar8 < 0x10000)" (( "(") (binary_expression "uVar8 < 0x10000" (identifier "uVar8") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n              iVar5 = 9;\n              if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }\n            }" ({ "{") (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (if_statement "if (uVar8 < 0x100) {\n                iVar5 = 1;\n              }" (if "if") (parenthesized_expression "(uVar8 < 0x100)" (( "(") (binary_expression "uVar8 < 0x100" (identifier "uVar8") (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n                iVar5 = 1;\n              }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" (else "else") (compound_statement "{\n              iVar5 = 0x19;\n              if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" ({ "{") (expression_statement "iVar5 = 0x19;" (assignment_expression "iVar5 = 0x19" (identifier "iVar5") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if (uVar8 < 0x1000000) {\n                iVar5 = 0x11;\n              }" (if "if") (parenthesized_expression "(uVar8 < 0x1000000)" (( "(") (binary_expression "uVar8 < 0x1000000" (identifier "uVar8") (< "<") (number_literal "0x1000000")) () ")")) (compound_statement "{\n                iVar5 = 0x11;\n              }" ({ "{") (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" (identifier "iVar5") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (uVar10 < 0x10000) {\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" (if "if") (parenthesized_expression "(uVar10 < 0x10000)" (( "(") (binary_expression "uVar10 < 0x10000" (identifier "uVar10") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n              iVar6 = 9;\n              if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }\n            }" ({ "{") (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" (identifier "iVar6") (= "=") (number_literal "9")) (; ";")) (if_statement "if (uVar10 < 0x100) {\n                iVar6 = 1;\n              }" (if "if") (parenthesized_expression "(uVar10 < 0x100)" (( "(") (binary_expression "uVar10 < 0x100" (identifier "uVar10") (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n                iVar6 = 1;\n              }" ({ "{") (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" (identifier "iVar6") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" (else "else") (compound_statement "{\n              iVar6 = 0x19;\n              if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" ({ "{") (expression_statement "iVar6 = 0x19;" (assignment_expression "iVar6 = 0x19" (identifier "iVar6") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if (uVar10 < 0x1000000) {\n                iVar6 = 0x11;\n              }" (if "if") (parenthesized_expression "(uVar10 < 0x1000000)" (( "(") (binary_expression "uVar10 < 0x1000000" (identifier "uVar10") (< "<") (number_literal "0x1000000")) () ")")) (compound_statement "{\n                iVar6 = 0x11;\n              }" ({ "{") (expression_statement "iVar6 = 0x11;" (assignment_expression "iVar6 = 0x11" (identifier "iVar6") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" (identifier "param_2") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);" (assignment_expression "uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4)" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)(param_2 + uVar17 * 4 + -4)" (* "*") (cast_expression "(uint *)(param_2 + uVar17 * 4 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + uVar17 * 4 + -4)" (( "(") (binary_expression "param_2 + uVar17 * 4 + -4" (binary_expression "param_2 + uVar17 * 4" (identifier "param_2") (+ "+") (binary_expression "uVar17 * 4" (identifier "uVar17") (* "*") (number_literal "4"))) (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];" (assignment_expression "uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" (identifier "uVar8") (= "=") (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" (binary_expression "iVar12 * 0x20 + -0x42 + iVar5" (binary_expression "iVar12 * 0x20 + -0x42" (binary_expression "iVar12 * 0x20" (identifier "iVar12") (* "*") (number_literal "0x20")) (+ "+") (number_literal "-0x42")) (+ "+") (identifier "iVar5")) (+ "+") (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "uVar8 >> iVar5" (identifier "uVar8") (>> ">>") (identifier "iVar5")) (] "]"))))) (+ "+") (identifier "iVar6")) (+ "+") (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "uVar10 >> iVar6" (identifier "uVar10") (>> ">>") (identifier "iVar6")) (] "]")))))) (; ";")) (if_statement "if (uVar20 < 0x10000) {\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }\n            else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" (if "if") (parenthesized_expression "(uVar20 < 0x10000)" (( "(") (binary_expression "uVar20 < 0x10000" (identifier "uVar20") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n              iVar5 = 1;\n              if (0xff < uVar20) {\n                iVar5 = 9;\n              }\n            }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (0xff < uVar20) {\n                iVar5 = 9;\n              }" (if "if") (parenthesized_expression "(0xff < uVar20)" (( "(") (binary_expression "0xff < uVar20" (number_literal "0xff") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n                iVar5 = 9;\n              }" ({ "{") (expression_statement "iVar5 = 9;" (assignment_expression "iVar5 = 9" (identifier "iVar5") (= "=") (number_literal "9")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" (else "else") (compound_statement "{\n              iVar5 = 0x19;\n              if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }\n            }" ({ "{") (expression_statement "iVar5 = 0x19;" (assignment_expression "iVar5 = 0x19" (identifier "iVar5") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if (uVar20 < 0x1000000) {\n                iVar5 = 0x11;\n              }" (if "if") (parenthesized_expression "(uVar20 < 0x1000000)" (( "(") (binary_expression "uVar20 < 0x1000000" (identifier "uVar20") (< "<") (number_literal "0x1000000")) () ")")) (compound_statement "{\n                iVar5 = 0x11;\n              }" ({ "{") (expression_statement "iVar5 = 0x11;" (assignment_expression "iVar5 = 0x11" (identifier "iVar5") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (uVar7 < 0x10000) {\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }\n            else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" (if "if") (parenthesized_expression "(uVar7 < 0x10000)" (( "(") (binary_expression "uVar7 < 0x10000" (identifier "uVar7") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n              iVar6 = 1;\n              if (0xff < uVar7) {\n                iVar6 = 9;\n              }\n            }" ({ "{") (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" (identifier "iVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if (0xff < uVar7) {\n                iVar6 = 9;\n              }" (if "if") (parenthesized_expression "(0xff < uVar7)" (( "(") (binary_expression "0xff < uVar7" (number_literal "0xff") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n                iVar6 = 9;\n              }" ({ "{") (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" (identifier "iVar6") (= "=") (number_literal "9")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" (else "else") (compound_statement "{\n              iVar6 = 0x19;\n              if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }\n            }" ({ "{") (expression_statement "iVar6 = 0x19;" (assignment_expression "iVar6 = 0x19" (identifier "iVar6") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if (uVar7 < 0x1000000) {\n                iVar6 = 0x11;\n              }" (if "if") (parenthesized_expression "(uVar7 < 0x1000000)" (( "(") (binary_expression "uVar7 < 0x1000000" (identifier "uVar7") (< "<") (number_literal "0x1000000")) () ")")) (compound_statement "{\n                iVar6 = 0x11;\n              }" ({ "{") (expression_statement "iVar6 = 0x11;" (assignment_expression "iVar6 = 0x11" (identifier "iVar6") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];" (assignment_expression "iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" (identifier "iVar5") (= "=") (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5 +\n                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" (binary_expression "iVar11 * 0x20 + -0x42 + iVar5" (binary_expression "iVar11 * 0x20 + -0x42" (binary_expression "iVar11 * 0x20" (identifier "iVar11") (* "*") (number_literal "0x20")) (+ "+") (number_literal "-0x42")) (+ "+") (identifier "iVar5")) (+ "+") (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "uVar20 >> iVar5" (identifier "uVar20") (>> ">>") (identifier "iVar5")) (] "]"))))) (+ "+") (identifier "iVar6")) (+ "+") (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "uVar7 >> iVar6" (identifier "uVar7") (>> ">>") (identifier "iVar6")) (] "]")))))) (; ";")) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (if_statement "if (iVar5 + 1U < uVar8) goto LAB_000385e8;" (if "if") (parenthesized_expression "(iVar5 + 1U < uVar8)" (( "(") (binary_expression "iVar5 + 1U < uVar8" (binary_expression "iVar5 + 1U" (identifier "iVar5") (+ "+") (number_literal "1U")) (< "<") (identifier "uVar8")) () ")")) (goto_statement "goto LAB_000385e8;" (goto "goto") (statement_identifier "LAB_000385e8") (; ";"))) (if_statement "if (uVar2 + iVar5 <= uVar8 + 1) {\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }" (if "if") (parenthesized_expression "(uVar2 + iVar5 <= uVar8 + 1)" (( "(") (binary_expression "uVar2 + iVar5 <= uVar8 + 1" (binary_expression "uVar2 + iVar5" (identifier "uVar2") (+ "+") (identifier "iVar5")) (<= "<=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n              local_30 = 0;\n              if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }\n              if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }\n              param_2 = uVar9;\n              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);\n              iVar11 = iVar11 - (uint)(iVar14 == 0);\n              if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }\nLAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }\n              uVar9 = -uVar18;\n              puVar4 = puVar22;\n              if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }\n              goto LAB_000385e8;\n            }" ({ "{") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((param_4 | uVar10) == 1) {\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }\n              else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" (if "if") (parenthesized_expression "((param_4 | uVar10) == 1)" (( "(") (binary_expression "(param_4 | uVar10) == 1" (parenthesized_expression "(param_4 | uVar10)" (( "(") (binary_expression "param_4 | uVar10" (identifier "param_4") (| "|") (identifier "uVar10")) () ")")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                uVar9 = iVar11 * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }\n              }" ({ "{") (expression_statement "uVar9 = iVar11 * 4;" (assignment_expression "uVar9 = iVar11 * 4" (identifier "uVar9") (= "=") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar9 < 0x7f01) {\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }\n                else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" (if "if") (parenthesized_expression "(uVar9 < 0x7f01)" (( "(") (binary_expression "uVar9 < 0x7f01" (identifier "uVar9") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n                  iVar12 = iVar12 + -1;\n                  iVar14 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar22 = auStack_60 + iVar14;\n                  local_34 = &stack0xffffffb8 + iVar14;\n                }" ({ "{") (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar14 = -(uVar9 + 7 & 0xfffffff8);" (assignment_expression "iVar14 = -(uVar9 + 7 & 0xfffffff8)" (identifier "iVar14") (= "=") (unary_expression "-(uVar9 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar9 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar9 + 7 & 0xfffffff8" (binary_expression "uVar9 + 7" (identifier "uVar9") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar22 = auStack_60 + iVar14;" (assignment_expression "puVar22 = auStack_60 + iVar14" (identifier "puVar22") (= "=") (binary_expression "auStack_60 + iVar14" (identifier "auStack_60") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "local_34 = &stack0xffffffb8 + iVar14;" (assignment_expression "local_34 = &stack0xffffffb8 + iVar14" (identifier "local_34") (= "=") (binary_expression "&stack0xffffffb8 + iVar14" (pointer_expression "&stack0xffffffb8" (& "&") (identifier "stack0xffffffb8")) (+ "+") (identifier "iVar14"))) (; ";")) (} "}")) (else_clause "else {\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" (else "else") (compound_statement "{\n                  local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 + -1;\n                  param_2 = *param_3;\n                }" ({ "{") (expression_statement "local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);" (assignment_expression "local_34 = (undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" (identifier "local_34") (= "=") (cast_expression "(undefined1 *)\n                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30,uVar9)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "uVar9") () ")"))))) (; ";")) (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined1 **)(param_1 + 8)" (* "*") (cast_expression "(undefined1 **)(param_1 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" (identifier "param_2") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" (else "else") (compound_statement "{\n                uVar9 = (iVar12 + iVar11) * 4;\n                if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }\n                local_34 = puVar4 + iVar12 * 4;\n                if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n              }" ({ "{") (expression_statement "uVar9 = (iVar12 + iVar11) * 4;" (assignment_expression "uVar9 = (iVar12 + iVar11) * 4" (identifier "uVar9") (= "=") (binary_expression "(iVar12 + iVar11) * 4" (parenthesized_expression "(iVar12 + iVar11)" (( "(") (binary_expression "iVar12 + iVar11" (identifier "iVar12") (+ "+") (identifier "iVar11")) () ")")) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar9 < 0x7f01) {\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }\n                else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" (if "if") (parenthesized_expression "(uVar9 < 0x7f01)" (( "(") (binary_expression "uVar9 < 0x7f01" (identifier "uVar9") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n                  iVar5 = -(uVar9 + 7 & 0xfffffff8);\n                  puVar4 = &stack0xffffffb8 + iVar5;\n                  puVar22 = auStack_60 + iVar5;\n                }" ({ "{") (expression_statement "iVar5 = -(uVar9 + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(uVar9 + 7 & 0xfffffff8)" (identifier "iVar5") (= "=") (unary_expression "-(uVar9 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar9 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar9 + 7 & 0xfffffff8" (binary_expression "uVar9 + 7" (identifier "uVar9") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar4 = &stack0xffffffb8 + iVar5;" (assignment_expression "puVar4 = &stack0xffffffb8 + iVar5" (identifier "puVar4") (= "=") (binary_expression "&stack0xffffffb8 + iVar5" (pointer_expression "&stack0xffffffb8" (& "&") (identifier "stack0xffffffb8")) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "puVar22 = auStack_60 + iVar5;" (assignment_expression "puVar22 = auStack_60 + iVar5" (identifier "puVar22") (= "=") (binary_expression "auStack_60 + iVar5" (identifier "auStack_60") (+ "+") (identifier "iVar5"))) (; ";")) (} "}")) (else_clause "else {\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" (else "else") (compound_statement "{\n                  puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n                  iVar14 = *param_5;\n                  puVar15 = *(undefined1 **)(param_1 + 8);\n                  puVar22 = auStack_60;\n                }" ({ "{") (expression_statement "puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar4 = (undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (identifier "puVar4") (= "=") (cast_expression "(undefined1 *)\n                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (expression_statement "iVar14 = *param_5;" (assignment_expression "iVar14 = *param_5" (identifier "iVar14") (= "=") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (; ";")) (expression_statement "puVar15 = *(undefined1 **)(param_1 + 8);" (assignment_expression "puVar15 = *(undefined1 **)(param_1 + 8)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined1 **)(param_1 + 8)" (* "*") (cast_expression "(undefined1 **)(param_1 + 8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar22 = auStack_60;" (assignment_expression "puVar22 = auStack_60" (identifier "puVar22") (= "=") (identifier "auStack_60")) (; ";")) (} "}")))) (expression_statement "local_34 = puVar4 + iVar12 * 4;" (assignment_expression "local_34 = puVar4 + iVar12 * 4" (identifier "local_34") (= "=") (binary_expression "puVar4 + iVar12 * 4" (identifier "puVar4") (+ "+") (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4")))) (; ";")) (if_statement "if ((int)uVar18 < (int)param_4) {\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }\n                else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" (if "if") (parenthesized_expression "((int)uVar18 < (int)param_4)" (( "(") (binary_expression "(int)uVar18 < (int)param_4" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (compound_statement "{\n                  *(uint *)(puVar22 + 0x10) = uVar18;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  param_2 = *param_3;\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" ({ "{") (expression_statement "*(uint *)(puVar22 + 0x10) = uVar18;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar18" (pointer_expression "*(uint *)(puVar22 + 0x10)" (* "*") (cast_expression "(uint *)(puVar22 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x10)" (( "(") (binary_expression "puVar22 + 0x10" (identifier "puVar22") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15)" (identifier "iVar14") (= "=") (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" (* "*") (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_0009d2b4"))) () ")")) (argument_list "(puVar4,iVar14,param_4,puVar15)" (( "(") (identifier "puVar4") (, ",") (identifier "iVar14") (, ",") (identifier "param_4") (, ",") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" (identifier "param_2") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "iVar12 = iVar12 - (uint)(iVar14 == 0);" (assignment_expression "iVar12 = iVar12 - (uint)(iVar14 == 0)" (identifier "iVar12") (= "=") (binary_expression "iVar12 - (uint)(iVar14 == 0)" (identifier "iVar12") (- "-") (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" (identifier "puVar15") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (else_clause "else {\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" (else "else") (compound_statement "{\n                  *(uint *)(puVar22 + 0x10) = param_4;\n                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);\n                  param_2 = *param_3;\n                  uVar13 = *(uint *)(param_1 + 0x14);\n                  iVar12 = iVar12 - (uint)(iVar14 == 0);\n                  puVar15 = puVar4;\n                }" ({ "{") (expression_statement "*(uint *)(puVar22 + 0x10) = param_4;" (assignment_expression "*(uint *)(puVar22 + 0x10) = param_4" (pointer_expression "*(uint *)(puVar22 + 0x10)" (* "*") (cast_expression "(uint *)(puVar22 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x10)" (( "(") (binary_expression "puVar22 + 0x10" (identifier "puVar22") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14)" (identifier "iVar14") (= "=") (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" (* "*") (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_0009d2b4"))) () ")")) (argument_list "(puVar4,puVar15,uVar18,iVar14)" (( "(") (identifier "puVar4") (, ",") (identifier "puVar15") (, ",") (identifier "uVar18") (, ",") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "param_2 = *param_3;" (assignment_expression "param_2 = *param_3" (identifier "param_2") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "uVar13 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x14)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar12 - (uint)(iVar14 == 0);" (assignment_expression "iVar12 = iVar12 - (uint)(iVar14 == 0)" (identifier "iVar12") (= "=") (binary_expression "iVar12 - (uint)(iVar14 == 0)" (identifier "iVar12") (- "-") (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "puVar15 = puVar4;" (assignment_expression "puVar15 = puVar4" (identifier "puVar15") (= "=") (identifier "puVar4")) (; ";")) (} "}")))) (} "}")))) (if_statement "if ((int)uVar17 < (int)uVar19) {\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }\n              else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" (if "if") (parenthesized_expression "((int)uVar17 < (int)uVar19)" (( "(") (binary_expression "(int)uVar17 < (int)uVar19" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (compound_statement "{\n                *(uint *)(puVar22 + 0x10) = uVar17;\n                uVar9 = uVar13;\n                uVar13 = param_2;\n              }" ({ "{") (expression_statement "*(uint *)(puVar22 + 0x10) = uVar17;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar17" (pointer_expression "*(uint *)(puVar22 + 0x10)" (* "*") (cast_expression "(uint *)(puVar22 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x10)" (( "(") (binary_expression "puVar22 + 0x10" (identifier "puVar22") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "uVar9 = uVar13;" (assignment_expression "uVar9 = uVar13" (identifier "uVar9") (= "=") (identifier "uVar13")) (; ";")) (expression_statement "uVar13 = param_2;" (assignment_expression "uVar13 = param_2" (identifier "uVar13") (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" (else "else") (compound_statement "{\n                *(uint *)(puVar22 + 0x10) = uVar19;\n                uVar9 = param_2;\n                uVar19 = uVar17;\n              }" ({ "{") (expression_statement "*(uint *)(puVar22 + 0x10) = uVar19;" (assignment_expression "*(uint *)(puVar22 + 0x10) = uVar19" (pointer_expression "*(uint *)(puVar22 + 0x10)" (* "*") (cast_expression "(uint *)(puVar22 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x10)" (( "(") (binary_expression "puVar22 + 0x10" (identifier "puVar22") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "uVar9 = param_2;" (assignment_expression "uVar9 = param_2" (identifier "uVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" (identifier "uVar19") (= "=") (identifier "uVar17")) (; ";")) (} "}")))) (expression_statement "param_2 = uVar9;" (assignment_expression "param_2 = uVar9" (identifier "param_2") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);" (assignment_expression "iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13)" (identifier "iVar14") (= "=") (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" (* "*") (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_0009d2b4"))) () ")")) (argument_list "(local_34,param_2,uVar19,uVar13)" (( "(") (identifier "local_34") (, ",") (identifier "param_2") (, ",") (identifier "uVar19") (, ",") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "iVar11 = iVar11 - (uint)(iVar14 == 0);" (assignment_expression "iVar11 = iVar11 - (uint)(iVar14 == 0)" (identifier "iVar11") (= "=") (binary_expression "iVar11 - (uint)(iVar14 == 0)" (identifier "iVar11") (- "-") (call_expression "(uint)(iVar14 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")"))))) (; ";")) (if_statement "if (iVar12 == iVar11) {\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }\n              else {\n                uVar18 = iVar12 - iVar11;\n              }" (if "if") (parenthesized_expression "(iVar12 == iVar11)" (( "(") (binary_expression "iVar12 == iVar11" (identifier "iVar12") (== "==") (identifier "iVar11")) () ")")) (compound_statement "{\n                puVar15 = puVar15 + iVar12 * 4;\n                puVar3 = (uint *)(local_34 + iVar12 * 4);\n                do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);\n                uVar18 = 1;\n                if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }\n              }" ({ "{") (expression_statement "puVar15 = puVar15 + iVar12 * 4;" (assignment_expression "puVar15 = puVar15 + iVar12 * 4" (identifier "puVar15") (= "=") (binary_expression "puVar15 + iVar12 * 4" (identifier "puVar15") (+ "+") (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4")))) (; ";")) (expression_statement "puVar3 = (uint *)(local_34 + iVar12 * 4);" (assignment_expression "puVar3 = (uint *)(local_34 + iVar12 * 4)" (identifier "puVar3") (= "=") (cast_expression "(uint *)(local_34 + iVar12 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + iVar12 * 4)" (( "(") (binary_expression "local_34 + iVar12 * 4" (identifier "local_34") (+ "+") (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4"))) () ")")))) (; ";")) (do_statement "do {\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                } while (*puVar1 == *puVar3);" (do "do") (compound_statement "{\n                  iVar12 = iVar12 + -1;\n                  puVar3 = puVar3 + -1;\n                  if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }\n                  puVar1 = (uint *)(puVar15 + -4);\n                  puVar15 = puVar15 + -4;\n                }" ({ "{") (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar3 = puVar3 + -1;" (assignment_expression "puVar3 = puVar3 + -1" (identifier "puVar3") (= "=") (binary_expression "puVar3 + -1" (identifier "puVar3") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar12 < 0) {\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }" (if "if") (parenthesized_expression "(iVar12 < 0)" (( "(") (binary_expression "iVar12 < 0" (identifier "iVar12") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar18 = 0;\n                    goto LAB_000385d0;\n                  }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000385d0;" (goto "goto") (statement_identifier "LAB_000385d0") (; ";")) (} "}"))) (expression_statement "puVar1 = (uint *)(puVar15 + -4);" (assignment_expression "puVar1 = (uint *)(puVar15 + -4)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(puVar15 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "puVar15 = puVar15 + -4;" (assignment_expression "puVar15 = puVar15 + -4" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*puVar1 == *puVar3)" (( "(") (binary_expression "*puVar1 == *puVar3" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (== "==") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) () ")")) (; ";")) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*puVar1 <= *puVar3) {\n                  uVar18 = 0xffffffff;\n                }" (if "if") (parenthesized_expression "(*puVar1 <= *puVar3)" (( "(") (binary_expression "*puVar1 <= *puVar3" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (<= "<=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) () ")")) (compound_statement "{\n                  uVar18 = 0xffffffff;\n                }" ({ "{") (expression_statement "uVar18 = 0xffffffff;" (assignment_expression "uVar18 = 0xffffffff" (identifier "uVar18") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                uVar18 = iVar12 - iVar11;\n              }" (else "else") (compound_statement "{\n                uVar18 = iVar12 - iVar11;\n              }" ({ "{") (expression_statement "uVar18 = iVar12 - iVar11;" (assignment_expression "uVar18 = iVar12 - iVar11" (identifier "uVar18") (= "=") (binary_expression "iVar12 - iVar11" (identifier "iVar12") (- "-") (identifier "iVar11"))) (; ";")) (} "}")))) (labeled_statement "LAB_000385d0:\n              if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" (statement_identifier "LAB_000385d0") (: ":") (if_statement "if (local_30 != 0) {\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" (if "if") (parenthesized_expression "(local_30 != 0)" (( "(") (binary_expression "local_30 != 0" (identifier "local_30") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n              }" ({ "{") (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_0009d618"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar9 = -uVar18;" (assignment_expression "uVar9 = -uVar18" (identifier "uVar9") (= "=") (unary_expression "-uVar18" (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "puVar4 = puVar22;" (assignment_expression "puVar4 = puVar22" (identifier "puVar4") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (-1 < (int)uVar16) {\n                uVar9 = uVar18;\n              }" (if "if") (parenthesized_expression "(-1 < (int)uVar16)" (( "(") (binary_expression "-1 < (int)uVar16" (number_literal "-1") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                uVar9 = uVar18;\n              }" ({ "{") (expression_statement "uVar9 = uVar18;" (assignment_expression "uVar9 = uVar18" (identifier "uVar9") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (goto_statement "goto LAB_000385e8;" (goto "goto") (statement_identifier "LAB_000385e8") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar9 = -uVar16;" (assignment_expression "uVar9 = -uVar16" (identifier "uVar9") (= "=") (unary_expression "-uVar16" (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "puVar4 = auStack_60;" (assignment_expression "puVar4 = auStack_60" (identifier "puVar4") (= "=") (identifier "auStack_60")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}")))) (labeled_statement "LAB_000385e8:\n  if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }" (statement_identifier "LAB_000385e8") (: ":") (if_statement "if (local_2c == *(int *)puVar21) {\n    return uVar9;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar21)" (( "(") (binary_expression "local_2c == *(int *)puVar21" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar21" (* "*") (cast_expression "(int *)puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar21")))) () ")")) (compound_statement "{\n    return uVar9;\n  }" ({ "{") (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}")))) (expression_statement "pcVar23 = __gmpq_cmp;" (assignment_expression "pcVar23 = __gmpq_cmp" (identifier "pcVar23") (= "=") (identifier "__gmpq_cmp")) (; ";")) (expression_statement "puVar21 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar21 = PTR___stack_chk_fail_0009d4d0" (identifier "puVar21") (= "=") (identifier "PTR___stack_chk_fail_0009d4d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0009d4d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(code **)(puVar4 + -4) = pcVar23;" (assignment_expression "*(code **)(puVar4 + -4) = pcVar23" (pointer_expression "*(code **)(puVar4 + -4)" (* "*") (cast_expression "(code **)(puVar4 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + -4)" (( "(") (binary_expression "puVar4 + -4" (identifier "puVar4") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar23")) (; ";")) (expression_statement "*(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;" (assignment_expression "*(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac" (pointer_expression "*(undefined **)(puVar4 + -0x10)" (* "*") (cast_expression "(undefined **)(puVar4 + -0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + -0x10)" (( "(") (binary_expression "puVar4 + -0x10" (identifier "puVar4") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar21 + 0x6c7ac" (identifier "puVar21") (+ "+") (number_literal "0x6c7ac"))) (; ";")) (expression_statement "*(uint *)(puVar4 + -0x18) = param_2 + 0x14;" (assignment_expression "*(uint *)(puVar4 + -0x18) = param_2 + 0x14" (pointer_expression "*(uint *)(puVar4 + -0x18)" (* "*") (cast_expression "(uint *)(puVar4 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + -0x18)" (( "(") (binary_expression "puVar4 + -0x18" (identifier "puVar4") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "uVar16 = FUN_000382f0();" (assignment_expression "uVar16 = FUN_000382f0()" (identifier "uVar16") (= "=") (call_expression "FUN_000382f0()" (identifier "FUN_000382f0") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar16;" (return "return") (identifier "uVar16") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))) (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (unary_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (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: (unary_expression argument: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier)))))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier)))))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal))) consequence: (compound_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: (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: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (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: (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))) (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier)))))

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

{
  uint *puVar1;
  uint uVar2;
  uint *puVar3;
  undefined1 *puVar4;
  int iVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  undefined1 *puVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  undefined *puVar21;
  undefined1 *puVar22;
  code *pcVar23;
  undefined1 auStack_60 [24];
  undefined1 *local_34;
  int local_30;
  int local_2c;
  
  puVar21 = PTR___stack_chk_guard_0009d540;
  puVar22 = auStack_60;
  uVar16 = *(uint *)(param_1 + 4);
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  if (uVar16 == 0) {
    uVar9 = -param_2;
    puVar4 = auStack_60;
  }
  else {
    uVar9 = uVar16;
    puVar4 = auStack_60;
    if ((param_2 != 0) && (puVar4 = auStack_60, -1 < (int)(uVar16 ^ param_2))) {
      uVar19 = *(uint *)(param_1 + 0x10);
      uVar18 = uVar16;
      if ((int)uVar16 < 0) {
        uVar18 = -uVar16;
      }
      iVar14 = *param_5;
      uVar13 = *(uint *)(param_1 + 0x14);
      uVar10 = *(uint *)(iVar14 + (param_4 + 0x3fffffff) * 4);
      uVar7 = *(uint *)(uVar13 + (uVar19 + 0x3fffffff) * 4);
      uVar2 = (uint)((param_4 | uVar10) == 1);
      if ((uVar19 | uVar7) == uVar2) {
        uVar9 = uVar16 - param_2;
        puVar4 = auStack_60;
        if (uVar16 == param_2) {
          iVar12 = uVar18 - 1;
          iVar11 = *(int *)(param_1 + 8) + uVar18 * 4;
          iVar14 = *param_3 + uVar18 * 4;
          do {
            uVar16 = *(uint *)(iVar11 + -4);
            uVar18 = *(uint *)(iVar14 + -4);
            iVar12 = iVar12 + -1;
            if (uVar16 != uVar18) {
              uVar9 = 0xffffffff;
              uVar19 = 1;
              if (uVar18 < uVar16) {
                uVar19 = 0xffffffff;
              }
              param_2 = (uint)(0 < (int)param_2);
              if (uVar18 < uVar16) {
                uVar9 = 1;
              }
              puVar4 = auStack_60;
              if (param_2 == 0) {
                uVar9 = uVar19;
                puVar4 = auStack_60;
              }
              goto LAB_000385e8;
            }
            iVar11 = iVar11 + -4;
            iVar14 = iVar14 + -4;
          } while (iVar12 != -1);
          param_2 = (uint)(0 < (int)param_2);
          uVar9 = 0;
          puVar4 = auStack_60;
        }
      }
      else {
        uVar17 = param_2;
        if ((int)param_2 < 0) {
          uVar17 = -param_2;
        }
        iVar11 = uVar19 + uVar17;
        iVar12 = uVar18 + param_4;
        puVar4 = auStack_60;
        if (iVar12 <= iVar11 + 1) {
          param_2 = iVar12 + 1;
          if ((int)(uVar2 + iVar11) <= (int)param_2) {
            puVar15 = *(undefined1 **)(param_1 + 8);
            uVar8 = *(uint *)(puVar15 + uVar18 * 4 + -4);
            if (uVar8 < 0x10000) {
              iVar5 = 9;
              if (uVar8 < 0x100) {
                iVar5 = 1;
              }
            }
            else {
              iVar5 = 0x19;
              if (uVar8 < 0x1000000) {
                iVar5 = 0x11;
              }
            }
            if (uVar10 < 0x10000) {
              iVar6 = 9;
              if (uVar10 < 0x100) {
                iVar6 = 1;
              }
            }
            else {
              iVar6 = 0x19;
              if (uVar10 < 0x1000000) {
                iVar6 = 0x11;
              }
            }
            param_2 = *param_3;
            uVar20 = *(uint *)(param_2 + uVar17 * 4 + -4);
            uVar8 = iVar12 * 0x20 + -0x42 + iVar5 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar8 >> iVar5] + iVar6 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar10 >> iVar6];
            if (uVar20 < 0x10000) {
              iVar5 = 1;
              if (0xff < uVar20) {
                iVar5 = 9;
              }
            }
            else {
              iVar5 = 0x19;
              if (uVar20 < 0x1000000) {
                iVar5 = 0x11;
              }
            }
            if (uVar7 < 0x10000) {
              iVar6 = 1;
              if (0xff < uVar7) {
                iVar6 = 9;
              }
            }
            else {
              iVar6 = 0x19;
              if (uVar7 < 0x1000000) {
                iVar6 = 0x11;
              }
            }
            iVar5 = iVar11 * 0x20 + -0x42 + iVar5 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar20 >> iVar5] + iVar6 +
                    (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar7 >> iVar6];
            puVar4 = auStack_60;
            if (iVar5 + 1U < uVar8) goto LAB_000385e8;
            if (uVar2 + iVar5 <= uVar8 + 1) {
              local_30 = 0;
              if ((param_4 | uVar10) == 1) {
                uVar9 = iVar11 * 4;
                if (uVar9 < 0x7f01) {
                  iVar12 = iVar12 + -1;
                  iVar14 = -(uVar9 + 7 & 0xfffffff8);
                  puVar22 = auStack_60 + iVar14;
                  local_34 = &stack0xffffffb8 + iVar14;
                }
                else {
                  local_34 = (undefined1 *)
                             (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar9);
                  puVar15 = *(undefined1 **)(param_1 + 8);
                  uVar13 = *(uint *)(param_1 + 0x14);
                  iVar12 = iVar12 + -1;
                  param_2 = *param_3;
                }
              }
              else {
                uVar9 = (iVar12 + iVar11) * 4;
                if (uVar9 < 0x7f01) {
                  iVar5 = -(uVar9 + 7 & 0xfffffff8);
                  puVar4 = &stack0xffffffb8 + iVar5;
                  puVar22 = auStack_60 + iVar5;
                }
                else {
                  puVar4 = (undefined1 *)
                           (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
                  iVar14 = *param_5;
                  puVar15 = *(undefined1 **)(param_1 + 8);
                  puVar22 = auStack_60;
                }
                local_34 = puVar4 + iVar12 * 4;
                if ((int)uVar18 < (int)param_4) {
                  *(uint *)(puVar22 + 0x10) = uVar18;
                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,iVar14,param_4,puVar15);
                  uVar13 = *(uint *)(param_1 + 0x14);
                  param_2 = *param_3;
                  iVar12 = iVar12 - (uint)(iVar14 == 0);
                  puVar15 = puVar4;
                }
                else {
                  *(uint *)(puVar22 + 0x10) = param_4;
                  iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(puVar4,puVar15,uVar18,iVar14);
                  param_2 = *param_3;
                  uVar13 = *(uint *)(param_1 + 0x14);
                  iVar12 = iVar12 - (uint)(iVar14 == 0);
                  puVar15 = puVar4;
                }
              }
              if ((int)uVar17 < (int)uVar19) {
                *(uint *)(puVar22 + 0x10) = uVar17;
                uVar9 = uVar13;
                uVar13 = param_2;
              }
              else {
                *(uint *)(puVar22 + 0x10) = uVar19;
                uVar9 = param_2;
                uVar19 = uVar17;
              }
              param_2 = uVar9;
              iVar14 = (*(code *)PTR___gmpn_mul_0009d2b4)(local_34,param_2,uVar19,uVar13);
              iVar11 = iVar11 - (uint)(iVar14 == 0);
              if (iVar12 == iVar11) {
                puVar15 = puVar15 + iVar12 * 4;
                puVar3 = (uint *)(local_34 + iVar12 * 4);
                do {
                  iVar12 = iVar12 + -1;
                  puVar3 = puVar3 + -1;
                  if (iVar12 < 0) {
                    uVar18 = 0;
                    goto LAB_000385d0;
                  }
                  puVar1 = (uint *)(puVar15 + -4);
                  puVar15 = puVar15 + -4;
                } while (*puVar1 == *puVar3);
                uVar18 = 1;
                if (*puVar1 <= *puVar3) {
                  uVar18 = 0xffffffff;
                }
              }
              else {
                uVar18 = iVar12 - iVar11;
              }
LAB_000385d0:
              if (local_30 != 0) {
                (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
              }
              uVar9 = -uVar18;
              puVar4 = puVar22;
              if (-1 < (int)uVar16) {
                uVar9 = uVar18;
              }
              goto LAB_000385e8;
            }
          }
          uVar9 = -uVar16;
          puVar4 = auStack_60;
        }
      }
    }
  }
LAB_000385e8:
  if (local_2c == *(int *)puVar21) {
    return uVar9;
  }
  pcVar23 = __gmpq_cmp;
  puVar21 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  *(code **)(puVar4 + -4) = pcVar23;
  *(undefined **)(puVar4 + -0x10) = puVar21 + 0x6c7ac;
  *(uint *)(puVar4 + -0x18) = param_2 + 0x14;
  uVar16 = MASKED();
  return uVar16;
}

