
char * __gmpz_get_str(char *res_str,int base,mpz_srcptr x)

{
  undefined *puVar1;
  char *pcVar2;
  mp_limb_t *pmVar3;
  int iVar4;
  uint uVar5;
  mp_limb_t *pmVar6;
  char *pcVar7;
  char *pcVar8;
  uint uVar9;
  mp_limb_t *pmVar10;
  uint uVar11;
  mp_limb_t mVar12;
  undefined *puVar13;
  uint uVar14;
  char *pcVar15;
  uint uVar16;
  tmp_reentrant_t *__tmp_marker;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0009d540;
  uVar11 = x->_mp_size;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  if (base < 0) {
    if (base == -1) {
      uVar16 = 8;
      uVar14 = 10;
      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;
    }
    else {
      uVar14 = -base;
      if (base < -0x24) {
LAB_0002a12c:
        pcVar2 = (char *)0x0;
        goto LAB_00029fd8;
      }
      uVar16 = ~base & uVar14;
      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;
    }
LAB_0002a030:
    if (res_str == (char *)0x0) goto LAB_00029e2c;
LAB_0002a038:
    pcVar15 = (char *)0x0;
    pcVar2 = res_str;
    if ((int)uVar11 < 0) goto LAB_00029ef8;
LAB_0002a040:
    pcVar2 = res_str;
    if (uVar16 != 0) goto LAB_00029f10;
LAB_0002a04c:
    __tmp_marker = (tmp_reentrant_t *)0x0;
    pmVar3 = x->_mp_d;
LAB_0002a054:
    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3);
    if (iVar4 == 0) goto LAB_00029f94;
LAB_0002a068:
    pcVar7 = res_str;
    do {
      pcVar8 = pcVar7 + 1;
      *pcVar7 = puVar13[*pcVar7];
      pcVar7 = pcVar8;
    } while (res_str + iVar4 != pcVar8);
    res_str[iVar4] = '\0';
  }
  else {
    if (base < 2) {
      uVar16 = 8;
      uVar14 = 10;
      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;
      goto LAB_0002a030;
    }
    uVar14 = base;
    if (base < 0x25) {
      uVar16 = base - 1U & base;
      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;
      goto LAB_0002a030;
    }
    uVar16 = base - 1U & base;
    if (0x3e < base) goto LAB_0002a12c;
    puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498;
    if (res_str != (char *)0x0) goto LAB_0002a038;
LAB_00029e2c:
    pcVar15 = (char *)0x2;
    if (uVar11 != 0) {
      if ((int)uVar11 < 0) {
        iVar4 = ~uVar11 << 2;
      }
      else {
        iVar4 = uVar11 * 4 + -4;
      }
      uVar9 = *(uint *)((int)x->_mp_d + iVar4);
      if (uVar9 < 0x10000) {
        iVar4 = 9;
        if (uVar9 < 0x100) {
          iVar4 = 1;
        }
      }
      else {
        iVar4 = 0x19;
        if (uVar9 < 0x1000000) {
          iVar4 = 0x11;
        }
      }
      uVar5 = uVar11;
      if ((int)uVar11 < 0) {
        uVar5 = -uVar11;
      }
      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]
      ;
      if (uVar16 == 0) {
        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);
        if (uVar5 == 0) {
          trap(7);
        }
        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;
      }
      else {
        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *
                      (ulonglong)uVar9 >> 0x20) + 1;
      }
      if ((int)uVar11 < 0) {
        pcVar15 = (char *)(uVar5 + 2);
      }
      else {
        pcVar15 = (char *)(uVar5 + 1);
      }
    }
    res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);
    pcVar2 = res_str;
    if (-1 < (int)uVar11) goto LAB_0002a040;
LAB_00029ef8:
    res_str = pcVar2 + 1;
    *pcVar2 = '-';
    uVar11 = -uVar11;
    if (uVar16 == 0) goto LAB_0002a04c;
LAB_00029f10:
    __tmp_marker = (tmp_reentrant_t *)0x0;
    uVar16 = (uVar11 | 1) * 4;
    if (uVar16 < 0x7f01) {
      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));
    }
    else {
      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);
    }
    if (uVar11 == 0) goto LAB_0002a054;
    pmVar6 = x->_mp_d;
    iVar4 = uVar11 - 1;
    mVar12 = *pmVar6;
    pmVar10 = pmVar3;
    if (iVar4 == 0) {
      *pmVar3 = mVar12;
    }
    else {
      do {
        pmVar6 = pmVar6 + 1;
        *pmVar10 = mVar12;
        iVar4 = iVar4 + -1;
        mVar12 = *pmVar6;
        pmVar10 = pmVar10 + 1;
      } while (iVar4 != 0);
      pmVar3[uVar11 - 1] = mVar12;
    }
    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14);
    if (iVar4 != 0) goto LAB_0002a068;
LAB_00029f94:
    *res_str = '\0';
  }
  if (__tmp_marker != (tmp_reentrant_t *)0x0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
  }
  if ((pcVar15 != (char *)0x0) && (pcVar15 != res_str + iVar4 + (1 - (int)pcVar2))) {
    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);
  }
LAB_00029fd8:
  if (local_2c != *(int *)puVar1) {
    (*(code *)PTR___stack_chk_fail_0009d4d0)();
    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);
    if (*(int *)(local_2c + 4) == 0) {
      pcVar2 = (char *)0x0;
    }
    return pcVar2;
  }
  return pcVar2;
}



char * __gmpz_get_str(char *param_1,uint param_2,int param_3)

{
  undefined *puVar1;
  char *pcVar2;
  undefined4 *puVar3;
  int iVar4;
  uint uVar5;
  undefined4 *puVar6;
  char *pcVar7;
  char *pcVar8;
  uint uVar9;
  undefined4 *puVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined *puVar13;
  uint uVar14;
  char *pcVar15;
  uint uVar16;
  int local_30;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0009d540;
  uVar11 = *(uint *)(param_3 + 4);
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  if ((int)param_2 < 0) {
    if (param_2 == 0xffffffff) {
      uVar16 = 8;
      uVar14 = 10;
      puVar13 = PTR_LAB_0009d06c + 0x34d8;
    }
    else {
      uVar14 = -param_2;
      if ((int)param_2 < -0x24) {
LAB_0002a12c:
        pcVar2 = (char *)0x0;
        goto LAB_00029fd8;
      }
      uVar16 = ~param_2 & uVar14;
      puVar13 = PTR_LAB_0009d06c + 0x34d8;
    }
LAB_0002a030:
    if (param_1 == (char *)0x0) goto LAB_00029e2c;
LAB_0002a038:
    pcVar15 = (char *)0x0;
    pcVar2 = param_1;
    if ((int)uVar11 < 0) goto LAB_00029ef8;
LAB_0002a040:
    pcVar2 = param_1;
    if (uVar16 != 0) goto LAB_00029f10;
LAB_0002a04c:
    local_30 = 0;
    puVar3 = *(undefined4 **)(param_3 + 8);
LAB_0002a054:
    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);
    if (iVar4 == 0) goto LAB_00029f94;
LAB_0002a068:
    pcVar7 = param_1;
    do {
      pcVar8 = pcVar7 + 1;
      *pcVar7 = puVar13[*pcVar7];
      pcVar7 = pcVar8;
    } while (param_1 + iVar4 != pcVar8);
    param_1[iVar4] = '\0';
  }
  else {
    if ((int)param_2 < 2) {
      uVar16 = 8;
      uVar14 = 10;
      puVar13 = PTR_LAB_0009d06c + 0x3500;
      goto LAB_0002a030;
    }
    uVar14 = param_2;
    if ((int)param_2 < 0x25) {
      uVar16 = param_2 - 1 & param_2;
      puVar13 = PTR_LAB_0009d06c + 0x3500;
      goto LAB_0002a030;
    }
    uVar16 = param_2 - 1 & param_2;
    if (0x3e < (int)param_2) goto LAB_0002a12c;
    puVar13 = PTR_LAB_0009d06c + 0x3498;
    if (param_1 != (char *)0x0) goto LAB_0002a038;
LAB_00029e2c:
    pcVar15 = (char *)0x2;
    if (uVar11 != 0) {
      if ((int)uVar11 < 0) {
        iVar4 = ~uVar11 << 2;
      }
      else {
        iVar4 = uVar11 * 4 + -4;
      }
      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);
      if (uVar9 < 0x10000) {
        iVar4 = 9;
        if (uVar9 < 0x100) {
          iVar4 = 1;
        }
      }
      else {
        iVar4 = 0x19;
        if (uVar9 < 0x1000000) {
          iVar4 = 0x11;
        }
      }
      uVar5 = uVar11;
      if ((int)uVar11 < 0) {
        uVar5 = -uVar11;
      }
      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]
      ;
      if (uVar16 == 0) {
        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);
        if (uVar5 == 0) {
          trap(7);
        }
        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;
      }
      else {
        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *
                      (ulonglong)uVar9 >> 0x20) + 1;
      }
      if ((int)uVar11 < 0) {
        pcVar15 = (char *)(uVar5 + 2);
      }
      else {
        pcVar15 = (char *)(uVar5 + 1);
      }
    }
    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);
    pcVar2 = param_1;
    if (-1 < (int)uVar11) goto LAB_0002a040;
LAB_00029ef8:
    param_1 = pcVar2 + 1;
    *pcVar2 = '-';
    uVar11 = -uVar11;
    if (uVar16 == 0) goto LAB_0002a04c;
LAB_00029f10:
    local_30 = 0;
    uVar16 = (uVar11 | 1) * 4;
    if (uVar16 < 0x7f01) {
      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));
    }
    else {
      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
    }
    if (uVar11 == 0) goto LAB_0002a054;
    puVar6 = *(undefined4 **)(param_3 + 8);
    iVar4 = uVar11 - 1;
    uVar12 = *puVar6;
    puVar10 = puVar3;
    if (iVar4 == 0) {
      *puVar3 = uVar12;
    }
    else {
      do {
        puVar6 = puVar6 + 1;
        *puVar10 = uVar12;
        iVar4 = iVar4 + -1;
        uVar12 = *puVar6;
        puVar10 = puVar10 + 1;
      } while (iVar4 != 0);
      puVar3[uVar11 - 1] = uVar12;
    }
    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);
    if (iVar4 != 0) goto LAB_0002a068;
LAB_00029f94:
    *param_1 = '\0';
  }
  if (local_30 != 0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
  }
  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {
    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);
  }
LAB_00029fd8:
  if (local_2c != *(int *)puVar1) {
    (*(code *)PTR___stack_chk_fail_0009d4d0)();
    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);
    if (*(int *)(local_2c + 4) == 0) {
      pcVar2 = (char *)0x0;
    }
    return pcVar2;
  }
  return pcVar2;
}


lui gp,0x8
addiu gp,gp,-0x4d60
addu gp,gp,t9
addiu sp,sp,-0x50
lw a3,0x4(a2)
sw s2,0x30(sp)
lw s2,-0x7b00(gp)
sw s8,0x48(sp)
or s8,sp,zero
sw s7,0x44(sp)
or s7,a2,zero
sw s4,0x38(sp)
or s4,a0,zero
sw s3,0x34(sp)
or s3,a1,zero
sw ra,0x4c(sp)
sw s6,0x40(sp)
sw s5,0x3c(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
sw gp,0x10(sp)
lw v0,0x0(s2)
sw v0,0x24(s8)
bltz a1,0x0002a090
_slti v0,a1,0x2
bne v0,zero,0x0002a020
_slti v0,a1,0x25
bne v0,zero,0x0002a0ac
_addiu s6,a1,-0x1
slti v0,a1,0x3f
beq v0,zero,0x0002a12c
_and s6,s6,a1
lw s0,-0x7fd4(gp)
bne s4,zero,0x0002a038
_addiu s0,s0,0x3498
beq a3,zero,0x00029ed4
_li s5,0x2
bltz a3,0x0002a134
_lw v0,0x8(s7)
sll v1,a3,0x2
addiu v1,v1,-0x4
addu v0,v0,v1
lw a0,0x0(v0)
lui v0,0x1
sltu v0,a0,v0
beq v0,zero,0x0002a100
_li a1,0x11
li a1,0x1
li v1,0x9
sltiu v0,a0,0x100
movn v1,a1,v0
bgez a3,0x00029e78
_or v0,a3,zero
subu v0,zero,a3
lw a1,-0x7eb4(gp)
srlv a0,a0,v1
sll v0,v0,0x5
addu a0,a1,a0
addiu v0,v0,-0x21
lbu a0,0x0(a0)
addu v0,v0,v1
sll v1,s3,0x2
addu v1,v1,s3
addu v0,v0,a0
lw a0,-0x7d08(gp)
sll v1,v1,0x2
bne s6,zero,0x0002a114
_addu v1,a0,v1
lw v1,0xc(v1)
addiu s5,v1,-0x1
addu v0,s5,v0
teq v1,zero
divu v0,v1
mflo s5
bgez a3,0x0002a160
_nop
addiu s5,s5,0x2
lw v0,-0x7b34(gp)
sw a3,0x1c(s8)
lw t9,0x0(v0)
jalr t9
_or a0,s5,zero
lw a3,0x1c(s8)
or s4,v0,zero
bgez a3,0x0002a040
_lw gp,0x10(s8)
li v0,0x2d
addiu s1,s4,0x1
sb v0,0x0(s4)
subu a3,zero,a3
beq s6,zero,0x0002a04c
_sw zero,0x20(s8)
ori a1,a3,0x1
sll a1,a1,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x0002a140
_addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu a2,sp,0x10
beq a3,zero,0x0002a054
_lw t9,-0x7d14(gp)
lw v1,0x8(s7)
addiu a0,a3,-0x1
beq a0,zero,0x0002a0bc
_lw t0,0x0(v1)
addiu v1,v1,0x4
or a1,a2,zero
addiu a1,a1,0x4
sw t0,-0x4(a1)
addiu v1,v1,0x4
addiu a0,a0,-0x1
bne a0,zero,0x00029f54
_lw t0,-0x4(v1)
sll v0,a3,0x2
addiu v0,v0,-0x4
addu v0,a2,v0
sw t0,0x0(v0)
lw t9,-0x7d14(gp)
or a1,s3,zero
jalr t9
_or a0,s1,zero
bne v0,zero,0x0002a068
_lw gp,0x10(s8)
or a1,s1,zero
sb zero,0x0(a1)
lw a0,0x20(s8)
bne a0,zero,0x0002a0ec
_lw t9,-0x7a28(gp)
beq s5,zero,0x00029fd8
_subu a2,s1,s4
addiu a2,a2,0x1
addu a2,a2,v0
beq s5,a2,0x00029fd8
_lw v0,-0x7a9c(gp)
or a0,s4,zero
lw t9,0x0(v0)
jalr t9
_or a1,s5,zero
lw gp,0x10(s8)
or s4,v0,zero
lw a0,0x24(s8)
or v0,s4,zero
lw v1,0x0(s2)
bne a0,v1,0x0002a168
_lw t9,-0x7b70(gp)
or sp,s8,zero
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
lw s0,-0x7fd4(gp)
li s6,0x8
li s3,0xa
addiu s0,s0,0x3500
beq s4,zero,0x00029e2c
_nop
bltz a3,0x00029ef8
_or s5,zero,zero
or s1,s4,zero
bne s6,zero,0x00029f10
_sw zero,0x20(s8)
lw a2,0x8(s7)
lw t9,-0x7d14(gp)
or a1,s3,zero
jalr t9
_or a0,s1,zero
beq v0,zero,0x00029f94
_lw gp,0x10(s8)
addu a1,v0,s1
or v1,s1,zero
lb a0,0x0(v1)
addiu v1,v1,0x1
addu a0,s0,a0
lbu a0,0x0(a0)
bne a1,v1,0x0002a070
_sb a0,-0x1(v1)
b 0x00029f9c
_sb zero,0x0(a1)
li v0,-0x1
bne a1,v0,0x0002a0c8
_lw s0,-0x7fd4(gp)
li s6,0x8
li s3,0xa
b 0x0002a030
_addiu s0,s0,0x34d8
lw s0,-0x7fd4(gp)
and s6,s6,a1
b 0x0002a030
_addiu s0,s0,0x3500
or v0,a2,zero
b 0x00029f7c
_sw t0,0x0(v0)
slti v0,a1,-0x24
bne v0,zero,0x0002a12c
_subu v0,zero,a1
lw s0,-0x7fd4(gp)
nor s3,zero,a1
and s6,s3,v0
addiu s0,s0,0x34d8
b 0x0002a030
_or s3,v0,zero
jalr t9
_sw v0,0x1c(s8)
lw gp,0x10(s8)
b 0x00029fa8
_lw v0,0x1c(s8)
lui v0,0x100
li v1,0x19
sltu v0,a0,v0
b 0x00029e6c
_movn v1,a1,v0
lw v1,0x4(v1)
addiu v1,v1,0x1
multu v1,v0
mfhi v0
b 0x00029ec8
_addiu s5,v0,0x1
b 0x00029fd8
_or s4,zero,zero
nor v1,zero,a3
b 0x00029e44
_sll v1,v1,0x2
lw t9,-0x7d50(gp)
addiu a0,s8,0x20
jalr t9
_sw a3,0x1c(s8)
lw gp,0x10(s8)
or a2,v0,zero
b 0x00029f34
_lw a3,0x1c(s8)
b 0x00029ed4
_addiu s5,s5,0x1
jalr t9
_nop
(translation_unit "char * __gmpz_get_str(char *param_1,uint param_2,int param_3)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = *(uint *)(param_3 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }\n  if (local_30 != 0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}\n\n" (function_definition "char * __gmpz_get_str(char *param_1,uint param_2,int param_3)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = *(uint *)(param_3 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }\n  if (local_30 != 0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}" primitive_type (pointer_declarator "* __gmpz_get_str(char *param_1,uint param_2,int param_3)" * (function_declarator "__gmpz_get_str(char *param_1,uint param_2,int param_3)" identifier (parameter_list "(char *param_1,uint param_2,int param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = *(uint *)(param_3 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }\n  if (local_30 != 0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "uVar11 = *(uint *)(param_3 + 4);" (assignment_expression "uVar11 = *(uint *)(param_3 + 4)" identifier = (pointer_expression "*(uint *)(param_3 + 4)" * (cast_expression "(uint *)(param_3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 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 ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\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    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }" { (if_statement "if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" if (parenthesized_expression "(param_2 == 0xffffffff)" ( (binary_expression "param_2 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" { (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" identifier = number_literal) ;) (expression_statement "uVar14 = 10;" (assignment_expression "uVar14 = 10" identifier = number_literal) ;) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x34d8;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x34d8" identifier = (binary_expression "PTR_LAB_0009d06c + 0x34d8" identifier + number_literal)) ;) }) (else_clause "else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" else (compound_statement "{\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" { (expression_statement "uVar14 = -param_2;" (assignment_expression "uVar14 = -param_2" identifier = (unary_expression "-param_2" - identifier)) ;) (if_statement "if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }" if (parenthesized_expression "((int)param_2 < -0x24)" ( (binary_expression "(int)param_2 < -0x24" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }" { (labeled_statement "LAB_0002a12c:\n        pcVar2 = (char *)0x0;" statement_identifier : (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_00029fd8;" goto statement_identifier ;) })) (expression_statement "uVar16 = ~param_2 & uVar14;" (assignment_expression "uVar16 = ~param_2 & uVar14" identifier = (binary_expression "~param_2 & uVar14" (unary_expression "~param_2" ~ identifier) & identifier)) ;) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x34d8;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x34d8" identifier = (binary_expression "PTR_LAB_0009d06c + 0x34d8" identifier + number_literal)) ;) }))) (labeled_statement "LAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;" statement_identifier : (if_statement "if (param_1 == (char *)0x0) goto LAB_00029e2c;" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00029e2c;" goto statement_identifier ;))) (labeled_statement "LAB_0002a038:\n    pcVar15 = (char *)0x0;" statement_identifier : (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" identifier = identifier) ;) (if_statement "if ((int)uVar11 < 0) goto LAB_00029ef8;" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00029ef8;" goto statement_identifier ;)) (labeled_statement "LAB_0002a040:\n    pcVar2 = param_1;" statement_identifier : (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" identifier = identifier) ;)) (if_statement "if (uVar16 != 0) goto LAB_00029f10;" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00029f10;" goto statement_identifier ;)) (labeled_statement "LAB_0002a04c:\n    local_30 = 0;" statement_identifier : (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;)) (expression_statement "puVar3 = *(undefined4 **)(param_3 + 8);" (assignment_expression "puVar3 = *(undefined4 **)(param_3 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_3 + 8)" * (cast_expression "(undefined4 **)(param_3 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3)" identifier = (call_expression "(*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_get_str_0009d32c)" ( (pointer_expression "*(code *)PTR___gmpn_get_str_0009d32c" * (cast_expression "(code *)PTR___gmpn_get_str_0009d32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar14,puVar3)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar4 == 0) goto LAB_00029f94;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029f94;" goto statement_identifier ;)) (labeled_statement "LAB_0002a068:\n    pcVar7 = param_1;" statement_identifier : (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" identifier = identifier) ;)) (do_statement "do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);" do (compound_statement "{\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    }" { (expression_statement "pcVar8 = pcVar7 + 1;" (assignment_expression "pcVar8 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar7 = puVar13[*pcVar7];" (assignment_expression "*pcVar7 = puVar13[*pcVar7]" (pointer_expression "*pcVar7" * identifier) = (subscript_expression "puVar13[*pcVar7]" identifier [ (pointer_expression "*pcVar7" * identifier) ])) ;) (expression_statement "pcVar7 = pcVar8;" (assignment_expression "pcVar7 = pcVar8" identifier = identifier) ;) }) while (parenthesized_expression "(param_1 + iVar4 != pcVar8)" ( (binary_expression "param_1 + iVar4 != pcVar8" (binary_expression "param_1 + iVar4" identifier + identifier) != identifier) )) ;) (expression_statement "param_1[iVar4] = '\0';" (assignment_expression "param_1[iVar4] = '\0'" (subscript_expression "param_1[iVar4]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }" else (compound_statement "{\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }" { (if_statement "if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" if (parenthesized_expression "((int)param_2 < 2)" ( (binary_expression "(int)param_2 < 2" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" { (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" identifier = number_literal) ;) (expression_statement "uVar14 = 10;" (assignment_expression "uVar14 = 10" identifier = number_literal) ;) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3500;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3500" identifier = (binary_expression "PTR_LAB_0009d06c + 0x3500" identifier + number_literal)) ;) (goto_statement "goto LAB_0002a030;" goto statement_identifier ;) })) (expression_statement "uVar14 = param_2;" (assignment_expression "uVar14 = param_2" identifier = identifier) ;) (if_statement "if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" if (parenthesized_expression "((int)param_2 < 0x25)" ( (binary_expression "(int)param_2 < 0x25" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" { (expression_statement "uVar16 = param_2 - 1 & param_2;" (assignment_expression "uVar16 = param_2 - 1 & param_2" identifier = (binary_expression "param_2 - 1 & param_2" (binary_expression "param_2 - 1" identifier - number_literal) & identifier)) ;) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3500;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3500" identifier = (binary_expression "PTR_LAB_0009d06c + 0x3500" identifier + number_literal)) ;) (goto_statement "goto LAB_0002a030;" goto statement_identifier ;) })) (expression_statement "uVar16 = param_2 - 1 & param_2;" (assignment_expression "uVar16 = param_2 - 1 & param_2" identifier = (binary_expression "param_2 - 1 & param_2" (binary_expression "param_2 - 1" identifier - number_literal) & identifier)) ;) (if_statement "if (0x3e < (int)param_2) goto LAB_0002a12c;" if (parenthesized_expression "(0x3e < (int)param_2)" ( (binary_expression "0x3e < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002a12c;" goto statement_identifier ;)) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3498;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3498" identifier = (binary_expression "PTR_LAB_0009d06c + 0x3498" identifier + number_literal)) ;) (if_statement "if (param_1 != (char *)0x0) goto LAB_0002a038;" if (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002a038;" goto statement_identifier ;)) (labeled_statement "LAB_00029e2c:\n    pcVar15 = (char *)0x2;" statement_identifier : (expression_statement "pcVar15 = (char *)0x2;" (assignment_expression "pcVar15 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }" { (if_statement "if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar4 = ~uVar11 << 2;\n      }" { (expression_statement "iVar4 = ~uVar11 << 2;" (assignment_expression "iVar4 = ~uVar11 << 2" identifier = (binary_expression "~uVar11 << 2" (unary_expression "~uVar11" ~ identifier) << number_literal)) ;) }) (else_clause "else {\n        iVar4 = uVar11 * 4 + -4;\n      }" else (compound_statement "{\n        iVar4 = uVar11 * 4 + -4;\n      }" { (expression_statement "iVar4 = uVar11 * 4 + -4;" (assignment_expression "iVar4 = uVar11 * 4 + -4" identifier = (binary_expression "uVar11 * 4 + -4" (binary_expression "uVar11 * 4" identifier * number_literal) + number_literal)) ;) }))) (expression_statement "uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);" (assignment_expression "uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4)" identifier = (pointer_expression "*(uint *)(*(int *)(param_3 + 8) + iVar4)" * (cast_expression "(uint *)(*(int *)(param_3 + 8) + iVar4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 8) + iVar4)" ( (binary_expression "*(int *)(param_3 + 8) + iVar4" (pointer_expression "*(int *)(param_3 + 8)" * (cast_expression "(int *)(param_3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) + identifier) ))))) ;) (if_statement "if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" if (parenthesized_expression "(uVar9 < 0x10000)" ( (binary_expression "uVar9 < 0x10000" identifier < number_literal) )) (compound_statement "{\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }" { (expression_statement "iVar4 = 9;" (assignment_expression "iVar4 = 9" identifier = number_literal) ;) (if_statement "if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }" if (parenthesized_expression "(uVar9 < 0x100)" ( (binary_expression "uVar9 < 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 (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" { (expression_statement "iVar4 = 0x19;" (assignment_expression "iVar4 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }" if (parenthesized_expression "(uVar9 < 0x1000000)" ( (binary_expression "uVar9 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n          iVar4 = 0x11;\n        }" { (expression_statement "iVar4 = 0x11;" (assignment_expression "iVar4 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "uVar5 = uVar11;" (assignment_expression "uVar5 = uVar11" identifier = identifier) ;) (if_statement "if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar5 = -uVar11;\n      }" { (expression_statement "uVar5 = -uVar11;" (assignment_expression "uVar5 = -uVar11" identifier = (unary_expression "-uVar11" - identifier)) ;) })) (expression_statement "uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;" (assignment_expression "uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" identifier = (binary_expression "uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" (binary_expression "uVar5 * 0x20 + -0x21 + iVar4" (binary_expression "uVar5 * 0x20 + -0x21" (binary_expression "uVar5 * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" identifier [ (binary_expression "uVar9 >> iVar4" identifier >> identifier) ]))))) ;) (if_statement "if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }" { (expression_statement "uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);" (assignment_expression "uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" identifier = (pointer_expression "*(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" * (cast_expression "(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" ( (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc" (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14" identifier + (binary_expression "uVar14 * 0x14" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (uVar5 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar5 = ((uVar5 - 1) + uVar9) / uVar5;" (assignment_expression "uVar5 = ((uVar5 - 1) + uVar9) / uVar5" identifier = (binary_expression "((uVar5 - 1) + uVar9) / uVar5" (parenthesized_expression "((uVar5 - 1) + uVar9)" ( (binary_expression "(uVar5 - 1) + uVar9" (parenthesized_expression "(uVar5 - 1)" ( (binary_expression "uVar5 - 1" identifier - number_literal) )) + identifier) )) / identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" else (compound_statement "{\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" { (expression_statement "uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;" (assignment_expression "uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1" identifier = (binary_expression "(int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1" (cast_expression "(int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20" (binary_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9" (call_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1)" ( (binary_expression "*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1" (pointer_expression "*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" * (cast_expression "(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" ( (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4" (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14" identifier + (binary_expression "uVar14 * 0x14" identifier * number_literal)) + number_literal) )))) + number_literal) ))) * (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))) + number_literal)) ;) }))) (if_statement "if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        pcVar15 = (char *)(uVar5 + 2);\n      }" { (expression_statement "pcVar15 = (char *)(uVar5 + 2);" (assignment_expression "pcVar15 = (char *)(uVar5 + 2)" identifier = (cast_expression "(char *)(uVar5 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 2)" ( (binary_expression "uVar5 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }" else (compound_statement "{\n        pcVar15 = (char *)(uVar5 + 1);\n      }" { (expression_statement "pcVar15 = (char *)(uVar5 + 1);" (assignment_expression "pcVar15 = (char *)(uVar5 + 1)" identifier = (cast_expression "(char *)(uVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 1)" ( (binary_expression "uVar5 + 1" identifier + number_literal) )))) ;) }))) })) (expression_statement "param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);" (assignment_expression "param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" identifier = (cast_expression "(char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" (parenthesized_expression "(**(code **)PTR___gmp_allocate_func_0009d50c)" ( (pointer_expression "**(code **)PTR___gmp_allocate_func_0009d50c" * (pointer_expression "*(code **)PTR___gmp_allocate_func_0009d50c" * (cast_expression "(code **)PTR___gmp_allocate_func_0009d50c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pcVar15)" ( identifier ))))) ;) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" identifier = identifier) ;) (if_statement "if (-1 < (int)uVar11) goto LAB_0002a040;" if (parenthesized_expression "(-1 < (int)uVar11)" ( (binary_expression "-1 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002a040;" goto statement_identifier ;)) (labeled_statement "LAB_00029ef8:\n    param_1 = pcVar2 + 1;" statement_identifier : (expression_statement "param_1 = pcVar2 + 1;" (assignment_expression "param_1 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;)) (expression_statement "*pcVar2 = '-';" (assignment_expression "*pcVar2 = '-'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "uVar11 = -uVar11;" (assignment_expression "uVar11 = -uVar11" identifier = (unary_expression "-uVar11" - identifier)) ;) (if_statement "if (uVar16 == 0) goto LAB_0002a04c;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a04c;" goto statement_identifier ;)) (labeled_statement "LAB_00029f10:\n    local_30 = 0;" statement_identifier : (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;)) (expression_statement "uVar16 = (uVar11 | 1) * 4;" (assignment_expression "uVar16 = (uVar11 | 1) * 4" identifier = (binary_expression "(uVar11 | 1) * 4" (parenthesized_expression "(uVar11 | 1)" ( (binary_expression "uVar11 | 1" identifier | number_literal) )) * number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }" { (expression_statement "puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));" (assignment_expression "puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" identifier = (cast_expression "(undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" ( (binary_expression "&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8)" (pointer_expression "&stack0xffffffc0" & identifier) + (unary_expression "-(uVar16 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar16 + 7 & 0xfffffff8)" ( (binary_expression "uVar16 + 7 & 0xfffffff8" (binary_expression "uVar16 + 7" identifier + number_literal) & number_literal) )))) )))) ;) }) (else_clause "else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" else (compound_statement "{\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" { (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (if_statement "if (uVar11 == 0) goto LAB_0002a054;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a054;" goto statement_identifier ;)) (expression_statement "puVar6 = *(undefined4 **)(param_3 + 8);" (assignment_expression "puVar6 = *(undefined4 **)(param_3 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_3 + 8)" * (cast_expression "(undefined4 **)(param_3 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = uVar11 - 1;" (assignment_expression "iVar4 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "uVar12 = *puVar6;" (assignment_expression "uVar12 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar10 = puVar3;" (assignment_expression "puVar10 = puVar3" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      *puVar3 = uVar12;\n    }" { (expression_statement "*puVar3 = uVar12;" (assignment_expression "*puVar3 = uVar12" (pointer_expression "*puVar3" * identifier) = identifier) ;) }) (else_clause "else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" else (compound_statement "{\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" { (do_statement "do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);" do (compound_statement "{\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      }" { (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar6;" (assignment_expression "uVar12 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) (expression_statement "puVar3[uVar11 - 1] = uVar12;" (assignment_expression "puVar3[uVar11 - 1] = uVar12" (subscript_expression "puVar3[uVar11 - 1]" identifier [ (binary_expression "uVar11 - 1" identifier - number_literal) ]) = identifier) ;) }))) (expression_statement "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14)" identifier = (call_expression "(*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_get_str_0009d32c)" ( (pointer_expression "*(code *)PTR___gmpn_get_str_0009d32c" * (cast_expression "(code *)PTR___gmpn_get_str_0009d32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar14)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0002a068;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002a068;" goto statement_identifier ;)) (labeled_statement "LAB_00029f94:\n    *param_1 = '\0';" statement_identifier : (expression_statement "*param_1 = '\0';" (assignment_expression "*param_1 = '\0'" (pointer_expression "*param_1" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) }))) (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 "()" ( ))) ;) })) (if_statement "if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }" if (parenthesized_expression "((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2)))" ( (binary_expression "(pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))" (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))" ( (binary_expression "pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2)" identifier != (binary_expression "param_1 + iVar4 + (1 - (int)pcVar2)" (binary_expression "param_1 + iVar4" identifier + identifier) + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) )) (compound_statement "{\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }" { (expression_statement "pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);" (assignment_expression "pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" identifier = (cast_expression "(char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" (parenthesized_expression "(**(code **)PTR___gmp_reallocate_func_0009d5a4)" ( (pointer_expression "**(code **)PTR___gmp_reallocate_func_0009d5a4" * (pointer_expression "*(code **)PTR___gmp_reallocate_func_0009d5a4" * (cast_expression "(code **)PTR___gmp_reallocate_func_0009d5a4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pcVar2,pcVar15)" ( identifier , identifier ))))) ;) })) (labeled_statement "LAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" statement_identifier : (if_statement "if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" if (parenthesized_expression "(local_2c != *(int *)puVar1)" ( (binary_expression "local_2c != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" { (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 "pcVar2 = (char *)**(undefined4 **)(local_2c + 8);" (assignment_expression "pcVar2 = (char *)**(undefined4 **)(local_2c + 8)" identifier = (cast_expression "(char *)**(undefined4 **)(local_2c + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_2c + 8)" * (pointer_expression "*(undefined4 **)(local_2c + 8)" * (cast_expression "(undefined4 **)(local_2c + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_2c + 8)" ( (binary_expression "local_2c + 8" identifier + number_literal) ))))))) ;) (if_statement "if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }" if (parenthesized_expression "(*(int *)(local_2c + 4) == 0)" ( (binary_expression "*(int *)(local_2c + 4) == 0" (pointer_expression "*(int *)(local_2c + 4)" * (cast_expression "(int *)(local_2c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar2 = (char *)0x0;\n    }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return pcVar2;" return identifier ;) }))) (return_statement "return pcVar2;" return identifier ;) })))
(translation_unit "char * __gmpz_get_str(char *res_str,int base,mpz_srcptr x)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  mp_limb_t *pmVar3;\n  int iVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  mp_limb_t *pmVar10;\n  uint uVar11;\n  mp_limb_t mVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = x->_mp_size;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (base < 0) {\n    if (base == -1) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -base;\n      if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~base & uVar14;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (res_str == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = res_str;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = res_str;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pmVar3 = x->_mp_d;\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = res_str;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (res_str + iVar4 != pcVar8);\n    res_str[iVar4] = '\0';\n  }\n  else {\n    if (base < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = base;\n    if (base < 0x25) {\n      uVar16 = base - 1U & base;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = base - 1U & base;\n    if (0x3e < base) goto LAB_0002a12c;\n    puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498;\n    if (res_str != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)((int)x->_mp_d + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = res_str;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    res_str = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    pmVar6 = x->_mp_d;\n    iVar4 = uVar11 - 1;\n    mVar12 = *pmVar6;\n    pmVar10 = pmVar3;\n    if (iVar4 == 0) {\n      *pmVar3 = mVar12;\n    }\n    else {\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *res_str = '\0';\n  }\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != res_str + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}\n\n" (function_definition "char * __gmpz_get_str(char *res_str,int base,mpz_srcptr x)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  mp_limb_t *pmVar3;\n  int iVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  mp_limb_t *pmVar10;\n  uint uVar11;\n  mp_limb_t mVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = x->_mp_size;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (base < 0) {\n    if (base == -1) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -base;\n      if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~base & uVar14;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (res_str == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = res_str;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = res_str;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pmVar3 = x->_mp_d;\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = res_str;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (res_str + iVar4 != pcVar8);\n    res_str[iVar4] = '\0';\n  }\n  else {\n    if (base < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = base;\n    if (base < 0x25) {\n      uVar16 = base - 1U & base;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = base - 1U & base;\n    if (0x3e < base) goto LAB_0002a12c;\n    puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498;\n    if (res_str != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)((int)x->_mp_d + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = res_str;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    res_str = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    pmVar6 = x->_mp_d;\n    iVar4 = uVar11 - 1;\n    mVar12 = *pmVar6;\n    pmVar10 = pmVar3;\n    if (iVar4 == 0) {\n      *pmVar3 = mVar12;\n    }\n    else {\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *res_str = '\0';\n  }\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != res_str + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}" primitive_type (pointer_declarator "* __gmpz_get_str(char *res_str,int base,mpz_srcptr x)" * (function_declarator "__gmpz_get_str(char *res_str,int base,mpz_srcptr x)" identifier (parameter_list "(char *res_str,int base,mpz_srcptr x)" ( (parameter_declaration "char *res_str" primitive_type (pointer_declarator "*res_str" * identifier)) , (parameter_declaration "int base" primitive_type identifier) , (parameter_declaration "mpz_srcptr x" type_identifier identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  char *pcVar2;\n  mp_limb_t *pmVar3;\n  int iVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  mp_limb_t *pmVar10;\n  uint uVar11;\n  mp_limb_t mVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = x->_mp_size;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if (base < 0) {\n    if (base == -1) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -base;\n      if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~base & uVar14;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (res_str == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = res_str;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = res_str;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pmVar3 = x->_mp_d;\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = res_str;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (res_str + iVar4 != pcVar8);\n    res_str[iVar4] = '\0';\n  }\n  else {\n    if (base < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = base;\n    if (base < 0x25) {\n      uVar16 = base - 1U & base;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = base - 1U & base;\n    if (0x3e < base) goto LAB_0002a12c;\n    puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498;\n    if (res_str != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)((int)x->_mp_d + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = res_str;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    res_str = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    pmVar6 = x->_mp_d;\n    iVar4 = uVar11 - 1;\n    mVar12 = *pmVar6;\n    pmVar10 = pmVar3;\n    if (iVar4 == 0) {\n      *pmVar3 = mVar12;\n    }\n    else {\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *res_str = '\0';\n  }\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != res_str + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "mp_limb_t *pmVar3;" type_identifier (pointer_declarator "*pmVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar6;" type_identifier (pointer_declarator "*pmVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar10;" type_identifier (pointer_declarator "*pmVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "mp_limb_t mVar12;" type_identifier identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "uVar11 = x->_mp_size;" (assignment_expression "uVar11 = x->_mp_size" identifier = (field_expression "x->_mp_size" identifier -> field_identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (base < 0) {\n    if (base == -1) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -base;\n      if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~base & uVar14;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (res_str == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = res_str;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = res_str;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pmVar3 = x->_mp_d;\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = res_str;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (res_str + iVar4 != pcVar8);\n    res_str[iVar4] = '\0';\n  }\n  else {\n    if (base < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = base;\n    if (base < 0x25) {\n      uVar16 = base - 1U & base;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = base - 1U & base;\n    if (0x3e < base) goto LAB_0002a12c;\n    puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498;\n    if (res_str != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)((int)x->_mp_d + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = res_str;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    res_str = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    pmVar6 = x->_mp_d;\n    iVar4 = uVar11 - 1;\n    mVar12 = *pmVar6;\n    pmVar10 = pmVar3;\n    if (iVar4 == 0) {\n      *pmVar3 = mVar12;\n    }\n    else {\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *res_str = '\0';\n  }" if (parenthesized_expression "(base < 0)" ( (binary_expression "base < 0" identifier < number_literal) )) (compound_statement "{\n    if (base == -1) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -base;\n      if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~base & uVar14;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (res_str == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = res_str;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = res_str;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pmVar3 = x->_mp_d;\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = res_str;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (res_str + iVar4 != pcVar8);\n    res_str[iVar4] = '\0';\n  }" { (if_statement "if (base == -1) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -base;\n      if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~base & uVar14;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }" if (parenthesized_expression "(base == -1)" ( (binary_expression "base == -1" identifier == number_literal) )) (compound_statement "{\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }" { (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" identifier = number_literal) ;) (expression_statement "uVar14 = 10;" (assignment_expression "uVar14 = 10" identifier = number_literal) ;) (expression_statement "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;" (assignment_expression "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8" identifier = (binary_expression "PTR_gmp_snprintf_final_0009d06c + 0x34d8" identifier + number_literal)) ;) }) (else_clause "else {\n      uVar14 = -base;\n      if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~base & uVar14;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }" else (compound_statement "{\n      uVar14 = -base;\n      if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~base & uVar14;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;\n    }" { (expression_statement "uVar14 = -base;" (assignment_expression "uVar14 = -base" identifier = (unary_expression "-base" - identifier)) ;) (if_statement "if (base < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }" if (parenthesized_expression "(base < -0x24)" ( (binary_expression "base < -0x24" identifier < number_literal) )) (compound_statement "{\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }" { (labeled_statement "LAB_0002a12c:\n        pcVar2 = (char *)0x0;" statement_identifier : (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_00029fd8;" goto statement_identifier ;) })) (expression_statement "uVar16 = ~base & uVar14;" (assignment_expression "uVar16 = ~base & uVar14" identifier = (binary_expression "~base & uVar14" (unary_expression "~base" ~ identifier) & identifier)) ;) (expression_statement "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8;" (assignment_expression "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x34d8" identifier = (binary_expression "PTR_gmp_snprintf_final_0009d06c + 0x34d8" identifier + number_literal)) ;) }))) (labeled_statement "LAB_0002a030:\n    if (res_str == (char *)0x0) goto LAB_00029e2c;" statement_identifier : (if_statement "if (res_str == (char *)0x0) goto LAB_00029e2c;" if (parenthesized_expression "(res_str == (char *)0x0)" ( (binary_expression "res_str == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00029e2c;" goto statement_identifier ;))) (labeled_statement "LAB_0002a038:\n    pcVar15 = (char *)0x0;" statement_identifier : (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pcVar2 = res_str;" (assignment_expression "pcVar2 = res_str" identifier = identifier) ;) (if_statement "if ((int)uVar11 < 0) goto LAB_00029ef8;" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00029ef8;" goto statement_identifier ;)) (labeled_statement "LAB_0002a040:\n    pcVar2 = res_str;" statement_identifier : (expression_statement "pcVar2 = res_str;" (assignment_expression "pcVar2 = res_str" identifier = identifier) ;)) (if_statement "if (uVar16 != 0) goto LAB_00029f10;" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00029f10;" goto statement_identifier ;)) (labeled_statement "LAB_0002a04c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;" statement_identifier : (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pmVar3 = x->_mp_d;" (assignment_expression "pmVar3 = x->_mp_d" identifier = (field_expression "x->_mp_d" identifier -> field_identifier)) ;) (labeled_statement "LAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3)" identifier = (call_expression "(*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14,pmVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_get_str_0009d32c)" ( (pointer_expression "*(code *)PTR___gmpn_get_str_0009d32c" * (cast_expression "(code *)PTR___gmpn_get_str_0009d32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(res_str,uVar14,pmVar3)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar4 == 0) goto LAB_00029f94;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029f94;" goto statement_identifier ;)) (labeled_statement "LAB_0002a068:\n    pcVar7 = res_str;" statement_identifier : (expression_statement "pcVar7 = res_str;" (assignment_expression "pcVar7 = res_str" identifier = identifier) ;)) (do_statement "do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (res_str + iVar4 != pcVar8);" do (compound_statement "{\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    }" { (expression_statement "pcVar8 = pcVar7 + 1;" (assignment_expression "pcVar8 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar7 = puVar13[*pcVar7];" (assignment_expression "*pcVar7 = puVar13[*pcVar7]" (pointer_expression "*pcVar7" * identifier) = (subscript_expression "puVar13[*pcVar7]" identifier [ (pointer_expression "*pcVar7" * identifier) ])) ;) (expression_statement "pcVar7 = pcVar8;" (assignment_expression "pcVar7 = pcVar8" identifier = identifier) ;) }) while (parenthesized_expression "(res_str + iVar4 != pcVar8)" ( (binary_expression "res_str + iVar4 != pcVar8" (binary_expression "res_str + iVar4" identifier + identifier) != identifier) )) ;) (expression_statement "res_str[iVar4] = '\0';" (assignment_expression "res_str[iVar4] = '\0'" (subscript_expression "res_str[iVar4]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n    if (base < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = base;\n    if (base < 0x25) {\n      uVar16 = base - 1U & base;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = base - 1U & base;\n    if (0x3e < base) goto LAB_0002a12c;\n    puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498;\n    if (res_str != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)((int)x->_mp_d + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = res_str;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    res_str = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    pmVar6 = x->_mp_d;\n    iVar4 = uVar11 - 1;\n    mVar12 = *pmVar6;\n    pmVar10 = pmVar3;\n    if (iVar4 == 0) {\n      *pmVar3 = mVar12;\n    }\n    else {\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *res_str = '\0';\n  }" else (compound_statement "{\n    if (base < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = base;\n    if (base < 0x25) {\n      uVar16 = base - 1U & base;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = base - 1U & base;\n    if (0x3e < base) goto LAB_0002a12c;\n    puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498;\n    if (res_str != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)((int)x->_mp_d + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = res_str;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    res_str = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    pmVar6 = x->_mp_d;\n    iVar4 = uVar11 - 1;\n    mVar12 = *pmVar6;\n    pmVar10 = pmVar3;\n    if (iVar4 == 0) {\n      *pmVar3 = mVar12;\n    }\n    else {\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *res_str = '\0';\n  }" { (if_statement "if (base < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" if (parenthesized_expression "(base < 2)" ( (binary_expression "base < 2" identifier < number_literal) )) (compound_statement "{\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" { (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" identifier = number_literal) ;) (expression_statement "uVar14 = 10;" (assignment_expression "uVar14 = 10" identifier = number_literal) ;) (expression_statement "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;" (assignment_expression "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500" identifier = (binary_expression "PTR_gmp_snprintf_final_0009d06c + 0x3500" identifier + number_literal)) ;) (goto_statement "goto LAB_0002a030;" goto statement_identifier ;) })) (expression_statement "uVar14 = base;" (assignment_expression "uVar14 = base" identifier = identifier) ;) (if_statement "if (base < 0x25) {\n      uVar16 = base - 1U & base;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" if (parenthesized_expression "(base < 0x25)" ( (binary_expression "base < 0x25" identifier < number_literal) )) (compound_statement "{\n      uVar16 = base - 1U & base;\n      puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" { (expression_statement "uVar16 = base - 1U & base;" (assignment_expression "uVar16 = base - 1U & base" identifier = (binary_expression "base - 1U & base" (binary_expression "base - 1U" identifier - number_literal) & identifier)) ;) (expression_statement "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500;" (assignment_expression "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3500" identifier = (binary_expression "PTR_gmp_snprintf_final_0009d06c + 0x3500" identifier + number_literal)) ;) (goto_statement "goto LAB_0002a030;" goto statement_identifier ;) })) (expression_statement "uVar16 = base - 1U & base;" (assignment_expression "uVar16 = base - 1U & base" identifier = (binary_expression "base - 1U & base" (binary_expression "base - 1U" identifier - number_literal) & identifier)) ;) (if_statement "if (0x3e < base) goto LAB_0002a12c;" if (parenthesized_expression "(0x3e < base)" ( (binary_expression "0x3e < base" number_literal < identifier) )) (goto_statement "goto LAB_0002a12c;" goto statement_identifier ;)) (expression_statement "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498;" (assignment_expression "puVar13 = PTR_gmp_snprintf_final_0009d06c + 0x3498" identifier = (binary_expression "PTR_gmp_snprintf_final_0009d06c + 0x3498" identifier + number_literal)) ;) (if_statement "if (res_str != (char *)0x0) goto LAB_0002a038;" if (parenthesized_expression "(res_str != (char *)0x0)" ( (binary_expression "res_str != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002a038;" goto statement_identifier ;)) (labeled_statement "LAB_00029e2c:\n    pcVar15 = (char *)0x2;" statement_identifier : (expression_statement "pcVar15 = (char *)0x2;" (assignment_expression "pcVar15 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)((int)x->_mp_d + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)((int)x->_mp_d + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }" { (if_statement "if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar4 = ~uVar11 << 2;\n      }" { (expression_statement "iVar4 = ~uVar11 << 2;" (assignment_expression "iVar4 = ~uVar11 << 2" identifier = (binary_expression "~uVar11 << 2" (unary_expression "~uVar11" ~ identifier) << number_literal)) ;) }) (else_clause "else {\n        iVar4 = uVar11 * 4 + -4;\n      }" else (compound_statement "{\n        iVar4 = uVar11 * 4 + -4;\n      }" { (expression_statement "iVar4 = uVar11 * 4 + -4;" (assignment_expression "iVar4 = uVar11 * 4 + -4" identifier = (binary_expression "uVar11 * 4 + -4" (binary_expression "uVar11 * 4" identifier * number_literal) + number_literal)) ;) }))) (expression_statement "uVar9 = *(uint *)((int)x->_mp_d + iVar4);" (assignment_expression "uVar9 = *(uint *)((int)x->_mp_d + iVar4)" identifier = (pointer_expression "*(uint *)((int)x->_mp_d + iVar4)" * (cast_expression "(uint *)((int)x->_mp_d + iVar4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)x->_mp_d + iVar4)" ( (binary_expression "(int)x->_mp_d + iVar4" (cast_expression "(int)x->_mp_d" ( (type_descriptor "int" primitive_type) ) (field_expression "x->_mp_d" identifier -> field_identifier)) + identifier) ))))) ;) (if_statement "if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" if (parenthesized_expression "(uVar9 < 0x10000)" ( (binary_expression "uVar9 < 0x10000" identifier < number_literal) )) (compound_statement "{\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }" { (expression_statement "iVar4 = 9;" (assignment_expression "iVar4 = 9" identifier = number_literal) ;) (if_statement "if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }" if (parenthesized_expression "(uVar9 < 0x100)" ( (binary_expression "uVar9 < 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 (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" { (expression_statement "iVar4 = 0x19;" (assignment_expression "iVar4 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }" if (parenthesized_expression "(uVar9 < 0x1000000)" ( (binary_expression "uVar9 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n          iVar4 = 0x11;\n        }" { (expression_statement "iVar4 = 0x11;" (assignment_expression "iVar4 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "uVar5 = uVar11;" (assignment_expression "uVar5 = uVar11" identifier = identifier) ;) (if_statement "if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar5 = -uVar11;\n      }" { (expression_statement "uVar5 = -uVar11;" (assignment_expression "uVar5 = -uVar11" identifier = (unary_expression "-uVar11" - identifier)) ;) })) (expression_statement "uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;" (assignment_expression "uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" identifier = (binary_expression "uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" (binary_expression "uVar5 * 0x20 + -0x21 + iVar4" (binary_expression "uVar5 * 0x20 + -0x21" (binary_expression "uVar5 * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" identifier [ (binary_expression "uVar9 >> iVar4" identifier >> identifier) ]))))) ;) (if_statement "if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }" { (expression_statement "uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);" (assignment_expression "uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" identifier = (pointer_expression "*(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" * (cast_expression "(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" ( (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc" (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14" identifier + (binary_expression "uVar14 * 0x14" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (uVar5 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar5 = ((uVar5 - 1) + uVar9) / uVar5;" (assignment_expression "uVar5 = ((uVar5 - 1) + uVar9) / uVar5" identifier = (binary_expression "((uVar5 - 1) + uVar9) / uVar5" (parenthesized_expression "((uVar5 - 1) + uVar9)" ( (binary_expression "(uVar5 - 1) + uVar9" (parenthesized_expression "(uVar5 - 1)" ( (binary_expression "uVar5 - 1" identifier - number_literal) )) + identifier) )) / identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" else (compound_statement "{\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" { (expression_statement "uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;" (assignment_expression "uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1" identifier = (binary_expression "(int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1" (cast_expression "(int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20" (binary_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9" (call_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1)" ( (binary_expression "*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1" (pointer_expression "*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" * (cast_expression "(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" ( (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4" (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14" identifier + (binary_expression "uVar14 * 0x14" identifier * number_literal)) + number_literal) )))) + number_literal) ))) * (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))) + number_literal)) ;) }))) (if_statement "if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        pcVar15 = (char *)(uVar5 + 2);\n      }" { (expression_statement "pcVar15 = (char *)(uVar5 + 2);" (assignment_expression "pcVar15 = (char *)(uVar5 + 2)" identifier = (cast_expression "(char *)(uVar5 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 2)" ( (binary_expression "uVar5 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }" else (compound_statement "{\n        pcVar15 = (char *)(uVar5 + 1);\n      }" { (expression_statement "pcVar15 = (char *)(uVar5 + 1);" (assignment_expression "pcVar15 = (char *)(uVar5 + 1)" identifier = (cast_expression "(char *)(uVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 1)" ( (binary_expression "uVar5 + 1" identifier + number_literal) )))) ;) }))) })) (expression_statement "res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);" (assignment_expression "res_str = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" identifier = (cast_expression "(char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" (parenthesized_expression "(**(code **)PTR___gmp_allocate_func_0009d50c)" ( (pointer_expression "**(code **)PTR___gmp_allocate_func_0009d50c" * (pointer_expression "*(code **)PTR___gmp_allocate_func_0009d50c" * (cast_expression "(code **)PTR___gmp_allocate_func_0009d50c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pcVar15)" ( identifier ))))) ;) (expression_statement "pcVar2 = res_str;" (assignment_expression "pcVar2 = res_str" identifier = identifier) ;) (if_statement "if (-1 < (int)uVar11) goto LAB_0002a040;" if (parenthesized_expression "(-1 < (int)uVar11)" ( (binary_expression "-1 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002a040;" goto statement_identifier ;)) (labeled_statement "LAB_00029ef8:\n    res_str = pcVar2 + 1;" statement_identifier : (expression_statement "res_str = pcVar2 + 1;" (assignment_expression "res_str = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;)) (expression_statement "*pcVar2 = '-';" (assignment_expression "*pcVar2 = '-'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "uVar11 = -uVar11;" (assignment_expression "uVar11 = -uVar11" identifier = (unary_expression "-uVar11" - identifier)) ;) (if_statement "if (uVar16 == 0) goto LAB_0002a04c;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a04c;" goto statement_identifier ;)) (labeled_statement "LAB_00029f10:\n    __tmp_marker = (tmp_reentrant_t *)0x0;" statement_identifier : (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar16 = (uVar11 | 1) * 4;" (assignment_expression "uVar16 = (uVar11 | 1) * 4" identifier = (binary_expression "(uVar11 | 1) * 4" (parenthesized_expression "(uVar11 | 1)" ( (binary_expression "uVar11 | 1" identifier | number_literal) )) * number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }" { (expression_statement "pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));" (assignment_expression "pmVar3 = (mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" identifier = (cast_expression "(mp_limb_t *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" ( (binary_expression "&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8)" (pointer_expression "&stack0xffffffc0" & identifier) + (unary_expression "-(uVar16 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar16 + 7 & 0xfffffff8)" ( (binary_expression "uVar16 + 7 & 0xfffffff8" (binary_expression "uVar16 + 7" identifier + number_literal) & number_literal) )))) )))) ;) }) (else_clause "else {\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }" else (compound_statement "{\n      pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    }" { (expression_statement "pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);" (assignment_expression "pmVar3 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" identifier = (cast_expression "(mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) }))) (if_statement "if (uVar11 == 0) goto LAB_0002a054;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a054;" goto statement_identifier ;)) (expression_statement "pmVar6 = x->_mp_d;" (assignment_expression "pmVar6 = x->_mp_d" identifier = (field_expression "x->_mp_d" identifier -> field_identifier)) ;) (expression_statement "iVar4 = uVar11 - 1;" (assignment_expression "iVar4 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "mVar12 = *pmVar6;" (assignment_expression "mVar12 = *pmVar6" identifier = (pointer_expression "*pmVar6" * identifier)) ;) (expression_statement "pmVar10 = pmVar3;" (assignment_expression "pmVar10 = pmVar3" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n      *pmVar3 = mVar12;\n    }\n    else {\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      *pmVar3 = mVar12;\n    }" { (expression_statement "*pmVar3 = mVar12;" (assignment_expression "*pmVar3 = mVar12" (pointer_expression "*pmVar3" * identifier) = identifier) ;) }) (else_clause "else {\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }" else (compound_statement "{\n      do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);\n      pmVar3[uVar11 - 1] = mVar12;\n    }" { (do_statement "do {\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      } while (iVar4 != 0);" do (compound_statement "{\n        pmVar6 = pmVar6 + 1;\n        *pmVar10 = mVar12;\n        iVar4 = iVar4 + -1;\n        mVar12 = *pmVar6;\n        pmVar10 = pmVar10 + 1;\n      }" { (expression_statement "pmVar6 = pmVar6 + 1;" (assignment_expression "pmVar6 = pmVar6 + 1" identifier = (binary_expression "pmVar6 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar10 = mVar12;" (assignment_expression "*pmVar10 = mVar12" (pointer_expression "*pmVar10" * identifier) = identifier) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "mVar12 = *pmVar6;" (assignment_expression "mVar12 = *pmVar6" identifier = (pointer_expression "*pmVar6" * identifier)) ;) (expression_statement "pmVar10 = pmVar10 + 1;" (assignment_expression "pmVar10 = pmVar10 + 1" identifier = (binary_expression "pmVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) (expression_statement "pmVar3[uVar11 - 1] = mVar12;" (assignment_expression "pmVar3[uVar11 - 1] = mVar12" (subscript_expression "pmVar3[uVar11 - 1]" identifier [ (binary_expression "uVar11 - 1" identifier - number_literal) ]) = identifier) ;) }))) (expression_statement "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14)" identifier = (call_expression "(*(code *)PTR___gmpn_get_str_0009d32c)(res_str,uVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_get_str_0009d32c)" ( (pointer_expression "*(code *)PTR___gmpn_get_str_0009d32c" * (cast_expression "(code *)PTR___gmpn_get_str_0009d32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(res_str,uVar14)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0002a068;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002a068;" goto statement_identifier ;)) (labeled_statement "LAB_00029f94:\n    *res_str = '\0';" statement_identifier : (expression_statement "*res_str = '\0';" (assignment_expression "*res_str = '\0'" (pointer_expression "*res_str" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) }))) (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 "()" ( ))) ;) })) (if_statement "if ((pcVar15 != (char *)0x0) && (pcVar15 != res_str + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }" if (parenthesized_expression "((pcVar15 != (char *)0x0) && (pcVar15 != res_str + iVar4 + (1 - (int)pcVar2)))" ( (binary_expression "(pcVar15 != (char *)0x0) && (pcVar15 != res_str + iVar4 + (1 - (int)pcVar2))" (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar15 != res_str + iVar4 + (1 - (int)pcVar2))" ( (binary_expression "pcVar15 != res_str + iVar4 + (1 - (int)pcVar2)" identifier != (binary_expression "res_str + iVar4 + (1 - (int)pcVar2)" (binary_expression "res_str + iVar4" identifier + identifier) + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) )) (compound_statement "{\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }" { (expression_statement "pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);" (assignment_expression "pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" identifier = (cast_expression "(char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" (parenthesized_expression "(**(code **)PTR___gmp_reallocate_func_0009d5a4)" ( (pointer_expression "**(code **)PTR___gmp_reallocate_func_0009d5a4" * (pointer_expression "*(code **)PTR___gmp_reallocate_func_0009d5a4" * (cast_expression "(code **)PTR___gmp_reallocate_func_0009d5a4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pcVar2,pcVar15)" ( identifier , identifier ))))) ;) })) (labeled_statement "LAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" statement_identifier : (if_statement "if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" if (parenthesized_expression "(local_2c != *(int *)puVar1)" ( (binary_expression "local_2c != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" { (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 "pcVar2 = (char *)**(undefined4 **)(local_2c + 8);" (assignment_expression "pcVar2 = (char *)**(undefined4 **)(local_2c + 8)" identifier = (cast_expression "(char *)**(undefined4 **)(local_2c + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_2c + 8)" * (pointer_expression "*(undefined4 **)(local_2c + 8)" * (cast_expression "(undefined4 **)(local_2c + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_2c + 8)" ( (binary_expression "local_2c + 8" identifier + number_literal) ))))))) ;) (if_statement "if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }" if (parenthesized_expression "(*(int *)(local_2c + 4) == 0)" ( (binary_expression "*(int *)(local_2c + 4) == 0" (pointer_expression "*(int *)(local_2c + 4)" * (cast_expression "(int *)(local_2c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar2 = (char *)0x0;\n    }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return pcVar2;" return identifier ;) }))) (return_statement "return pcVar2;" return identifier ;) })))
(translation_unit "char * __gmpz_get_str(char *param_1,uint param_2,int param_3)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = *(uint *)(param_3 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }\n  if (local_30 != 0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}\n\n" (function_definition "char * __gmpz_get_str(char *param_1,uint param_2,int param_3)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = *(uint *)(param_3 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }\n  if (local_30 != 0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}" primitive_type (pointer_declarator "* __gmpz_get_str(char *param_1,uint param_2,int param_3)" * (function_declarator "__gmpz_get_str(char *param_1,uint param_2,int param_3)" identifier (parameter_list "(char *param_1,uint param_2,int param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = *(uint *)(param_3 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }\n  if (local_30 != 0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "uVar11 = *(uint *)(param_3 + 4);" (assignment_expression "uVar11 = *(uint *)(param_3 + 4)" identifier = (pointer_expression "*(uint *)(param_3 + 4)" * (cast_expression "(uint *)(param_3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 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 ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\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    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }" { (if_statement "if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" if (parenthesized_expression "(param_2 == 0xffffffff)" ( (binary_expression "param_2 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" { (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" identifier = number_literal) ;) (expression_statement "uVar14 = 10;" (assignment_expression "uVar14 = 10" identifier = number_literal) ;) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x34d8;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x34d8" identifier = (binary_expression "PTR_LAB_0009d06c + 0x34d8" identifier + number_literal)) ;) }) (else_clause "else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" else (compound_statement "{\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" { (expression_statement "uVar14 = -param_2;" (assignment_expression "uVar14 = -param_2" identifier = (unary_expression "-param_2" - identifier)) ;) (if_statement "if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }" if (parenthesized_expression "((int)param_2 < -0x24)" ( (binary_expression "(int)param_2 < -0x24" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }" { (labeled_statement "LAB_0002a12c:\n        pcVar2 = (char *)0x0;" statement_identifier : (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_00029fd8;" goto statement_identifier ;) })) (expression_statement "uVar16 = ~param_2 & uVar14;" (assignment_expression "uVar16 = ~param_2 & uVar14" identifier = (binary_expression "~param_2 & uVar14" (unary_expression "~param_2" ~ identifier) & identifier)) ;) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x34d8;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x34d8" identifier = (binary_expression "PTR_LAB_0009d06c + 0x34d8" identifier + number_literal)) ;) }))) (labeled_statement "LAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;" statement_identifier : (if_statement "if (param_1 == (char *)0x0) goto LAB_00029e2c;" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00029e2c;" goto statement_identifier ;))) (labeled_statement "LAB_0002a038:\n    pcVar15 = (char *)0x0;" statement_identifier : (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" identifier = identifier) ;) (if_statement "if ((int)uVar11 < 0) goto LAB_00029ef8;" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00029ef8;" goto statement_identifier ;)) (labeled_statement "LAB_0002a040:\n    pcVar2 = param_1;" statement_identifier : (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" identifier = identifier) ;)) (if_statement "if (uVar16 != 0) goto LAB_00029f10;" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00029f10;" goto statement_identifier ;)) (labeled_statement "LAB_0002a04c:\n    local_30 = 0;" statement_identifier : (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;)) (expression_statement "puVar3 = *(undefined4 **)(param_3 + 8);" (assignment_expression "puVar3 = *(undefined4 **)(param_3 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_3 + 8)" * (cast_expression "(undefined4 **)(param_3 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3)" identifier = (call_expression "(*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_get_str_0009d32c)" ( (pointer_expression "*(code *)PTR___gmpn_get_str_0009d32c" * (cast_expression "(code *)PTR___gmpn_get_str_0009d32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar14,puVar3)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar4 == 0) goto LAB_00029f94;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029f94;" goto statement_identifier ;)) (labeled_statement "LAB_0002a068:\n    pcVar7 = param_1;" statement_identifier : (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" identifier = identifier) ;)) (do_statement "do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);" do (compound_statement "{\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    }" { (expression_statement "pcVar8 = pcVar7 + 1;" (assignment_expression "pcVar8 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar7 = puVar13[*pcVar7];" (assignment_expression "*pcVar7 = puVar13[*pcVar7]" (pointer_expression "*pcVar7" * identifier) = (subscript_expression "puVar13[*pcVar7]" identifier [ (pointer_expression "*pcVar7" * identifier) ])) ;) (expression_statement "pcVar7 = pcVar8;" (assignment_expression "pcVar7 = pcVar8" identifier = identifier) ;) }) while (parenthesized_expression "(param_1 + iVar4 != pcVar8)" ( (binary_expression "param_1 + iVar4 != pcVar8" (binary_expression "param_1 + iVar4" identifier + identifier) != identifier) )) ;) (expression_statement "param_1[iVar4] = '\0';" (assignment_expression "param_1[iVar4] = '\0'" (subscript_expression "param_1[iVar4]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }" else (compound_statement "{\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }" { (if_statement "if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" if (parenthesized_expression "((int)param_2 < 2)" ( (binary_expression "(int)param_2 < 2" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" { (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" identifier = number_literal) ;) (expression_statement "uVar14 = 10;" (assignment_expression "uVar14 = 10" identifier = number_literal) ;) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3500;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3500" identifier = (binary_expression "PTR_LAB_0009d06c + 0x3500" identifier + number_literal)) ;) (goto_statement "goto LAB_0002a030;" goto statement_identifier ;) })) (expression_statement "uVar14 = param_2;" (assignment_expression "uVar14 = param_2" identifier = identifier) ;) (if_statement "if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" if (parenthesized_expression "((int)param_2 < 0x25)" ( (binary_expression "(int)param_2 < 0x25" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" { (expression_statement "uVar16 = param_2 - 1 & param_2;" (assignment_expression "uVar16 = param_2 - 1 & param_2" identifier = (binary_expression "param_2 - 1 & param_2" (binary_expression "param_2 - 1" identifier - number_literal) & identifier)) ;) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3500;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3500" identifier = (binary_expression "PTR_LAB_0009d06c + 0x3500" identifier + number_literal)) ;) (goto_statement "goto LAB_0002a030;" goto statement_identifier ;) })) (expression_statement "uVar16 = param_2 - 1 & param_2;" (assignment_expression "uVar16 = param_2 - 1 & param_2" identifier = (binary_expression "param_2 - 1 & param_2" (binary_expression "param_2 - 1" identifier - number_literal) & identifier)) ;) (if_statement "if (0x3e < (int)param_2) goto LAB_0002a12c;" if (parenthesized_expression "(0x3e < (int)param_2)" ( (binary_expression "0x3e < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002a12c;" goto statement_identifier ;)) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3498;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3498" identifier = (binary_expression "PTR_LAB_0009d06c + 0x3498" identifier + number_literal)) ;) (if_statement "if (param_1 != (char *)0x0) goto LAB_0002a038;" if (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002a038;" goto statement_identifier ;)) (labeled_statement "LAB_00029e2c:\n    pcVar15 = (char *)0x2;" statement_identifier : (expression_statement "pcVar15 = (char *)0x2;" (assignment_expression "pcVar15 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }" { (if_statement "if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar4 = ~uVar11 << 2;\n      }" { (expression_statement "iVar4 = ~uVar11 << 2;" (assignment_expression "iVar4 = ~uVar11 << 2" identifier = (binary_expression "~uVar11 << 2" (unary_expression "~uVar11" ~ identifier) << number_literal)) ;) }) (else_clause "else {\n        iVar4 = uVar11 * 4 + -4;\n      }" else (compound_statement "{\n        iVar4 = uVar11 * 4 + -4;\n      }" { (expression_statement "iVar4 = uVar11 * 4 + -4;" (assignment_expression "iVar4 = uVar11 * 4 + -4" identifier = (binary_expression "uVar11 * 4 + -4" (binary_expression "uVar11 * 4" identifier * number_literal) + number_literal)) ;) }))) (expression_statement "uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);" (assignment_expression "uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4)" identifier = (pointer_expression "*(uint *)(*(int *)(param_3 + 8) + iVar4)" * (cast_expression "(uint *)(*(int *)(param_3 + 8) + iVar4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_3 + 8) + iVar4)" ( (binary_expression "*(int *)(param_3 + 8) + iVar4" (pointer_expression "*(int *)(param_3 + 8)" * (cast_expression "(int *)(param_3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))) + identifier) ))))) ;) (if_statement "if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" if (parenthesized_expression "(uVar9 < 0x10000)" ( (binary_expression "uVar9 < 0x10000" identifier < number_literal) )) (compound_statement "{\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }" { (expression_statement "iVar4 = 9;" (assignment_expression "iVar4 = 9" identifier = number_literal) ;) (if_statement "if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }" if (parenthesized_expression "(uVar9 < 0x100)" ( (binary_expression "uVar9 < 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 (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" else (compound_statement "{\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" { (expression_statement "iVar4 = 0x19;" (assignment_expression "iVar4 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }" if (parenthesized_expression "(uVar9 < 0x1000000)" ( (binary_expression "uVar9 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n          iVar4 = 0x11;\n        }" { (expression_statement "iVar4 = 0x11;" (assignment_expression "iVar4 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "uVar5 = uVar11;" (assignment_expression "uVar5 = uVar11" identifier = identifier) ;) (if_statement "if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        uVar5 = -uVar11;\n      }" { (expression_statement "uVar5 = -uVar11;" (assignment_expression "uVar5 = -uVar11" identifier = (unary_expression "-uVar11" - identifier)) ;) })) (expression_statement "uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;" (assignment_expression "uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" identifier = (binary_expression "uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" (binary_expression "uVar5 * 0x20 + -0x21 + iVar4" (binary_expression "uVar5 * 0x20 + -0x21" (binary_expression "uVar5 * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" identifier [ (binary_expression "uVar9 >> iVar4" identifier >> identifier) ]))))) ;) (if_statement "if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }" { (expression_statement "uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);" (assignment_expression "uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" identifier = (pointer_expression "*(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" * (cast_expression "(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" ( (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc" (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14" identifier + (binary_expression "uVar14 * 0x14" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (uVar5 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar5 = ((uVar5 - 1) + uVar9) / uVar5;" (assignment_expression "uVar5 = ((uVar5 - 1) + uVar9) / uVar5" identifier = (binary_expression "((uVar5 - 1) + uVar9) / uVar5" (parenthesized_expression "((uVar5 - 1) + uVar9)" ( (binary_expression "(uVar5 - 1) + uVar9" (parenthesized_expression "(uVar5 - 1)" ( (binary_expression "uVar5 - 1" identifier - number_literal) )) + identifier) )) / identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" else (compound_statement "{\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" { (expression_statement "uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;" (assignment_expression "uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1" identifier = (binary_expression "(int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1" (cast_expression "(int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20)" ( (binary_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20" (binary_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9" (call_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1)" ( (binary_expression "*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1" (pointer_expression "*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" * (cast_expression "(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" ( (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4" (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14" identifier + (binary_expression "uVar14 * 0x14" identifier * number_literal)) + number_literal) )))) + number_literal) ))) * (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) ))) + number_literal)) ;) }))) (if_statement "if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        pcVar15 = (char *)(uVar5 + 2);\n      }" { (expression_statement "pcVar15 = (char *)(uVar5 + 2);" (assignment_expression "pcVar15 = (char *)(uVar5 + 2)" identifier = (cast_expression "(char *)(uVar5 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 2)" ( (binary_expression "uVar5 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }" else (compound_statement "{\n        pcVar15 = (char *)(uVar5 + 1);\n      }" { (expression_statement "pcVar15 = (char *)(uVar5 + 1);" (assignment_expression "pcVar15 = (char *)(uVar5 + 1)" identifier = (cast_expression "(char *)(uVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 1)" ( (binary_expression "uVar5 + 1" identifier + number_literal) )))) ;) }))) })) (expression_statement "param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);" (assignment_expression "param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" identifier = (cast_expression "(char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" (parenthesized_expression "(**(code **)PTR___gmp_allocate_func_0009d50c)" ( (pointer_expression "**(code **)PTR___gmp_allocate_func_0009d50c" * (pointer_expression "*(code **)PTR___gmp_allocate_func_0009d50c" * (cast_expression "(code **)PTR___gmp_allocate_func_0009d50c" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pcVar15)" ( identifier ))))) ;) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" identifier = identifier) ;) (if_statement "if (-1 < (int)uVar11) goto LAB_0002a040;" if (parenthesized_expression "(-1 < (int)uVar11)" ( (binary_expression "-1 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002a040;" goto statement_identifier ;)) (labeled_statement "LAB_00029ef8:\n    param_1 = pcVar2 + 1;" statement_identifier : (expression_statement "param_1 = pcVar2 + 1;" (assignment_expression "param_1 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;)) (expression_statement "*pcVar2 = '-';" (assignment_expression "*pcVar2 = '-'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'-'" ' character ')) ;) (expression_statement "uVar11 = -uVar11;" (assignment_expression "uVar11 = -uVar11" identifier = (unary_expression "-uVar11" - identifier)) ;) (if_statement "if (uVar16 == 0) goto LAB_0002a04c;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a04c;" goto statement_identifier ;)) (labeled_statement "LAB_00029f10:\n    local_30 = 0;" statement_identifier : (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;)) (expression_statement "uVar16 = (uVar11 | 1) * 4;" (assignment_expression "uVar16 = (uVar11 | 1) * 4" identifier = (binary_expression "(uVar11 | 1) * 4" (parenthesized_expression "(uVar11 | 1)" ( (binary_expression "uVar11 | 1" identifier | number_literal) )) * number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }" { (expression_statement "puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));" (assignment_expression "puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" identifier = (cast_expression "(undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" ( (binary_expression "&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8)" (pointer_expression "&stack0xffffffc0" & identifier) + (unary_expression "-(uVar16 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar16 + 7 & 0xfffffff8)" ( (binary_expression "uVar16 + 7 & 0xfffffff8" (binary_expression "uVar16 + 7" identifier + number_literal) & number_literal) )))) )))) ;) }) (else_clause "else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" else (compound_statement "{\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" { (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (if_statement "if (uVar11 == 0) goto LAB_0002a054;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a054;" goto statement_identifier ;)) (expression_statement "puVar6 = *(undefined4 **)(param_3 + 8);" (assignment_expression "puVar6 = *(undefined4 **)(param_3 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_3 + 8)" * (cast_expression "(undefined4 **)(param_3 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = uVar11 - 1;" (assignment_expression "iVar4 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "uVar12 = *puVar6;" (assignment_expression "uVar12 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar10 = puVar3;" (assignment_expression "puVar10 = puVar3" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      *puVar3 = uVar12;\n    }" { (expression_statement "*puVar3 = uVar12;" (assignment_expression "*puVar3 = uVar12" (pointer_expression "*puVar3" * identifier) = identifier) ;) }) (else_clause "else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" else (compound_statement "{\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" { (do_statement "do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);" do (compound_statement "{\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      }" { (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" * identifier) = identifier) ;) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar6;" (assignment_expression "uVar12 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) (expression_statement "puVar3[uVar11 - 1] = uVar12;" (assignment_expression "puVar3[uVar11 - 1] = uVar12" (subscript_expression "puVar3[uVar11 - 1]" identifier [ (binary_expression "uVar11 - 1" identifier - number_literal) ]) = identifier) ;) }))) (expression_statement "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14)" identifier = (call_expression "(*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_get_str_0009d32c)" ( (pointer_expression "*(code *)PTR___gmpn_get_str_0009d32c" * (cast_expression "(code *)PTR___gmpn_get_str_0009d32c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar14)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0002a068;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002a068;" goto statement_identifier ;)) (labeled_statement "LAB_00029f94:\n    *param_1 = '\0';" statement_identifier : (expression_statement "*param_1 = '\0';" (assignment_expression "*param_1 = '\0'" (pointer_expression "*param_1" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) }))) (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 "()" ( ))) ;) })) (if_statement "if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }" if (parenthesized_expression "((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2)))" ( (binary_expression "(pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))" (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))" ( (binary_expression "pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2)" identifier != (binary_expression "param_1 + iVar4 + (1 - (int)pcVar2)" (binary_expression "param_1 + iVar4" identifier + identifier) + (parenthesized_expression "(1 - (int)pcVar2)" ( (binary_expression "1 - (int)pcVar2" number_literal - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) )) (compound_statement "{\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }" { (expression_statement "pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);" (assignment_expression "pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" identifier = (cast_expression "(char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" (parenthesized_expression "(**(code **)PTR___gmp_reallocate_func_0009d5a4)" ( (pointer_expression "**(code **)PTR___gmp_reallocate_func_0009d5a4" * (pointer_expression "*(code **)PTR___gmp_reallocate_func_0009d5a4" * (cast_expression "(code **)PTR___gmp_reallocate_func_0009d5a4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "(pcVar2,pcVar15)" ( identifier , identifier ))))) ;) })) (labeled_statement "LAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" statement_identifier : (if_statement "if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" if (parenthesized_expression "(local_2c != *(int *)puVar1)" ( (binary_expression "local_2c != *(int *)puVar1" identifier != (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" { (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 "pcVar2 = (char *)**(undefined4 **)(local_2c + 8);" (assignment_expression "pcVar2 = (char *)**(undefined4 **)(local_2c + 8)" identifier = (cast_expression "(char *)**(undefined4 **)(local_2c + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_2c + 8)" * (pointer_expression "*(undefined4 **)(local_2c + 8)" * (cast_expression "(undefined4 **)(local_2c + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_2c + 8)" ( (binary_expression "local_2c + 8" identifier + number_literal) ))))))) ;) (if_statement "if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }" if (parenthesized_expression "(*(int *)(local_2c + 4) == 0)" ( (binary_expression "*(int *)(local_2c + 4) == 0" (pointer_expression "*(int *)(local_2c + 4)" * (cast_expression "(int *)(local_2c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 4)" ( (binary_expression "local_2c + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar2 = (char *)0x0;\n    }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return pcVar2;" return identifier ;) }))) (return_statement "return pcVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (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 )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (pointer_expression * IDENT) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) << LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 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 = 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 (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) ]))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + IDENT) )) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) + LIT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT | LIT) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;)) }))) (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 ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( 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 { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "char * __gmpz_get_str(char *param_1,uint param_2,int param_3)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = *(uint *)(param_3 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }\n  if (local_30 != 0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}" (primitive_type "char") (pointer_declarator "* __gmpz_get_str(char *param_1,uint param_2,int param_3)" (* "*") (function_declarator "__gmpz_get_str(char *param_1,uint param_2,int param_3)" (identifier "__gmpz_get_str") (parameter_list "(char *param_1,uint param_2,int param_3)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  int local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  uVar11 = *(uint *)(param_3 + 4);\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  if ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }\n  if (local_30 != 0) {\n    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  }\n  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }\nLAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }\n  return pcVar2;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0009d540" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0009d540")) (; ";")) (expression_statement "uVar11 = *(uint *)(param_3 + 4);" (assignment_expression "uVar11 = *(uint *)(param_3 + 4)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(param_3 + 4)" (* "*") (cast_expression "(uint *)(param_3 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (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 ((int)param_2 < 0) {\n    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }\n  else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\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    if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\nLAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;\nLAB_0002a038:\n    pcVar15 = (char *)0x0;\n    pcVar2 = param_1;\n    if ((int)uVar11 < 0) goto LAB_00029ef8;\nLAB_0002a040:\n    pcVar2 = param_1;\n    if (uVar16 != 0) goto LAB_00029f10;\nLAB_0002a04c:\n    local_30 = 0;\n    puVar3 = *(undefined4 **)(param_3 + 8);\nLAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);\n    if (iVar4 == 0) goto LAB_00029f94;\nLAB_0002a068:\n    pcVar7 = param_1;\n    do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);\n    param_1[iVar4] = '\0';\n  }" ({ "{") (if_statement "if (param_2 == 0xffffffff) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }\n    else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" (if "if") (parenthesized_expression "(param_2 == 0xffffffff)" (( "(") (binary_expression "param_2 == 0xffffffff" (identifier "param_2") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" ({ "{") (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" (identifier "uVar16") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar14 = 10;" (assignment_expression "uVar14 = 10" (identifier "uVar14") (= "=") (number_literal "10")) (; ";")) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x34d8;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x34d8" (identifier "puVar13") (= "=") (binary_expression "PTR_LAB_0009d06c + 0x34d8" (identifier "PTR_LAB_0009d06c") (+ "+") (number_literal "0x34d8"))) (; ";")) (} "}")) (else_clause "else {\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" (else "else") (compound_statement "{\n      uVar14 = -param_2;\n      if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }\n      uVar16 = ~param_2 & uVar14;\n      puVar13 = PTR_LAB_0009d06c + 0x34d8;\n    }" ({ "{") (expression_statement "uVar14 = -param_2;" (assignment_expression "uVar14 = -param_2" (identifier "uVar14") (= "=") (unary_expression "-param_2" (- "-") (identifier "param_2"))) (; ";")) (if_statement "if ((int)param_2 < -0x24) {\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }" (if "if") (parenthesized_expression "((int)param_2 < -0x24)" (( "(") (binary_expression "(int)param_2 < -0x24" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "-0x24")) () ")")) (compound_statement "{\nLAB_0002a12c:\n        pcVar2 = (char *)0x0;\n        goto LAB_00029fd8;\n      }" ({ "{") (labeled_statement "LAB_0002a12c:\n        pcVar2 = (char *)0x0;" (statement_identifier "LAB_0002a12c") (: ":") (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" (identifier "pcVar2") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (goto_statement "goto LAB_00029fd8;" (goto "goto") (statement_identifier "LAB_00029fd8") (; ";")) (} "}"))) (expression_statement "uVar16 = ~param_2 & uVar14;" (assignment_expression "uVar16 = ~param_2 & uVar14" (identifier "uVar16") (= "=") (binary_expression "~param_2 & uVar14" (unary_expression "~param_2" (~ "~") (identifier "param_2")) (& "&") (identifier "uVar14"))) (; ";")) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x34d8;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x34d8" (identifier "puVar13") (= "=") (binary_expression "PTR_LAB_0009d06c + 0x34d8" (identifier "PTR_LAB_0009d06c") (+ "+") (number_literal "0x34d8"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002a030:\n    if (param_1 == (char *)0x0) goto LAB_00029e2c;" (statement_identifier "LAB_0002a030") (: ":") (if_statement "if (param_1 == (char *)0x0) goto LAB_00029e2c;" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00029e2c;" (goto "goto") (statement_identifier "LAB_00029e2c") (; ";")))) (labeled_statement "LAB_0002a038:\n    pcVar15 = (char *)0x0;" (statement_identifier "LAB_0002a038") (: ":") (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" (identifier "pcVar15") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" (identifier "pcVar2") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((int)uVar11 < 0) goto LAB_00029ef8;" (if "if") (parenthesized_expression "((int)uVar11 < 0)" (( "(") (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00029ef8;" (goto "goto") (statement_identifier "LAB_00029ef8") (; ";"))) (labeled_statement "LAB_0002a040:\n    pcVar2 = param_1;" (statement_identifier "LAB_0002a040") (: ":") (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" (identifier "pcVar2") (= "=") (identifier "param_1")) (; ";"))) (if_statement "if (uVar16 != 0) goto LAB_00029f10;" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00029f10;" (goto "goto") (statement_identifier "LAB_00029f10") (; ";"))) (labeled_statement "LAB_0002a04c:\n    local_30 = 0;" (statement_identifier "LAB_0002a04c") (: ":") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";"))) (expression_statement "puVar3 = *(undefined4 **)(param_3 + 8);" (assignment_expression "puVar3 = *(undefined4 **)(param_3 + 8)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(param_3 + 8)" (* "*") (cast_expression "(undefined4 **)(param_3 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (labeled_statement "LAB_0002a054:\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);" (statement_identifier "LAB_0002a054") (: ":") (expression_statement "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3)" (parenthesized_expression "(*(code *)PTR___gmpn_get_str_0009d32c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_get_str_0009d32c" (* "*") (cast_expression "(code *)PTR___gmpn_get_str_0009d32c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_get_str_0009d32c"))) () ")")) (argument_list "(param_1,uVar14,puVar3)" (( "(") (identifier "param_1") (, ",") (identifier "uVar14") (, ",") (identifier "puVar3") () ")")))) (; ";"))) (if_statement "if (iVar4 == 0) goto LAB_00029f94;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00029f94;" (goto "goto") (statement_identifier "LAB_00029f94") (; ";"))) (labeled_statement "LAB_0002a068:\n    pcVar7 = param_1;" (statement_identifier "LAB_0002a068") (: ":") (expression_statement "pcVar7 = param_1;" (assignment_expression "pcVar7 = param_1" (identifier "pcVar7") (= "=") (identifier "param_1")) (; ";"))) (do_statement "do {\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    } while (param_1 + iVar4 != pcVar8);" (do "do") (compound_statement "{\n      pcVar8 = pcVar7 + 1;\n      *pcVar7 = puVar13[*pcVar7];\n      pcVar7 = pcVar8;\n    }" ({ "{") (expression_statement "pcVar8 = pcVar7 + 1;" (assignment_expression "pcVar8 = pcVar7 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar7 = puVar13[*pcVar7];" (assignment_expression "*pcVar7 = puVar13[*pcVar7]" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (= "=") (subscript_expression "puVar13[*pcVar7]" (identifier "puVar13") ([ "[") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (] "]"))) (; ";")) (expression_statement "pcVar7 = pcVar8;" (assignment_expression "pcVar7 = pcVar8" (identifier "pcVar7") (= "=") (identifier "pcVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_1 + iVar4 != pcVar8)" (( "(") (binary_expression "param_1 + iVar4 != pcVar8" (binary_expression "param_1 + iVar4" (identifier "param_1") (+ "+") (identifier "iVar4")) (!= "!=") (identifier "pcVar8")) () ")")) (; ";")) (expression_statement "param_1[iVar4] = '\0';" (assignment_expression "param_1[iVar4] = '\0'" (subscript_expression "param_1[iVar4]" (identifier "param_1") ([ "[") (identifier "iVar4") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }" (else "else") (compound_statement "{\n    if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar14 = param_2;\n    if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }\n    uVar16 = param_2 - 1 & param_2;\n    if (0x3e < (int)param_2) goto LAB_0002a12c;\n    puVar13 = PTR_LAB_0009d06c + 0x3498;\n    if (param_1 != (char *)0x0) goto LAB_0002a038;\nLAB_00029e2c:\n    pcVar15 = (char *)0x2;\n    if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }\n    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);\n    pcVar2 = param_1;\n    if (-1 < (int)uVar11) goto LAB_0002a040;\nLAB_00029ef8:\n    param_1 = pcVar2 + 1;\n    *pcVar2 = '-';\n    uVar11 = -uVar11;\n    if (uVar16 == 0) goto LAB_0002a04c;\nLAB_00029f10:\n    local_30 = 0;\n    uVar16 = (uVar11 | 1) * 4;\n    if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }\n    if (uVar11 == 0) goto LAB_0002a054;\n    puVar6 = *(undefined4 **)(param_3 + 8);\n    iVar4 = uVar11 - 1;\n    uVar12 = *puVar6;\n    puVar10 = puVar3;\n    if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }\n    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);\n    if (iVar4 != 0) goto LAB_0002a068;\nLAB_00029f94:\n    *param_1 = '\0';\n  }" ({ "{") (if_statement "if ((int)param_2 < 2) {\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" (if "if") (parenthesized_expression "((int)param_2 < 2)" (( "(") (binary_expression "(int)param_2 < 2" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar16 = 8;\n      uVar14 = 10;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" ({ "{") (expression_statement "uVar16 = 8;" (assignment_expression "uVar16 = 8" (identifier "uVar16") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar14 = 10;" (assignment_expression "uVar14 = 10" (identifier "uVar14") (= "=") (number_literal "10")) (; ";")) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3500;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3500" (identifier "puVar13") (= "=") (binary_expression "PTR_LAB_0009d06c + 0x3500" (identifier "PTR_LAB_0009d06c") (+ "+") (number_literal "0x3500"))) (; ";")) (goto_statement "goto LAB_0002a030;" (goto "goto") (statement_identifier "LAB_0002a030") (; ";")) (} "}"))) (expression_statement "uVar14 = param_2;" (assignment_expression "uVar14 = param_2" (identifier "uVar14") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((int)param_2 < 0x25) {\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" (if "if") (parenthesized_expression "((int)param_2 < 0x25)" (( "(") (binary_expression "(int)param_2 < 0x25" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "0x25")) () ")")) (compound_statement "{\n      uVar16 = param_2 - 1 & param_2;\n      puVar13 = PTR_LAB_0009d06c + 0x3500;\n      goto LAB_0002a030;\n    }" ({ "{") (expression_statement "uVar16 = param_2 - 1 & param_2;" (assignment_expression "uVar16 = param_2 - 1 & param_2" (identifier "uVar16") (= "=") (binary_expression "param_2 - 1 & param_2" (binary_expression "param_2 - 1" (identifier "param_2") (- "-") (number_literal "1")) (& "&") (identifier "param_2"))) (; ";")) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3500;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3500" (identifier "puVar13") (= "=") (binary_expression "PTR_LAB_0009d06c + 0x3500" (identifier "PTR_LAB_0009d06c") (+ "+") (number_literal "0x3500"))) (; ";")) (goto_statement "goto LAB_0002a030;" (goto "goto") (statement_identifier "LAB_0002a030") (; ";")) (} "}"))) (expression_statement "uVar16 = param_2 - 1 & param_2;" (assignment_expression "uVar16 = param_2 - 1 & param_2" (identifier "uVar16") (= "=") (binary_expression "param_2 - 1 & param_2" (binary_expression "param_2 - 1" (identifier "param_2") (- "-") (number_literal "1")) (& "&") (identifier "param_2"))) (; ";")) (if_statement "if (0x3e < (int)param_2) goto LAB_0002a12c;" (if "if") (parenthesized_expression "(0x3e < (int)param_2)" (( "(") (binary_expression "0x3e < (int)param_2" (number_literal "0x3e") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (goto_statement "goto LAB_0002a12c;" (goto "goto") (statement_identifier "LAB_0002a12c") (; ";"))) (expression_statement "puVar13 = PTR_LAB_0009d06c + 0x3498;" (assignment_expression "puVar13 = PTR_LAB_0009d06c + 0x3498" (identifier "puVar13") (= "=") (binary_expression "PTR_LAB_0009d06c + 0x3498" (identifier "PTR_LAB_0009d06c") (+ "+") (number_literal "0x3498"))) (; ";")) (if_statement "if (param_1 != (char *)0x0) goto LAB_0002a038;" (if "if") (parenthesized_expression "(param_1 != (char *)0x0)" (( "(") (binary_expression "param_1 != (char *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002a038;" (goto "goto") (statement_identifier "LAB_0002a038") (; ";"))) (labeled_statement "LAB_00029e2c:\n    pcVar15 = (char *)0x2;" (statement_identifier "LAB_00029e2c") (: ":") (expression_statement "pcVar15 = (char *)0x2;" (assignment_expression "pcVar15 = (char *)0x2" (identifier "pcVar15") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";"))) (if_statement "if (uVar11 != 0) {\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }" (if "if") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }\n      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);\n      if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }\n      uVar5 = uVar11;\n      if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }\n      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;\n      if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }\n      if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }\n    }" ({ "{") (if_statement "if ((int)uVar11 < 0) {\n        iVar4 = ~uVar11 << 2;\n      }\n      else {\n        iVar4 = uVar11 * 4 + -4;\n      }" (if "if") (parenthesized_expression "((int)uVar11 < 0)" (( "(") (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = ~uVar11 << 2;\n      }" ({ "{") (expression_statement "iVar4 = ~uVar11 << 2;" (assignment_expression "iVar4 = ~uVar11 << 2" (identifier "iVar4") (= "=") (binary_expression "~uVar11 << 2" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (<< "<<") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n        iVar4 = uVar11 * 4 + -4;\n      }" (else "else") (compound_statement "{\n        iVar4 = uVar11 * 4 + -4;\n      }" ({ "{") (expression_statement "iVar4 = uVar11 * 4 + -4;" (assignment_expression "iVar4 = uVar11 * 4 + -4" (identifier "iVar4") (= "=") (binary_expression "uVar11 * 4 + -4" (binary_expression "uVar11 * 4" (identifier "uVar11") (* "*") (number_literal "4")) (+ "+") (number_literal "-4"))) (; ";")) (} "}")))) (expression_statement "uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);" (assignment_expression "uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(*(int *)(param_3 + 8) + iVar4)" (* "*") (cast_expression "(uint *)(*(int *)(param_3 + 8) + iVar4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_3 + 8) + iVar4)" (( "(") (binary_expression "*(int *)(param_3 + 8) + iVar4" (pointer_expression "*(int *)(param_3 + 8)" (* "*") (cast_expression "(int *)(param_3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")")))) (+ "+") (identifier "iVar4")) () ")"))))) (; ";")) (if_statement "if (uVar9 < 0x10000) {\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }\n      else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" (if "if") (parenthesized_expression "(uVar9 < 0x10000)" (( "(") (binary_expression "uVar9 < 0x10000" (identifier "uVar9") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n        iVar4 = 9;\n        if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }\n      }" ({ "{") (expression_statement "iVar4 = 9;" (assignment_expression "iVar4 = 9" (identifier "iVar4") (= "=") (number_literal "9")) (; ";")) (if_statement "if (uVar9 < 0x100) {\n          iVar4 = 1;\n        }" (if "if") (parenthesized_expression "(uVar9 < 0x100)" (( "(") (binary_expression "uVar9 < 0x100" (identifier "uVar9") (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n          iVar4 = 1;\n        }" ({ "{") (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" (else "else") (compound_statement "{\n        iVar4 = 0x19;\n        if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }\n      }" ({ "{") (expression_statement "iVar4 = 0x19;" (assignment_expression "iVar4 = 0x19" (identifier "iVar4") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if (uVar9 < 0x1000000) {\n          iVar4 = 0x11;\n        }" (if "if") (parenthesized_expression "(uVar9 < 0x1000000)" (( "(") (binary_expression "uVar9 < 0x1000000" (identifier "uVar9") (< "<") (number_literal "0x1000000")) () ")")) (compound_statement "{\n          iVar4 = 0x11;\n        }" ({ "{") (expression_statement "iVar4 = 0x11;" (assignment_expression "iVar4 = 0x11" (identifier "iVar4") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar5 = uVar11;" (assignment_expression "uVar5 = uVar11" (identifier "uVar5") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if ((int)uVar11 < 0) {\n        uVar5 = -uVar11;\n      }" (if "if") (parenthesized_expression "((int)uVar11 < 0)" (( "(") (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        uVar5 = -uVar11;\n      }" ({ "{") (expression_statement "uVar5 = -uVar11;" (assignment_expression "uVar5 = -uVar11" (identifier "uVar5") (= "=") (unary_expression "-uVar11" (- "-") (identifier "uVar11"))) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]\n      ;" (assignment_expression "uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" (identifier "uVar9") (= "=") (binary_expression "uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" (binary_expression "uVar5 * 0x20 + -0x21 + iVar4" (binary_expression "uVar5 * 0x20 + -0x21" (binary_expression "uVar5 * 0x20" (identifier "uVar5") (* "*") (number_literal "0x20")) (+ "+") (number_literal "-0x21")) (+ "+") (identifier "iVar4")) (+ "+") (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "uVar9 >> iVar4" (identifier "uVar9") (>> ">>") (identifier "iVar4")) (] "]")))))) (; ";")) (if_statement "if (uVar16 == 0) {\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }\n      else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);\n        if (uVar5 == 0) {\n          trap(7);\n        }\n        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;\n      }" ({ "{") (expression_statement "uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);" (assignment_expression "uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" (* "*") (cast_expression "(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc)" (( "(") (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc" (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14" (identifier "PTR___gmpn_bases_0009d338") (+ "+") (binary_expression "uVar14 * 0x14" (identifier "uVar14") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (uVar5 == 0) {\n          trap(7);\n        }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          trap(7);\n        }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = ((uVar5 - 1) + uVar9) / uVar5;" (assignment_expression "uVar5 = ((uVar5 - 1) + uVar9) / uVar5" (identifier "uVar5") (= "=") (binary_expression "((uVar5 - 1) + uVar9) / uVar5" (parenthesized_expression "((uVar5 - 1) + uVar9)" (( "(") (binary_expression "(uVar5 - 1) + uVar9" (parenthesized_expression "(uVar5 - 1)" (( "(") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1")) () ")")) (+ "+") (identifier "uVar9")) () ")")) (/ "/") (identifier "uVar5"))) (; ";")) (} "}")) (else_clause "else {\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" (else "else") (compound_statement "{\n        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;\n      }" ({ "{") (expression_statement "uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1;" (assignment_expression "uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1" (identifier "uVar5") (= "=") (binary_expression "(int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20) + 1" (cast_expression "(int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9 >> 0x20" (binary_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *\n                      (ulonglong)uVar9" (call_expression "(ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1)" (( "(") (binary_expression "*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1" (pointer_expression "*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" (* "*") (cast_expression "(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4)" (( "(") (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4" (binary_expression "PTR___gmpn_bases_0009d338 + uVar14 * 0x14" (identifier "PTR___gmpn_bases_0009d338") (+ "+") (binary_expression "uVar14 * 0x14" (identifier "uVar14") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1")) () ")"))) (* "*") (cast_expression "(ulonglong)uVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar9"))) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (if_statement "if ((int)uVar11 < 0) {\n        pcVar15 = (char *)(uVar5 + 2);\n      }\n      else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }" (if "if") (parenthesized_expression "((int)uVar11 < 0)" (( "(") (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar15 = (char *)(uVar5 + 2);\n      }" ({ "{") (expression_statement "pcVar15 = (char *)(uVar5 + 2);" (assignment_expression "pcVar15 = (char *)(uVar5 + 2)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(uVar5 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 + 2)" (( "(") (binary_expression "uVar5 + 2" (identifier "uVar5") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        pcVar15 = (char *)(uVar5 + 1);\n      }" (else "else") (compound_statement "{\n        pcVar15 = (char *)(uVar5 + 1);\n      }" ({ "{") (expression_statement "pcVar15 = (char *)(uVar5 + 1);" (assignment_expression "pcVar15 = (char *)(uVar5 + 1)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(uVar5 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 + 1)" (( "(") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);" (assignment_expression "param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" (identifier "param_1") (= "=") (cast_expression "(char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15)" (parenthesized_expression "(**(code **)PTR___gmp_allocate_func_0009d50c)" (( "(") (pointer_expression "**(code **)PTR___gmp_allocate_func_0009d50c" (* "*") (pointer_expression "*(code **)PTR___gmp_allocate_func_0009d50c" (* "*") (cast_expression "(code **)PTR___gmp_allocate_func_0009d50c" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___gmp_allocate_func_0009d50c")))) () ")")) (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")"))))) (; ";")) (expression_statement "pcVar2 = param_1;" (assignment_expression "pcVar2 = param_1" (identifier "pcVar2") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (-1 < (int)uVar11) goto LAB_0002a040;" (if "if") (parenthesized_expression "(-1 < (int)uVar11)" (( "(") (binary_expression "-1 < (int)uVar11" (number_literal "-1") (< "<") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) () ")")) (goto_statement "goto LAB_0002a040;" (goto "goto") (statement_identifier "LAB_0002a040") (; ";"))) (labeled_statement "LAB_00029ef8:\n    param_1 = pcVar2 + 1;" (statement_identifier "LAB_00029ef8") (: ":") (expression_statement "param_1 = pcVar2 + 1;" (assignment_expression "param_1 = pcVar2 + 1" (identifier "param_1") (= "=") (binary_expression "pcVar2 + 1" (identifier "pcVar2") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*pcVar2 = '-';" (assignment_expression "*pcVar2 = '-'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'-'" (' "'") (character "-") (' "'"))) (; ";")) (expression_statement "uVar11 = -uVar11;" (assignment_expression "uVar11 = -uVar11" (identifier "uVar11") (= "=") (unary_expression "-uVar11" (- "-") (identifier "uVar11"))) (; ";")) (if_statement "if (uVar16 == 0) goto LAB_0002a04c;" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002a04c;" (goto "goto") (statement_identifier "LAB_0002a04c") (; ";"))) (labeled_statement "LAB_00029f10:\n    local_30 = 0;" (statement_identifier "LAB_00029f10") (: ":") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar16 = (uVar11 | 1) * 4;" (assignment_expression "uVar16 = (uVar11 | 1) * 4" (identifier "uVar16") (= "=") (binary_expression "(uVar11 | 1) * 4" (parenthesized_expression "(uVar11 | 1)" (( "(") (binary_expression "uVar11 | 1" (identifier "uVar11") (| "|") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar16 < 0x7f01) {\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }\n    else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" (if "if") (parenthesized_expression "(uVar16 < 0x7f01)" (( "(") (binary_expression "uVar16 < 0x7f01" (identifier "uVar16") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));\n    }" ({ "{") (expression_statement "puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));" (assignment_expression "puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8))" (( "(") (binary_expression "&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8)" (pointer_expression "&stack0xffffffc0" (& "&") (identifier "stack0xffffffc0")) (+ "+") (unary_expression "-(uVar16 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar16 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar16 + 7 & 0xfffffff8" (binary_expression "uVar16 + 7" (identifier "uVar16") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" (else "else") (compound_statement "{\n      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n    }" ({ "{") (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (uVar11 == 0) goto LAB_0002a054;" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002a054;" (goto "goto") (statement_identifier "LAB_0002a054") (; ";"))) (expression_statement "puVar6 = *(undefined4 **)(param_3 + 8);" (assignment_expression "puVar6 = *(undefined4 **)(param_3 + 8)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(param_3 + 8)" (* "*") (cast_expression "(undefined4 **)(param_3 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar4 = uVar11 - 1;" (assignment_expression "iVar4 = uVar11 - 1" (identifier "iVar4") (= "=") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = *puVar6;" (assignment_expression "uVar12 = *puVar6" (identifier "uVar12") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar10 = puVar3;" (assignment_expression "puVar10 = puVar3" (identifier "puVar10") (= "=") (identifier "puVar3")) (; ";")) (if_statement "if (iVar4 == 0) {\n      *puVar3 = uVar12;\n    }\n    else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *puVar3 = uVar12;\n    }" ({ "{") (expression_statement "*puVar3 = uVar12;" (assignment_expression "*puVar3 = uVar12" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "uVar12")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" (else "else") (compound_statement "{\n      do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);\n      puVar3[uVar11 - 1] = uVar12;\n    }" ({ "{") (do_statement "do {\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      } while (iVar4 != 0);" (do "do") (compound_statement "{\n        puVar6 = puVar6 + 1;\n        *puVar10 = uVar12;\n        iVar4 = iVar4 + -1;\n        uVar12 = *puVar6;\n        puVar10 = puVar10 + 1;\n      }" ({ "{") (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar10 = uVar12;" (assignment_expression "*puVar10 = uVar12" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar12 = *puVar6;" (assignment_expression "uVar12 = *puVar6" (identifier "uVar12") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar3[uVar11 - 1] = uVar12;" (assignment_expression "puVar3[uVar11 - 1] = uVar12" (subscript_expression "puVar3[uVar11 - 1]" (identifier "puVar3") ([ "[") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1")) (] "]")) (= "=") (identifier "uVar12")) (; ";")) (} "}")))) (expression_statement "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_get_str_0009d32c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_get_str_0009d32c" (* "*") (cast_expression "(code *)PTR___gmpn_get_str_0009d32c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_get_str_0009d32c"))) () ")")) (argument_list "(param_1,uVar14)" (( "(") (identifier "param_1") (, ",") (identifier "uVar14") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_0002a068;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002a068;" (goto "goto") (statement_identifier "LAB_0002a068") (; ";"))) (labeled_statement "LAB_00029f94:\n    *param_1 = '\0';" (statement_identifier "LAB_00029f94") (: ":") (expression_statement "*param_1 = '\0';" (assignment_expression "*param_1 = '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (} "}")))) (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 "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }" (if "if") (parenthesized_expression "((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2)))" (( "(") (binary_expression "(pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))" (parenthesized_expression "(pcVar15 != (char *)0x0)" (( "(") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))" (( "(") (binary_expression "pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2)" (identifier "pcVar15") (!= "!=") (binary_expression "param_1 + iVar4 + (1 - (int)pcVar2)" (binary_expression "param_1 + iVar4" (identifier "param_1") (+ "+") (identifier "iVar4")) (+ "+") (parenthesized_expression "(1 - (int)pcVar2)" (( "(") (binary_expression "1 - (int)pcVar2" (number_literal "1") (- "-") (cast_expression "(int)pcVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar2"))) () ")")))) () ")"))) () ")")) (compound_statement "{\n    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);\n  }" ({ "{") (expression_statement "pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);" (assignment_expression "pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" (identifier "pcVar2") (= "=") (cast_expression "(char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15)" (parenthesized_expression "(**(code **)PTR___gmp_reallocate_func_0009d5a4)" (( "(") (pointer_expression "**(code **)PTR___gmp_reallocate_func_0009d5a4" (* "*") (pointer_expression "*(code **)PTR___gmp_reallocate_func_0009d5a4" (* "*") (cast_expression "(code **)PTR___gmp_reallocate_func_0009d5a4" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___gmp_reallocate_func_0009d5a4")))) () ")")) (argument_list "(pcVar2,pcVar15)" (( "(") (identifier "pcVar2") (, ",") (identifier "pcVar15") () ")"))))) (; ";")) (} "}"))) (labeled_statement "LAB_00029fd8:\n  if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" (statement_identifier "LAB_00029fd8") (: ":") (if_statement "if (local_2c != *(int *)puVar1) {\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" (if "if") (parenthesized_expression "(local_2c != *(int *)puVar1)" (( "(") (binary_expression "local_2c != *(int *)puVar1" (identifier "local_2c") (!= "!=") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0009d4d0)();\n    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);\n    if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }\n    return pcVar2;\n  }" ({ "{") (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 "pcVar2 = (char *)**(undefined4 **)(local_2c + 8);" (assignment_expression "pcVar2 = (char *)**(undefined4 **)(local_2c + 8)" (identifier "pcVar2") (= "=") (cast_expression "(char *)**(undefined4 **)(local_2c + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(local_2c + 8)" (* "*") (pointer_expression "*(undefined4 **)(local_2c + 8)" (* "*") (cast_expression "(undefined4 **)(local_2c + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_2c + 8)" (( "(") (binary_expression "local_2c + 8" (identifier "local_2c") (+ "+") (number_literal "8")) () ")"))))))) (; ";")) (if_statement "if (*(int *)(local_2c + 4) == 0) {\n      pcVar2 = (char *)0x0;\n    }" (if "if") (parenthesized_expression "(*(int *)(local_2c + 4) == 0)" (( "(") (binary_expression "*(int *)(local_2c + 4) == 0" (pointer_expression "*(int *)(local_2c + 4)" (* "*") (cast_expression "(int *)(local_2c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + 4)" (( "(") (binary_expression "local_2c + 4" (identifier "local_2c") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar2 = (char *)0x0;\n    }" ({ "{") (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" (identifier "pcVar2") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (return_statement "return pcVar2;" (return "return") (identifier "pcVar2") (; ";")) (} "}")))) (return_statement "return pcVar2;" (return "return") (identifier "pcVar2") (; ";")) (} "}")))

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

{
  type_2 *puVar1;
  char *var_14;
  type_3 *pmVar3;
  int var_6;
  type_4 var_11;
  type_3 *var_15;
  char *var_7;
  char *var_8;
  type_4 var_10;
  type_3 *var_16;
  type_4 var_9;
  type_3 mVar12;
  type_2 *puVar13;
  type_4 var_3;
  char *var_18;
  type_4 var_5;
  type_5 *var_17;
  int var_19;
  
  puVar1 = PTR___stack_chk_guard_0009d540;
  var_9 = x->_mp_size;
  var_19 = *(int *)PTR___stack_chk_guard_0009d540;
  if (var_1 < 0) {
    if (var_1 == -1) {
      var_5 = 8;
      var_3 = 10;
      puVar13 = var_2 + 0x34d8;
    }
    else {
      var_3 = -var_1;
      if (var_1 < -0x24) {
LAB_0002a12c:
        var_14 = (char *)0x0;
        goto LAB_00029fd8;
      }
      var_5 = ~var_1 & var_3;
      puVar13 = var_2 + 0x34d8;
    }
LAB_0002a030:
    if (var_4 == (char *)0x0) goto LAB_00029e2c;
LAB_0002a038:
    var_18 = (char *)0x0;
    var_14 = var_4;
    if ((int)var_9 < 0) goto LAB_00029ef8;
LAB_0002a040:
    var_14 = var_4;
    if (var_5 != 0) goto LAB_00029f10;
LAB_0002a04c:
    var_17 = (type_5 *)0x0;
    pmVar3 = x->_mp_d;
LAB_0002a054:
    var_6 = (*(type_6 *)PTR___gmpn_get_str_0009d32c)(var_4,var_3,pmVar3);
    if (var_6 == 0) goto LAB_00029f94;
LAB_0002a068:
    var_7 = var_4;
    do {
      var_8 = var_7 + 1;
      *var_7 = puVar13[*var_7];
      var_7 = var_8;
    } while (var_4 + var_6 != var_8);
    var_4[var_6] = '\0';
  }
  else {
    if (var_1 < 2) {
      var_5 = 8;
      var_3 = 10;
      puVar13 = var_2 + 0x3500;
      goto LAB_0002a030;
    }
    var_3 = var_1;
    if (var_1 < 0x25) {
      var_5 = var_1 - 1U & var_1;
      puVar13 = var_2 + 0x3500;
      goto LAB_0002a030;
    }
    var_5 = var_1 - 1U & var_1;
    if (0x3e < var_1) goto LAB_0002a12c;
    puVar13 = var_2 + 0x3498;
    if (var_4 != (char *)0x0) goto LAB_0002a038;
LAB_00029e2c:
    var_18 = (char *)0x2;
    if (var_9 != 0) {
      if ((int)var_9 < 0) {
        var_6 = ~var_9 << 2;
      }
      else {
        var_6 = var_9 * 4 + -4;
      }
      var_10 = *(type_4 *)((int)x->_mp_d + var_6);
      if (var_10 < 0x10000) {
        var_6 = 9;
        if (var_10 < 0x100) {
          var_6 = 1;
        }
      }
      else {
        var_6 = 0x19;
        if (var_10 < 0x1000000) {
          var_6 = 0x11;
        }
      }
      var_11 = var_9;
      if ((int)var_9 < 0) {
        var_11 = -var_9;
      }
      var_10 = var_11 * 0x20 + -0x21 + var_6 + (type_4)(type_7)PTR___gmpn_clz_tab_0009d18c[var_10 >> var_6]
      ;
      if (var_5 == 0) {
        var_11 = *(type_4 *)(var_12 + var_3 * 0x14 + 0xc);
        if (var_11 == 0) {
          var_13(7);
        }
        var_11 = ((var_11 - 1) + var_10) / var_11;
      }
      else {
        var_11 = (int)((type_8)(*(int *)(var_12 + var_3 * 0x14 + 4) + 1) *
                      (type_8)var_10 >> 0x20) + 1;
      }
      if ((int)var_9 < 0) {
        var_18 = (char *)(var_11 + 2);
      }
      else {
        var_18 = (char *)(var_11 + 1);
      }
    }
    var_4 = (char *)(**(type_6 **)PTR___gmp_allocate_func_0009d50c)(var_18);
    var_14 = var_4;
    if (-1 < (int)var_9) goto LAB_0002a040;
LAB_00029ef8:
    var_4 = var_14 + 1;
    *var_14 = '-';
    var_9 = -var_9;
    if (var_5 == 0) goto LAB_0002a04c;
LAB_00029f10:
    var_17 = (type_5 *)0x0;
    var_5 = (var_9 | 1) * 4;
    if (var_5 < 0x7f01) {
      pmVar3 = (type_3 *)(&stack0xffffffc0 + -(var_5 + 7 & 0xfffffff8));
    }
    else {
      pmVar3 = (type_3 *)(*(type_6 *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&var_17);
    }
    if (var_9 == 0) goto LAB_0002a054;
    var_15 = x->_mp_d;
    var_6 = var_9 - 1;
    mVar12 = *var_15;
    var_16 = pmVar3;
    if (var_6 == 0) {
      *pmVar3 = mVar12;
    }
    else {
      do {
        var_15 = var_15 + 1;
        *var_16 = mVar12;
        var_6 = var_6 + -1;
        mVar12 = *var_15;
        var_16 = var_16 + 1;
      } while (var_6 != 0);
      pmVar3[var_9 - 1] = mVar12;
    }
    var_6 = (*(type_6 *)PTR___gmpn_get_str_0009d32c)(var_4,var_3);
    if (var_6 != 0) goto LAB_0002a068;
LAB_00029f94:
    *var_4 = '\0';
  }
  if (var_17 != (type_5 *)0x0) {
    (*(type_6 *)PTR___gmp_tmp_reentrant_free_0009d618)();
  }
  if ((var_18 != (char *)0x0) && (var_18 != var_4 + var_6 + (1 - (int)var_14))) {
    var_14 = (char *)(**(type_6 **)PTR___gmp_reallocate_func_0009d5a4)(var_14,var_18);
  }
LAB_00029fd8:
  if (var_19 != *(int *)puVar1) {
    (*(type_6 *)PTR___stack_chk_fail_0009d4d0)();
    var_14 = (char *)**(type_9 **)(var_19 + 8);
    if (*(int *)(var_19 + 4) == 0) {
      var_14 = (char *)0x0;
    }
    return var_14;
  }
  return var_14;
}


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

char * MASKED(char *param_1,uint param_2,int param_3)

{
  undefined *puVar1;
  char *pcVar2;
  undefined4 *puVar3;
  int iVar4;
  uint uVar5;
  undefined4 *puVar6;
  char *pcVar7;
  char *pcVar8;
  uint uVar9;
  undefined4 *puVar10;
  uint uVar11;
  undefined4 uVar12;
  undefined *puVar13;
  uint uVar14;
  char *pcVar15;
  uint uVar16;
  int local_30;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0009d540;
  uVar11 = *(uint *)(param_3 + 4);
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  if ((int)param_2 < 0) {
    if (param_2 == 0xffffffff) {
      uVar16 = 8;
      uVar14 = 10;
      puVar13 = PTR_LAB_0009d06c + 0x34d8;
    }
    else {
      uVar14 = -param_2;
      if ((int)param_2 < -0x24) {
LAB_0002a12c:
        pcVar2 = (char *)0x0;
        goto LAB_00029fd8;
      }
      uVar16 = ~param_2 & uVar14;
      puVar13 = PTR_LAB_0009d06c + 0x34d8;
    }
LAB_0002a030:
    if (param_1 == (char *)0x0) goto LAB_00029e2c;
LAB_0002a038:
    pcVar15 = (char *)0x0;
    pcVar2 = param_1;
    if ((int)uVar11 < 0) goto LAB_00029ef8;
LAB_0002a040:
    pcVar2 = param_1;
    if (uVar16 != 0) goto LAB_00029f10;
LAB_0002a04c:
    local_30 = 0;
    puVar3 = *(undefined4 **)(param_3 + 8);
LAB_0002a054:
    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14,puVar3);
    if (iVar4 == 0) goto LAB_00029f94;
LAB_0002a068:
    pcVar7 = param_1;
    do {
      pcVar8 = pcVar7 + 1;
      *pcVar7 = puVar13[*pcVar7];
      pcVar7 = pcVar8;
    } while (param_1 + iVar4 != pcVar8);
    param_1[iVar4] = '\0';
  }
  else {
    if ((int)param_2 < 2) {
      uVar16 = 8;
      uVar14 = 10;
      puVar13 = PTR_LAB_0009d06c + 0x3500;
      goto LAB_0002a030;
    }
    uVar14 = param_2;
    if ((int)param_2 < 0x25) {
      uVar16 = param_2 - 1 & param_2;
      puVar13 = PTR_LAB_0009d06c + 0x3500;
      goto LAB_0002a030;
    }
    uVar16 = param_2 - 1 & param_2;
    if (0x3e < (int)param_2) goto LAB_0002a12c;
    puVar13 = PTR_LAB_0009d06c + 0x3498;
    if (param_1 != (char *)0x0) goto LAB_0002a038;
LAB_00029e2c:
    pcVar15 = (char *)0x2;
    if (uVar11 != 0) {
      if ((int)uVar11 < 0) {
        iVar4 = ~uVar11 << 2;
      }
      else {
        iVar4 = uVar11 * 4 + -4;
      }
      uVar9 = *(uint *)(*(int *)(param_3 + 8) + iVar4);
      if (uVar9 < 0x10000) {
        iVar4 = 9;
        if (uVar9 < 0x100) {
          iVar4 = 1;
        }
      }
      else {
        iVar4 = 0x19;
        if (uVar9 < 0x1000000) {
          iVar4 = 0x11;
        }
      }
      uVar5 = uVar11;
      if ((int)uVar11 < 0) {
        uVar5 = -uVar11;
      }
      uVar9 = uVar5 * 0x20 + -0x21 + iVar4 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar9 >> iVar4]
      ;
      if (uVar16 == 0) {
        uVar5 = *(uint *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 0xc);
        if (uVar5 == 0) {
          trap(7);
        }
        uVar5 = ((uVar5 - 1) + uVar9) / uVar5;
      }
      else {
        uVar5 = (int)((ulonglong)(*(int *)(PTR___gmpn_bases_0009d338 + uVar14 * 0x14 + 4) + 1) *
                      (ulonglong)uVar9 >> 0x20) + 1;
      }
      if ((int)uVar11 < 0) {
        pcVar15 = (char *)(uVar5 + 2);
      }
      else {
        pcVar15 = (char *)(uVar5 + 1);
      }
    }
    param_1 = (char *)(**(code **)PTR___gmp_allocate_func_0009d50c)(pcVar15);
    pcVar2 = param_1;
    if (-1 < (int)uVar11) goto LAB_0002a040;
LAB_00029ef8:
    param_1 = pcVar2 + 1;
    *pcVar2 = '-';
    uVar11 = -uVar11;
    if (uVar16 == 0) goto LAB_0002a04c;
LAB_00029f10:
    local_30 = 0;
    uVar16 = (uVar11 | 1) * 4;
    if (uVar16 < 0x7f01) {
      puVar3 = (undefined4 *)(&stack0xffffffc0 + -(uVar16 + 7 & 0xfffffff8));
    }
    else {
      puVar3 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
    }
    if (uVar11 == 0) goto LAB_0002a054;
    puVar6 = *(undefined4 **)(param_3 + 8);
    iVar4 = uVar11 - 1;
    uVar12 = *puVar6;
    puVar10 = puVar3;
    if (iVar4 == 0) {
      *puVar3 = uVar12;
    }
    else {
      do {
        puVar6 = puVar6 + 1;
        *puVar10 = uVar12;
        iVar4 = iVar4 + -1;
        uVar12 = *puVar6;
        puVar10 = puVar10 + 1;
      } while (iVar4 != 0);
      puVar3[uVar11 - 1] = uVar12;
    }
    iVar4 = (*(code *)PTR___gmpn_get_str_0009d32c)(param_1,uVar14);
    if (iVar4 != 0) goto LAB_0002a068;
LAB_00029f94:
    *param_1 = '\0';
  }
  if (local_30 != 0) {
    (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
  }
  if ((pcVar15 != (char *)0x0) && (pcVar15 != param_1 + iVar4 + (1 - (int)pcVar2))) {
    pcVar2 = (char *)(**(code **)PTR___gmp_reallocate_func_0009d5a4)(pcVar2,pcVar15);
  }
LAB_00029fd8:
  if (local_2c != *(int *)puVar1) {
    (*(code *)PTR___stack_chk_fail_0009d4d0)();
    pcVar2 = (char *)**(undefined4 **)(local_2c + 8);
    if (*(int *)(local_2c + 4) == 0) {
      pcVar2 = (char *)0x0;
    }
    return pcVar2;
  }
  return pcVar2;
}

