
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

double __gmpq_get_d(mpq_srcptr src)

{
  int iVar1;
  void *pvVar2;
  int iVar3;
  mp_limb_t *pmVar4;
  code *pcVar5;
  int iVar6;
  uint uVar7;
  void *pvVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  undefined1 *puVar12;
  int iVar13;
  int in_GS_OFFSET;
  double dVar14;
  undefined1 auStack_6c [12];
  void *local_60;
  int local_5c;
  int local_58;
  int local_54;
  mp_limb_t *local_50;
  uint local_4c;
  int local_48;
  double local_44;
  tmp_reentrant_t *__tmp_marker;
  mp_limb_t qarr [4];
  
  puVar12 = auStack_6c;
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  local_4c = (src->_mp_num)._mp_size;
  uVar7 = (src->_mp_den)._mp_size;
  if (local_4c == 0) {
    dVar14 = 0.0;
  }
  else {
    pmVar4 = (src->_mp_num)._mp_d;
    __tmp_marker = (tmp_reentrant_t *)0x0;
    iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f);
    local_50 = (src->_mp_den)._mp_d;
    uVar10 = (int)uVar7 >> 0x1f;
    local_48 = iVar9;
    iVar13 = (uVar7 ^ uVar10) - uVar10;
    iVar6 = 3 - (iVar9 - iVar13);
    local_54 = iVar6 * -0x20;
    iVar11 = iVar6;
    if (iVar6 < 0) {
      iVar1 = (iVar9 - iVar13) + -3;
      pmVar4 = pmVar4 + iVar1;
      iVar11 = iVar1 + iVar6;
      local_48 = iVar9 - iVar1;
    }
    local_44 = (double)CONCAT44(local_44._4_4_,pmVar4);
    local_58 = iVar6 + iVar9;
    iVar6 = iVar6 + iVar9 + iVar13;
    if (iVar11 < 1) {
      iVar6 = iVar13;
    }
    uVar7 = iVar6 * 4;
    if (uVar7 < 0x7f01) {
      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);
      puVar12 = auStack_6c + iVar6;
      pvVar8 = (void *)((int)&local_60 + iVar6);
    }
    else {
      local_5c = iVar11;
      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);
      puVar12 = auStack_6c;
      iVar11 = local_5c;
    }
    if (0 < iVar11) {
      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);
      local_60 = pvVar8;
      *(int *)(puVar12 + -8) = iVar11 << 2;
      *(undefined4 *)(puVar12 + -0xc) = 0;
      *(void **)(puVar12 + -0x10) = pvVar2;
      local_5c = iVar11 << 2;
      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;
      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));
      iVar11 = local_5c;
      *(int *)(puVar12 + -8) = local_48;
      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;
      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;
      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);
      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;
      (*pcVar5)();
      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);
      local_48 = local_58;
      pvVar8 = local_60;
    }
    *(int *)(puVar12 + -8) = iVar13;
    *(mp_limb_t **)(puVar12 + -0xc) = local_50;
    *(int *)(puVar12 + -0x10) = local_48;
    *(undefined4 *)(puVar12 + -0x14) = local_44._0_4_;
    *(undefined4 *)(puVar12 + -0x18) = 0;
    *(void **)(puVar12 + -0x1c) = pvVar8;
    *(mp_limb_t **)(puVar12 + -0x20) = qarr;
    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;
    __gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),
                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),
                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),
                   *(mp_size_t *)(puVar12 + -8));
    *(int *)(puVar12 + -4) = local_54;
    *(uint *)(puVar12 + -8) = local_4c;
    *(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0);
    *(mp_limb_t **)(puVar12 + -0x10) = qarr;
    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;
    dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),
                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4));
    if (__tmp_marker != (tmp_reentrant_t *)0x0) {
      local_44 = dVar14;
      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;
      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;
      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));
      dVar14 = local_44;
    }
  }
  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {
    return dVar14;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar12 + -4) = 0x35d4b;
  __stack_chk_fail_local();
}



longdouble __gmpq_get_d(void)

{
  int iVar1;
  undefined1 *puVar2;
  uint uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  code *pcVar6;
  int iVar7;
  undefined1 *puVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int unaff_EBX;
  undefined1 *puVar12;
  undefined1 *puVar13;
  int iVar14;
  int in_GS_OFFSET;
  longdouble lVar15;
  undefined1 auStack_70 [92];
  undefined4 uStack_14;
  
  puVar13 = &stack0xfffffffc;
  uStack_14 = 0x35bbb;
  entry();
  puVar12 = auStack_70;
  iVar11 = *(int *)(puVar13 + 8);
  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);
  uVar10 = *(uint *)(iVar11 + 4);
  uVar3 = *(uint *)(iVar11 + 0x10);
  *(uint *)(puVar13 + -0x48) = uVar10;
  if (uVar10 == 0) {
    lVar15 = (longdouble)0;
  }
  else {
    uVar4 = *(undefined4 *)(iVar11 + 8);
    uVar5 = *(undefined4 *)(iVar11 + 0x14);
    *(undefined4 *)(puVar13 + -0x30) = 0;
    *(undefined4 *)(puVar13 + -0x40) = uVar4;
    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);
    *(undefined4 *)(puVar13 + -0x4c) = uVar5;
    uVar10 = (int)uVar3 >> 0x1f;
    *(int *)(puVar13 + -0x44) = iVar9;
    iVar14 = (uVar3 ^ uVar10) - uVar10;
    iVar7 = 3 - (iVar9 - iVar14);
    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;
    iVar11 = iVar7;
    if (iVar7 < 0) {
      iVar1 = (iVar9 - iVar14) + -3;
      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;
      iVar11 = iVar1 + iVar7;
      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;
    }
    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;
    iVar7 = iVar7 + iVar9 + iVar14;
    if (iVar11 < 1) {
      iVar7 = iVar14;
    }
    uVar10 = iVar7 * 4;
    if (uVar10 < 0x7f01) {
      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);
      puVar12 = auStack_70 + iVar7;
      puVar8 = auStack_70 + iVar7;
    }
    else {
      *(int *)(puVar13 + -0x58) = iVar11;
      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);
      puVar12 = auStack_70;
      iVar11 = *(int *)(puVar13 + -0x58);
    }
    if (0 < iVar11) {
      puVar2 = puVar8 + iVar14 * 4;
      *(undefined1 **)(puVar13 + -0x5c) = puVar8;
      *(int *)(puVar12 + -8) = iVar11 << 2;
      *(undefined4 *)(puVar12 + -0xc) = 0;
      *(undefined1 **)(puVar12 + -0x10) = puVar2;
      *(int *)(puVar13 + -0x58) = iVar11 << 2;
      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;
      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));
      iVar11 = *(int *)(puVar13 + -0x58);
      iVar7 = *(int *)(unaff_EBX + 0x681d9);
      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);
      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);
      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;
      pcVar6 = *(code **)(iVar7 + 0x28);
      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;
      (*pcVar6)();
      puVar8 = *(undefined1 **)(puVar13 + -0x5c);
      *(undefined1 **)(puVar13 + -0x40) = puVar2;
      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);
    }
    *(int *)(puVar12 + -8) = iVar14;
    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);
    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);
    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);
    *(undefined4 *)(puVar12 + -0x18) = 0;
    *(undefined1 **)(puVar12 + -0x1c) = puVar8;
    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;
    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;
    __gmpn_tdiv_qr();
    iVar11 = *(int *)(puVar13 + -0x20);
    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);
    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);
    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);
    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;
    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;
    lVar15 = (longdouble)__gmpn_get_d();
    if (*(int *)(puVar13 + -0x30) != 0) {
      *(double *)(puVar13 + -0x40) = (double)lVar15;
      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);
      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;
      __gmp_tmp_reentrant_free();
      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);
    }
  }
  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {
    return lVar15;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar12 + -4) = 0x35d4b;
  FUN_0007ebe0();
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0001c340
ADD EBX,0x68445
SUB ESP,0x5c
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr GS:[0x14]
MOV dword ptr [EBP + -0x1c],ESI
XOR ESI,ESI
MOV EDI,dword ptr [EAX + 0x4]
MOV ESI,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + -0x48],EDI
TEST EDI,EDI
JZ 0x00035d08
MOV EDX,EDI
MOV ECX,EDI
MOV EDI,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x14]
SAR EDX,0x1f
MOV dword ptr [EBP + -0x30],0x0
XOR ECX,EDX
MOV dword ptr [EBP + -0x40],EDI
SUB ECX,EDX
MOV EDX,ESI
MOV dword ptr [EBP + -0x4c],EAX
MOV EAX,0x3
SAR EDX,0x1f
MOV EDI,ECX
MOV dword ptr [EBP + -0x44],ECX
XOR ESI,EDX
SUB ESI,EDX
SUB EDI,ESI
SUB EAX,EDI
MOV EDX,EAX
NEG EDX
SHL EDX,0x5
MOV dword ptr [EBP + -0x50],EDX
MOV EDX,EAX
TEST EAX,EAX
JNS 0x00035c3e
LEA EDX,[EDI + -0x3]
MOV EDI,dword ptr [EBP + -0x40]
LEA EDI,[EDI + EDX*0x4]
MOV dword ptr [EBP + -0x40],EDI
MOV EDI,ECX
SUB EDI,EDX
ADD EDX,EAX
MOV dword ptr [EBP + -0x44],EDI
ADD EAX,ECX
MOV dword ptr [EBP + -0x54],EAX
ADD EAX,ESI
TEST EDX,EDX
CMOVLE EAX,ESI
SHL EAX,0x2
CMP EAX,0x7f00
JA 0x00035d10
ADD EAX,0x1b
AND EAX,0xfffffff0
SUB ESP,EAX
LEA ECX,[ESP + 0xf]
AND ECX,0xfffffff0
TEST EDX,EDX
JLE 0x00035caa
LEA EDI,[ECX + ESI*0x4]
SUB ESP,0x4
SHL EDX,0x2
MOV dword ptr [EBP + -0x5c],ECX
PUSH EDX
PUSH 0x0
PUSH EDI
MOV dword ptr [EBP + -0x58],EDX
CALL 0x0001bb20
MOV EDX,dword ptr [EBP + -0x58]
MOV EAX,dword ptr [EBX + 0xfffffd94]
ADD ESP,0xc
PUSH dword ptr [EBP + -0x44]
ADD EDX,EDI
PUSH dword ptr [EBP + -0x40]
PUSH EDX
CALL dword ptr [EAX + 0x28]
MOV EAX,dword ptr [EBP + -0x54]
MOV ECX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x40],EDI
MOV dword ptr [EBP + -0x44],EAX
ADD ESP,0x10
SUB ESP,0x4
PUSH ESI
LEA ESI,[EBP + -0x2c]
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + -0x44]
PUSH dword ptr [EBP + -0x40]
PUSH 0x0
PUSH ECX
PUSH ESI
CALL 0x0001b060
MOV EAX,dword ptr [EBP + -0x20]
ADD ESP,0x20
XOR EDX,EDX
PUSH dword ptr [EBP + -0x50]
TEST EAX,EAX
MOV EAX,0x4
PUSH dword ptr [EBP + -0x48]
SETZ DL
SUB EAX,EDX
PUSH EAX
PUSH ESI
CALL 0x0001b0c0
MOV EAX,dword ptr [EBP + -0x30]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00035d30
MOV EAX,dword ptr [EBP + -0x1c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x00035d44
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
FLDZ
JMP 0x00035cee
SUB ESP,0x8
MOV dword ptr [EBP + -0x58],EDX
PUSH EAX
LEA EAX,[EBP + -0x30]
PUSH EAX
CALL 0x0001bb00
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x58]
MOV ECX,EAX
JMP 0x00035c67
SUB ESP,0xc
FSTP qword ptr [EBP + -0x40]
PUSH EAX
CALL 0x0001b050
ADD ESP,0x10
FLD qword ptr [EBP + -0x40]
JMP 0x00035cee
FSTP ST0
CALL 0x0007ebe0
(translation_unit "longdouble __gmpq_get_d(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EBX;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int iVar14;\n  int in_GS_OFFSET;\n  longdouble lVar15;\n  undefined1 auStack_70 [92];\n  undefined4 uStack_14;\n  \n  puVar13 = &stack0xfffffffc;\n  uStack_14 = 0x35bbb;\n  entry();\n  puVar12 = auStack_70;\n  iVar11 = *(int *)(puVar13 + 8);\n  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  uVar10 = *(uint *)(iVar11 + 4);\n  uVar3 = *(uint *)(iVar11 + 0x10);\n  *(uint *)(puVar13 + -0x48) = uVar10;\n  if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }\n  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  FUN_0007ebe0();\n}\n\n" (function_definition "longdouble __gmpq_get_d(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EBX;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int iVar14;\n  int in_GS_OFFSET;\n  longdouble lVar15;\n  undefined1 auStack_70 [92];\n  undefined4 uStack_14;\n  \n  puVar13 = &stack0xfffffffc;\n  uStack_14 = 0x35bbb;\n  entry();\n  puVar12 = auStack_70;\n  iVar11 = *(int *)(puVar13 + 8);\n  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  uVar10 = *(uint *)(iVar11 + 4);\n  uVar3 = *(uint *)(iVar11 + 0x10);\n  *(uint *)(puVar13 + -0x48) = uVar10;\n  if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }\n  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  FUN_0007ebe0();\n}" type_identifier (function_declarator "__gmpq_get_d(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EBX;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int iVar14;\n  int in_GS_OFFSET;\n  longdouble lVar15;\n  undefined1 auStack_70 [92];\n  undefined4 uStack_14;\n  \n  puVar13 = &stack0xfffffffc;\n  uStack_14 = 0x35bbb;\n  entry();\n  puVar12 = auStack_70;\n  iVar11 = *(int *)(puVar13 + 8);\n  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  uVar10 = *(uint *)(iVar11 + 4);\n  uVar3 = *(uint *)(iVar11 + 0x10);\n  *(uint *)(puVar13 + -0x48) = uVar10;\n  if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }\n  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  FUN_0007ebe0();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar15;" type_identifier identifier ;) (declaration "undefined1 auStack_70 [92];" type_identifier (array_declarator "auStack_70 [92]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar13 = &stack0xfffffffc;" (assignment_expression "puVar13 = &stack0xfffffffc" identifier = (pointer_expression "&stack0xfffffffc" & identifier)) ;) (expression_statement "uStack_14 = 0x35bbb;" (assignment_expression "uStack_14 = 0x35bbb" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar12 = auStack_70;" (assignment_expression "puVar12 = auStack_70" identifier = identifier) ;) (expression_statement "iVar11 = *(int *)(puVar13 + 8);" (assignment_expression "iVar11 = *(int *)(puVar13 + 8)" identifier = (pointer_expression "*(int *)(puVar13 + 8)" * (cast_expression "(int *)(puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "*(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(undefined4 *)(puVar13 + -0x1c)" * (cast_expression "(undefined4 *)(puVar13 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar11 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar11 + 4)" identifier = (pointer_expression "*(uint *)(iVar11 + 4)" * (cast_expression "(uint *)(iVar11 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(iVar11 + 0x10);" (assignment_expression "uVar3 = *(uint *)(iVar11 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x10)" * (cast_expression "(uint *)(iVar11 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar13 + -0x48) = uVar10;" (assignment_expression "*(uint *)(puVar13 + -0x48) = uVar10" (pointer_expression "*(uint *)(puVar13 + -0x48)" * (cast_expression "(uint *)(puVar13 + -0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x48)" ( (binary_expression "puVar13 + -0x48" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar15 = (longdouble)0;\n  }" { (expression_statement "lVar15 = (longdouble)0;" (assignment_expression "lVar15 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) }) (else_clause "else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" else (compound_statement "{\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" { (expression_statement "uVar4 = *(undefined4 *)(iVar11 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(iVar11 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 8)" * (cast_expression "(undefined4 *)(iVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar11 + 0x14);" (assignment_expression "uVar5 = *(undefined4 *)(iVar11 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" * (cast_expression "(undefined4 *)(iVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x30) = 0;" (assignment_expression "*(undefined4 *)(puVar13 + -0x30) = 0" (pointer_expression "*(undefined4 *)(puVar13 + -0x30)" * (cast_expression "(undefined4 *)(puVar13 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x30)" ( (binary_expression "puVar13 + -0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x40) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x40) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" * (cast_expression "(undefined4 *)(puVar13 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);" (assignment_expression "iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f)" identifier = (binary_expression "(uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f)" (parenthesized_expression "(uVar10 ^ (int)uVar10 >> 0x1f)" ( (binary_expression "uVar10 ^ (int)uVar10 >> 0x1f" identifier ^ (binary_expression "(int)uVar10 >> 0x1f" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar10 >> 0x1f)" ( (binary_expression "(int)uVar10 >> 0x1f" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x4c) = uVar5;" (assignment_expression "*(undefined4 *)(puVar13 + -0x4c) = uVar5" (pointer_expression "*(undefined4 *)(puVar13 + -0x4c)" * (cast_expression "(undefined4 *)(puVar13 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x4c)" ( (binary_expression "puVar13 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = (int)uVar3 >> 0x1f;" (assignment_expression "uVar10 = (int)uVar3 >> 0x1f" identifier = (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(int *)(puVar13 + -0x44) = iVar9;" (assignment_expression "*(int *)(puVar13 + -0x44) = iVar9" (pointer_expression "*(int *)(puVar13 + -0x44)" * (cast_expression "(int *)(puVar13 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar14 = (uVar3 ^ uVar10) - uVar10;" (assignment_expression "iVar14 = (uVar3 ^ uVar10) - uVar10" identifier = (binary_expression "(uVar3 ^ uVar10) - uVar10" (parenthesized_expression "(uVar3 ^ uVar10)" ( (binary_expression "uVar3 ^ uVar10" identifier ^ identifier) )) - identifier)) ;) (expression_statement "iVar7 = 3 - (iVar9 - iVar14);" (assignment_expression "iVar7 = 3 - (iVar9 - iVar14)" identifier = (binary_expression "3 - (iVar9 - iVar14)" number_literal - (parenthesized_expression "(iVar9 - iVar14)" ( (binary_expression "iVar9 - iVar14" identifier - identifier) )))) ;) (expression_statement "*(int *)(puVar13 + -0x50) = iVar7 * -0x20;" (assignment_expression "*(int *)(puVar13 + -0x50) = iVar7 * -0x20" (pointer_expression "*(int *)(puVar13 + -0x50)" * (cast_expression "(int *)(puVar13 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x50)" ( (binary_expression "puVar13 + -0x50" identifier + number_literal) )))) = (binary_expression "iVar7 * -0x20" identifier * number_literal)) ;) (expression_statement "iVar11 = iVar7;" (assignment_expression "iVar11 = iVar7" identifier = identifier) ;) (if_statement "if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }" { (expression_statement "iVar1 = (iVar9 - iVar14) + -3;" (assignment_expression "iVar1 = (iVar9 - iVar14) + -3" identifier = (binary_expression "(iVar9 - iVar14) + -3" (parenthesized_expression "(iVar9 - iVar14)" ( (binary_expression "iVar9 - iVar14" identifier - identifier) )) + number_literal)) ;) (expression_statement "*(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;" (assignment_expression "*(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4" (pointer_expression "*(int *)(puVar13 + -0x40)" * (cast_expression "(int *)(puVar13 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar13 + -0x40) + iVar1 * 4" (pointer_expression "*(int *)(puVar13 + -0x40)" * (cast_expression "(int *)(puVar13 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) + (binary_expression "iVar1 * 4" identifier * number_literal))) ;) (expression_statement "iVar11 = iVar1 + iVar7;" (assignment_expression "iVar11 = iVar1 + iVar7" identifier = (binary_expression "iVar1 + iVar7" identifier + identifier)) ;) (expression_statement "*(int *)(puVar13 + -0x44) = iVar9 - iVar1;" (assignment_expression "*(int *)(puVar13 + -0x44) = iVar9 - iVar1" (pointer_expression "*(int *)(puVar13 + -0x44)" * (cast_expression "(int *)(puVar13 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) )))) = (binary_expression "iVar9 - iVar1" identifier - identifier)) ;) })) (expression_statement "*(int *)(puVar13 + -0x54) = iVar7 + iVar9;" (assignment_expression "*(int *)(puVar13 + -0x54) = iVar7 + iVar9" (pointer_expression "*(int *)(puVar13 + -0x54)" * (cast_expression "(int *)(puVar13 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x54)" ( (binary_expression "puVar13 + -0x54" identifier + number_literal) )))) = (binary_expression "iVar7 + iVar9" identifier + identifier)) ;) (expression_statement "iVar7 = iVar7 + iVar9 + iVar14;" (assignment_expression "iVar7 = iVar7 + iVar9 + iVar14" identifier = (binary_expression "iVar7 + iVar9 + iVar14" (binary_expression "iVar7 + iVar9" identifier + identifier) + identifier)) ;) (if_statement "if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar7 = iVar14;\n    }" { (expression_statement "iVar7 = iVar14;" (assignment_expression "iVar7 = iVar14" identifier = identifier) ;) })) (expression_statement "uVar10 = iVar7 * 4;" (assignment_expression "uVar10 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (if_statement "if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" if (parenthesized_expression "(uVar10 < 0x7f01)" ( (binary_expression "uVar10 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }" { (expression_statement "iVar7 = -(uVar10 + 0x1b & 0xfffffff0);" (assignment_expression "iVar7 = -(uVar10 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar10 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar10 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar10 + 0x1b & 0xfffffff0" (binary_expression "uVar10 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar12 = auStack_70 + iVar7;" (assignment_expression "puVar12 = auStack_70 + iVar7" identifier = (binary_expression "auStack_70 + iVar7" identifier + identifier)) ;) (expression_statement "puVar8 = auStack_70 + iVar7;" (assignment_expression "puVar8 = auStack_70 + iVar7" identifier = (binary_expression "auStack_70 + iVar7" identifier + identifier)) ;) }) (else_clause "else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" else (compound_statement "{\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" { (expression_statement "*(int *)(puVar13 + -0x58) = iVar11;" (assignment_expression "*(int *)(puVar13 + -0x58) = iVar11" (pointer_expression "*(int *)(puVar13 + -0x58)" * (cast_expression "(int *)(puVar13 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x58)" ( (binary_expression "puVar13 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);" (assignment_expression "puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" identifier = (cast_expression "(undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" identifier (argument_list "(puVar13 + -0x30,uVar10)" ( (binary_expression "puVar13 + -0x30" identifier + number_literal) , identifier ))))) ;) (expression_statement "puVar12 = auStack_70;" (assignment_expression "puVar12 = auStack_70" identifier = identifier) ;) (expression_statement "iVar11 = *(int *)(puVar13 + -0x58);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x58)" identifier = (pointer_expression "*(int *)(puVar13 + -0x58)" * (cast_expression "(int *)(puVar13 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x58)" ( (binary_expression "puVar13 + -0x58" identifier + number_literal) ))))) ;) }))) (if_statement "if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }" if (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) (compound_statement "{\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }" { (expression_statement "puVar2 = puVar8 + iVar14 * 4;" (assignment_expression "puVar2 = puVar8 + iVar14 * 4" identifier = (binary_expression "puVar8 + iVar14 * 4" identifier + (binary_expression "iVar14 * 4" identifier * number_literal))) ;) (expression_statement "*(undefined1 **)(puVar13 + -0x5c) = puVar8;" (assignment_expression "*(undefined1 **)(puVar13 + -0x5c) = puVar8" (pointer_expression "*(undefined1 **)(puVar13 + -0x5c)" * (cast_expression "(undefined1 **)(puVar13 + -0x5c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x5c)" ( (binary_expression "puVar13 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar12 + -8) = iVar11 << 2;" (assignment_expression "*(int *)(puVar12 + -8) = iVar11 << 2" (pointer_expression "*(int *)(puVar12 + -8)" * (cast_expression "(int *)(puVar12 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = (binary_expression "iVar11 << 2" identifier << number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" * (cast_expression "(undefined4 *)(puVar12 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar2;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar2" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" * (cast_expression "(undefined1 **)(puVar12 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0x58) = iVar11 << 2;" (assignment_expression "*(int *)(puVar13 + -0x58) = iVar11 << 2" (pointer_expression "*(int *)(puVar13 + -0x58)" * (cast_expression "(int *)(puVar13 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x58)" ( (binary_expression "puVar13 + -0x58" identifier + number_literal) )))) = (binary_expression "iVar11 << 2" identifier << number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35c83;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35c83" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));" (call_expression "memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8))" identifier (argument_list "(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8))" ( (pointer_expression "*(void **)(puVar12 + -0x10)" * (cast_expression "(void **)(puVar12 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar12 + -0xc)" * (cast_expression "(int *)(puVar12 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar12 + -8)" * (cast_expression "(size_t *)(puVar12 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar11 = *(int *)(puVar13 + -0x58);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x58)" identifier = (pointer_expression "*(int *)(puVar13 + -0x58)" * (cast_expression "(int *)(puVar13 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x58)" ( (binary_expression "puVar13 + -0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(unaff_EBX + 0x681d9);" (assignment_expression "iVar7 = *(int *)(unaff_EBX + 0x681d9)" identifier = (pointer_expression "*(int *)(unaff_EBX + 0x681d9)" * (cast_expression "(int *)(unaff_EBX + 0x681d9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x681d9)" ( (binary_expression "unaff_EBX + 0x681d9" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);" (assignment_expression "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44)" (pointer_expression "*(undefined4 *)(puVar12 + -8)" * (cast_expression "(undefined4 *)(puVar12 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" * (cast_expression "(undefined4 *)(puVar13 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40)" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" * (cast_expression "(undefined4 *)(puVar12 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" * (cast_expression "(undefined4 *)(puVar13 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" * (cast_expression "(undefined1 **)(puVar12 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar2 + iVar11" identifier + identifier)) ;) (expression_statement "pcVar6 = *(code **)(iVar7 + 0x28);" (assignment_expression "pcVar6 = *(code **)(iVar7 + 0x28)" identifier = (pointer_expression "*(code **)(iVar7 + 0x28)" * (cast_expression "(code **)(iVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35c9b;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35c9b" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = *(undefined1 **)(puVar13 + -0x5c);" (assignment_expression "puVar8 = *(undefined1 **)(puVar13 + -0x5c)" identifier = (pointer_expression "*(undefined1 **)(puVar13 + -0x5c)" * (cast_expression "(undefined1 **)(puVar13 + -0x5c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x5c)" ( (binary_expression "puVar13 + -0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar13 + -0x40) = puVar2;" (assignment_expression "*(undefined1 **)(puVar13 + -0x40) = puVar2" (pointer_expression "*(undefined1 **)(puVar13 + -0x40)" * (cast_expression "(undefined1 **)(puVar13 + -0x40)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);" (assignment_expression "*(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54)" (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" * (cast_expression "(undefined4 *)(puVar13 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x54)" * (cast_expression "(undefined4 *)(puVar13 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x54)" ( (binary_expression "puVar13 + -0x54" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar12 + -8) = iVar14;" (assignment_expression "*(int *)(puVar12 + -8) = iVar14" (pointer_expression "*(int *)(puVar12 + -8)" * (cast_expression "(int *)(puVar12 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c)" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" * (cast_expression "(undefined4 *)(puVar12 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x4c)" * (cast_expression "(undefined4 *)(puVar13 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x4c)" ( (binary_expression "puVar13 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);" (assignment_expression "*(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44)" (pointer_expression "*(undefined4 *)(puVar12 + -0x10)" * (cast_expression "(undefined4 *)(puVar12 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" * (cast_expression "(undefined4 *)(puVar13 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40)" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" * (cast_expression "(undefined4 *)(puVar13 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar12 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar12 + -0x18)" * (cast_expression "(undefined4 *)(puVar12 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x18)" ( (binary_expression "puVar12 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x1c) = puVar8;" (assignment_expression "*(undefined1 **)(puVar12 + -0x1c) = puVar8" (pointer_expression "*(undefined1 **)(puVar12 + -0x1c)" * (cast_expression "(undefined1 **)(puVar12 + -0x1c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x1c)" ( (binary_expression "puVar12 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;" (assignment_expression "*(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c" (pointer_expression "*(undefined1 **)(puVar12 + -0x20)" * (cast_expression "(undefined1 **)(puVar12 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x20)" ( (binary_expression "puVar12 + -0x20" identifier + number_literal) )))) = (binary_expression "puVar13 + -0x2c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x24) = 0x35cc3;" (assignment_expression "*(undefined4 *)(puVar12 + -0x24) = 0x35cc3" (pointer_expression "*(undefined4 *)(puVar12 + -0x24)" * (cast_expression "(undefined4 *)(puVar12 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x24)" ( (binary_expression "puVar12 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_tdiv_qr();" (call_expression "__gmpn_tdiv_qr()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(puVar13 + -0x20);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x20)" identifier = (pointer_expression "*(int *)(puVar13 + -0x20)" * (cast_expression "(int *)(puVar13 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);" (assignment_expression "*(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50)" (pointer_expression "*(undefined4 *)(puVar12 + -4)" * (cast_expression "(undefined4 *)(puVar12 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x50)" * (cast_expression "(undefined4 *)(puVar13 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x50)" ( (binary_expression "puVar13 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);" (assignment_expression "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48)" (pointer_expression "*(undefined4 *)(puVar12 + -8)" * (cast_expression "(undefined4 *)(puVar12 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x48)" * (cast_expression "(undefined4 *)(puVar13 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x48)" ( (binary_expression "puVar13 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);" (assignment_expression "*(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0)" (pointer_expression "*(uint *)(puVar12 + -0xc)" * (cast_expression "(uint *)(puVar12 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = (binary_expression "4 - (uint)(iVar11 == 0)" number_literal - (call_expression "(uint)(iVar11 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" * (cast_expression "(undefined1 **)(puVar12 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar13 + -0x2c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35ce4;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35ce4" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar15 = (longdouble)__gmpn_get_d();" (assignment_expression "lVar15 = (longdouble)__gmpn_get_d()" identifier = (cast_expression "(longdouble)__gmpn_get_d()" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "__gmpn_get_d()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }" if (parenthesized_expression "(*(int *)(puVar13 + -0x30) != 0)" ( (binary_expression "*(int *)(puVar13 + -0x30) != 0" (pointer_expression "*(int *)(puVar13 + -0x30)" * (cast_expression "(int *)(puVar13 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x30)" ( (binary_expression "puVar13 + -0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }" { (expression_statement "*(double *)(puVar13 + -0x40) = (double)lVar15;" (assignment_expression "*(double *)(puVar13 + -0x40) = (double)lVar15" (pointer_expression "*(double *)(puVar13 + -0x40)" * (cast_expression "(double *)(puVar13 + -0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) = (cast_expression "(double)lVar15" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "*(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);" (assignment_expression "*(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30)" (pointer_expression "*(int *)(puVar12 + -0x10)" * (cast_expression "(int *)(puVar12 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(int *)(puVar13 + -0x30)" * (cast_expression "(int *)(puVar13 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x30)" ( (binary_expression "puVar13 + -0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35d3c;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35d3c" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar15 = (longdouble)*(double *)(puVar13 + -0x40);" (assignment_expression "lVar15 = (longdouble)*(double *)(puVar13 + -0x40)" identifier = (binary_expression "(longdouble)*(double *)(puVar13 + -0x40)" (parenthesized_expression "(longdouble)" ( identifier )) * (cast_expression "(double *)(puVar13 + -0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) ))))) ;) })) }))) (if_statement "if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }" if (parenthesized_expression "(*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar13 + -0x1c)" * (cast_expression "(int *)(puVar13 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return lVar15;\n  }" { (return_statement "return lVar15;" return identifier ;) })) comment (expression_statement "*(undefined4 *)(puVar12 + -4) = 0x35d4b;" (assignment_expression "*(undefined4 *)(puVar12 + -4) = 0x35d4b" (pointer_expression "*(undefined4 *)(puVar12 + -4)" * (cast_expression "(undefined4 *)(puVar12 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007ebe0();" (call_expression "FUN_0007ebe0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\ndouble __gmpq_get_d(mpq_srcptr src)\n\n{\n  int iVar1;\n  void *pvVar2;\n  int iVar3;\n  mp_limb_t *pmVar4;\n  code *pcVar5;\n  int iVar6;\n  uint uVar7;\n  void *pvVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int in_GS_OFFSET;\n  double dVar14;\n  undefined1 auStack_6c [12];\n  void *local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  mp_limb_t *local_50;\n  uint local_4c;\n  int local_48;\n  double local_44;\n  tmp_reentrant_t *__tmp_marker;\n  mp_limb_t qarr [4];\n  \n  puVar12 = auStack_6c;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4c = (src->_mp_num)._mp_size;\n  uVar7 = (src->_mp_den)._mp_size;\n  if (local_4c == 0) {\n    dVar14 = 0.0;\n  }\n  else {\n    pmVar4 = (src->_mp_num)._mp_d;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f);\n    local_50 = (src->_mp_den)._mp_d;\n    uVar10 = (int)uVar7 >> 0x1f;\n    local_48 = iVar9;\n    iVar13 = (uVar7 ^ uVar10) - uVar10;\n    iVar6 = 3 - (iVar9 - iVar13);\n    local_54 = iVar6 * -0x20;\n    iVar11 = iVar6;\n    if (iVar6 < 0) {\n      iVar1 = (iVar9 - iVar13) + -3;\n      pmVar4 = pmVar4 + iVar1;\n      iVar11 = iVar1 + iVar6;\n      local_48 = iVar9 - iVar1;\n    }\n    local_44 = (double)CONCAT44(local_44._4_4_,pmVar4);\n    local_58 = iVar6 + iVar9;\n    iVar6 = iVar6 + iVar9 + iVar13;\n    if (iVar11 < 1) {\n      iVar6 = iVar13;\n    }\n    uVar7 = iVar6 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_6c + iVar6;\n      pvVar8 = (void *)((int)&local_60 + iVar6);\n    }\n    else {\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }\n    if (0 < iVar11) {\n      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);\n      local_60 = pvVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(void **)(puVar12 + -0x10) = pvVar2;\n      local_5c = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = local_5c;\n      *(int *)(puVar12 + -8) = local_48;\n      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;\n      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;\n      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar5)();\n      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);\n      local_48 = local_58;\n      pvVar8 = local_60;\n    }\n    *(int *)(puVar12 + -8) = iVar13;\n    *(mp_limb_t **)(puVar12 + -0xc) = local_50;\n    *(int *)(puVar12 + -0x10) = local_48;\n    *(undefined4 *)(puVar12 + -0x14) = local_44._0_4_;\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(void **)(puVar12 + -0x1c) = pvVar8;\n    *(mp_limb_t **)(puVar12 + -0x20) = qarr;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8));\n    *(int *)(puVar12 + -4) = local_54;\n    *(uint *)(puVar12 + -8) = local_4c;\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0);\n    *(mp_limb_t **)(puVar12 + -0x10) = qarr;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4));\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_44 = dVar14;\n      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));\n      dVar14 = local_44;\n    }\n  }\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return dVar14;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "double __gmpq_get_d(mpq_srcptr src)\n\n{\n  int iVar1;\n  void *pvVar2;\n  int iVar3;\n  mp_limb_t *pmVar4;\n  code *pcVar5;\n  int iVar6;\n  uint uVar7;\n  void *pvVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int in_GS_OFFSET;\n  double dVar14;\n  undefined1 auStack_6c [12];\n  void *local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  mp_limb_t *local_50;\n  uint local_4c;\n  int local_48;\n  double local_44;\n  tmp_reentrant_t *__tmp_marker;\n  mp_limb_t qarr [4];\n  \n  puVar12 = auStack_6c;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4c = (src->_mp_num)._mp_size;\n  uVar7 = (src->_mp_den)._mp_size;\n  if (local_4c == 0) {\n    dVar14 = 0.0;\n  }\n  else {\n    pmVar4 = (src->_mp_num)._mp_d;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f);\n    local_50 = (src->_mp_den)._mp_d;\n    uVar10 = (int)uVar7 >> 0x1f;\n    local_48 = iVar9;\n    iVar13 = (uVar7 ^ uVar10) - uVar10;\n    iVar6 = 3 - (iVar9 - iVar13);\n    local_54 = iVar6 * -0x20;\n    iVar11 = iVar6;\n    if (iVar6 < 0) {\n      iVar1 = (iVar9 - iVar13) + -3;\n      pmVar4 = pmVar4 + iVar1;\n      iVar11 = iVar1 + iVar6;\n      local_48 = iVar9 - iVar1;\n    }\n    local_44 = (double)CONCAT44(local_44._4_4_,pmVar4);\n    local_58 = iVar6 + iVar9;\n    iVar6 = iVar6 + iVar9 + iVar13;\n    if (iVar11 < 1) {\n      iVar6 = iVar13;\n    }\n    uVar7 = iVar6 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_6c + iVar6;\n      pvVar8 = (void *)((int)&local_60 + iVar6);\n    }\n    else {\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }\n    if (0 < iVar11) {\n      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);\n      local_60 = pvVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(void **)(puVar12 + -0x10) = pvVar2;\n      local_5c = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = local_5c;\n      *(int *)(puVar12 + -8) = local_48;\n      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;\n      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;\n      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar5)();\n      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);\n      local_48 = local_58;\n      pvVar8 = local_60;\n    }\n    *(int *)(puVar12 + -8) = iVar13;\n    *(mp_limb_t **)(puVar12 + -0xc) = local_50;\n    *(int *)(puVar12 + -0x10) = local_48;\n    *(undefined4 *)(puVar12 + -0x14) = local_44._0_4_;\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(void **)(puVar12 + -0x1c) = pvVar8;\n    *(mp_limb_t **)(puVar12 + -0x20) = qarr;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8));\n    *(int *)(puVar12 + -4) = local_54;\n    *(uint *)(puVar12 + -8) = local_4c;\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0);\n    *(mp_limb_t **)(puVar12 + -0x10) = qarr;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4));\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_44 = dVar14;\n      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));\n      dVar14 = local_44;\n    }\n  }\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return dVar14;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "__gmpq_get_d(mpq_srcptr src)" identifier (parameter_list "(mpq_srcptr src)" ( (parameter_declaration "mpq_srcptr src" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  void *pvVar2;\n  int iVar3;\n  mp_limb_t *pmVar4;\n  code *pcVar5;\n  int iVar6;\n  uint uVar7;\n  void *pvVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  undefined1 *puVar12;\n  int iVar13;\n  int in_GS_OFFSET;\n  double dVar14;\n  undefined1 auStack_6c [12];\n  void *local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  mp_limb_t *local_50;\n  uint local_4c;\n  int local_48;\n  double local_44;\n  tmp_reentrant_t *__tmp_marker;\n  mp_limb_t qarr [4];\n  \n  puVar12 = auStack_6c;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4c = (src->_mp_num)._mp_size;\n  uVar7 = (src->_mp_den)._mp_size;\n  if (local_4c == 0) {\n    dVar14 = 0.0;\n  }\n  else {\n    pmVar4 = (src->_mp_num)._mp_d;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f);\n    local_50 = (src->_mp_den)._mp_d;\n    uVar10 = (int)uVar7 >> 0x1f;\n    local_48 = iVar9;\n    iVar13 = (uVar7 ^ uVar10) - uVar10;\n    iVar6 = 3 - (iVar9 - iVar13);\n    local_54 = iVar6 * -0x20;\n    iVar11 = iVar6;\n    if (iVar6 < 0) {\n      iVar1 = (iVar9 - iVar13) + -3;\n      pmVar4 = pmVar4 + iVar1;\n      iVar11 = iVar1 + iVar6;\n      local_48 = iVar9 - iVar1;\n    }\n    local_44 = (double)CONCAT44(local_44._4_4_,pmVar4);\n    local_58 = iVar6 + iVar9;\n    iVar6 = iVar6 + iVar9 + iVar13;\n    if (iVar11 < 1) {\n      iVar6 = iVar13;\n    }\n    uVar7 = iVar6 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_6c + iVar6;\n      pvVar8 = (void *)((int)&local_60 + iVar6);\n    }\n    else {\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }\n    if (0 < iVar11) {\n      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);\n      local_60 = pvVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(void **)(puVar12 + -0x10) = pvVar2;\n      local_5c = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = local_5c;\n      *(int *)(puVar12 + -8) = local_48;\n      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;\n      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;\n      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar5)();\n      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);\n      local_48 = local_58;\n      pvVar8 = local_60;\n    }\n    *(int *)(puVar12 + -8) = iVar13;\n    *(mp_limb_t **)(puVar12 + -0xc) = local_50;\n    *(int *)(puVar12 + -0x10) = local_48;\n    *(undefined4 *)(puVar12 + -0x14) = local_44._0_4_;\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(void **)(puVar12 + -0x1c) = pvVar8;\n    *(mp_limb_t **)(puVar12 + -0x20) = qarr;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8));\n    *(int *)(puVar12 + -4) = local_54;\n    *(uint *)(puVar12 + -8) = local_4c;\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0);\n    *(mp_limb_t **)(puVar12 + -0x10) = qarr;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4));\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_44 = dVar14;\n      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));\n      dVar14 = local_44;\n    }\n  }\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return dVar14;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "void *pvVar2;" primitive_type (pointer_declarator "*pvVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "mp_limb_t *pmVar4;" type_identifier (pointer_declarator "*pmVar4" * identifier) ;) (declaration "code *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "void *pvVar8;" primitive_type (pointer_declarator "*pvVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "undefined1 auStack_6c [12];" type_identifier (array_declarator "auStack_6c [12]" identifier [ number_literal ]) ;) (declaration "void *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "mp_limb_t *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "double local_44;" primitive_type identifier ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "mp_limb_t qarr [4];" type_identifier (array_declarator "qarr [4]" identifier [ number_literal ]) ;) (expression_statement "puVar12 = auStack_6c;" (assignment_expression "puVar12 = auStack_6c" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_4c = (src->_mp_num)._mp_size;" (assignment_expression "local_4c = (src->_mp_num)._mp_size" identifier = (field_expression "(src->_mp_num)._mp_size" (parenthesized_expression "(src->_mp_num)" ( (field_expression "src->_mp_num" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar7 = (src->_mp_den)._mp_size;" (assignment_expression "uVar7 = (src->_mp_den)._mp_size" identifier = (field_expression "(src->_mp_den)._mp_size" (parenthesized_expression "(src->_mp_den)" ( (field_expression "src->_mp_den" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (local_4c == 0) {\n    dVar14 = 0.0;\n  }\n  else {\n    pmVar4 = (src->_mp_num)._mp_d;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f);\n    local_50 = (src->_mp_den)._mp_d;\n    uVar10 = (int)uVar7 >> 0x1f;\n    local_48 = iVar9;\n    iVar13 = (uVar7 ^ uVar10) - uVar10;\n    iVar6 = 3 - (iVar9 - iVar13);\n    local_54 = iVar6 * -0x20;\n    iVar11 = iVar6;\n    if (iVar6 < 0) {\n      iVar1 = (iVar9 - iVar13) + -3;\n      pmVar4 = pmVar4 + iVar1;\n      iVar11 = iVar1 + iVar6;\n      local_48 = iVar9 - iVar1;\n    }\n    local_44 = (double)CONCAT44(local_44._4_4_,pmVar4);\n    local_58 = iVar6 + iVar9;\n    iVar6 = iVar6 + iVar9 + iVar13;\n    if (iVar11 < 1) {\n      iVar6 = iVar13;\n    }\n    uVar7 = iVar6 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_6c + iVar6;\n      pvVar8 = (void *)((int)&local_60 + iVar6);\n    }\n    else {\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }\n    if (0 < iVar11) {\n      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);\n      local_60 = pvVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(void **)(puVar12 + -0x10) = pvVar2;\n      local_5c = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = local_5c;\n      *(int *)(puVar12 + -8) = local_48;\n      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;\n      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;\n      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar5)();\n      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);\n      local_48 = local_58;\n      pvVar8 = local_60;\n    }\n    *(int *)(puVar12 + -8) = iVar13;\n    *(mp_limb_t **)(puVar12 + -0xc) = local_50;\n    *(int *)(puVar12 + -0x10) = local_48;\n    *(undefined4 *)(puVar12 + -0x14) = local_44._0_4_;\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(void **)(puVar12 + -0x1c) = pvVar8;\n    *(mp_limb_t **)(puVar12 + -0x20) = qarr;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8));\n    *(int *)(puVar12 + -4) = local_54;\n    *(uint *)(puVar12 + -8) = local_4c;\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0);\n    *(mp_limb_t **)(puVar12 + -0x10) = qarr;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4));\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_44 = dVar14;\n      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));\n      dVar14 = local_44;\n    }\n  }" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\n    dVar14 = 0.0;\n  }" { (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n    pmVar4 = (src->_mp_num)._mp_d;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f);\n    local_50 = (src->_mp_den)._mp_d;\n    uVar10 = (int)uVar7 >> 0x1f;\n    local_48 = iVar9;\n    iVar13 = (uVar7 ^ uVar10) - uVar10;\n    iVar6 = 3 - (iVar9 - iVar13);\n    local_54 = iVar6 * -0x20;\n    iVar11 = iVar6;\n    if (iVar6 < 0) {\n      iVar1 = (iVar9 - iVar13) + -3;\n      pmVar4 = pmVar4 + iVar1;\n      iVar11 = iVar1 + iVar6;\n      local_48 = iVar9 - iVar1;\n    }\n    local_44 = (double)CONCAT44(local_44._4_4_,pmVar4);\n    local_58 = iVar6 + iVar9;\n    iVar6 = iVar6 + iVar9 + iVar13;\n    if (iVar11 < 1) {\n      iVar6 = iVar13;\n    }\n    uVar7 = iVar6 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_6c + iVar6;\n      pvVar8 = (void *)((int)&local_60 + iVar6);\n    }\n    else {\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }\n    if (0 < iVar11) {\n      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);\n      local_60 = pvVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(void **)(puVar12 + -0x10) = pvVar2;\n      local_5c = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = local_5c;\n      *(int *)(puVar12 + -8) = local_48;\n      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;\n      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;\n      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar5)();\n      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);\n      local_48 = local_58;\n      pvVar8 = local_60;\n    }\n    *(int *)(puVar12 + -8) = iVar13;\n    *(mp_limb_t **)(puVar12 + -0xc) = local_50;\n    *(int *)(puVar12 + -0x10) = local_48;\n    *(undefined4 *)(puVar12 + -0x14) = local_44._0_4_;\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(void **)(puVar12 + -0x1c) = pvVar8;\n    *(mp_limb_t **)(puVar12 + -0x20) = qarr;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8));\n    *(int *)(puVar12 + -4) = local_54;\n    *(uint *)(puVar12 + -8) = local_4c;\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0);\n    *(mp_limb_t **)(puVar12 + -0x10) = qarr;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4));\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_44 = dVar14;\n      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));\n      dVar14 = local_44;\n    }\n  }" else (compound_statement "{\n    pmVar4 = (src->_mp_num)._mp_d;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f);\n    local_50 = (src->_mp_den)._mp_d;\n    uVar10 = (int)uVar7 >> 0x1f;\n    local_48 = iVar9;\n    iVar13 = (uVar7 ^ uVar10) - uVar10;\n    iVar6 = 3 - (iVar9 - iVar13);\n    local_54 = iVar6 * -0x20;\n    iVar11 = iVar6;\n    if (iVar6 < 0) {\n      iVar1 = (iVar9 - iVar13) + -3;\n      pmVar4 = pmVar4 + iVar1;\n      iVar11 = iVar1 + iVar6;\n      local_48 = iVar9 - iVar1;\n    }\n    local_44 = (double)CONCAT44(local_44._4_4_,pmVar4);\n    local_58 = iVar6 + iVar9;\n    iVar6 = iVar6 + iVar9 + iVar13;\n    if (iVar11 < 1) {\n      iVar6 = iVar13;\n    }\n    uVar7 = iVar6 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_6c + iVar6;\n      pvVar8 = (void *)((int)&local_60 + iVar6);\n    }\n    else {\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }\n    if (0 < iVar11) {\n      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);\n      local_60 = pvVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(void **)(puVar12 + -0x10) = pvVar2;\n      local_5c = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = local_5c;\n      *(int *)(puVar12 + -8) = local_48;\n      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;\n      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;\n      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar5)();\n      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);\n      local_48 = local_58;\n      pvVar8 = local_60;\n    }\n    *(int *)(puVar12 + -8) = iVar13;\n    *(mp_limb_t **)(puVar12 + -0xc) = local_50;\n    *(int *)(puVar12 + -0x10) = local_48;\n    *(undefined4 *)(puVar12 + -0x14) = local_44._0_4_;\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(void **)(puVar12 + -0x1c) = pvVar8;\n    *(mp_limb_t **)(puVar12 + -0x20) = qarr;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8));\n    *(int *)(puVar12 + -4) = local_54;\n    *(uint *)(puVar12 + -8) = local_4c;\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0);\n    *(mp_limb_t **)(puVar12 + -0x10) = qarr;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4));\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_44 = dVar14;\n      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));\n      dVar14 = local_44;\n    }\n  }" { (expression_statement "pmVar4 = (src->_mp_num)._mp_d;" (assignment_expression "pmVar4 = (src->_mp_num)._mp_d" identifier = (field_expression "(src->_mp_num)._mp_d" (parenthesized_expression "(src->_mp_num)" ( (field_expression "src->_mp_num" identifier -> field_identifier) )) . field_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 "iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f);" (assignment_expression "iVar9 = (local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f)" identifier = (binary_expression "(local_4c ^ (int)local_4c >> 0x1f) - ((int)local_4c >> 0x1f)" (parenthesized_expression "(local_4c ^ (int)local_4c >> 0x1f)" ( (binary_expression "local_4c ^ (int)local_4c >> 0x1f" identifier ^ (binary_expression "(int)local_4c >> 0x1f" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)local_4c >> 0x1f)" ( (binary_expression "(int)local_4c >> 0x1f" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "local_50 = (src->_mp_den)._mp_d;" (assignment_expression "local_50 = (src->_mp_den)._mp_d" identifier = (field_expression "(src->_mp_den)._mp_d" (parenthesized_expression "(src->_mp_den)" ( (field_expression "src->_mp_den" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar10 = (int)uVar7 >> 0x1f;" (assignment_expression "uVar10 = (int)uVar7 >> 0x1f" identifier = (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "local_48 = iVar9;" (assignment_expression "local_48 = iVar9" identifier = identifier) ;) (expression_statement "iVar13 = (uVar7 ^ uVar10) - uVar10;" (assignment_expression "iVar13 = (uVar7 ^ uVar10) - uVar10" identifier = (binary_expression "(uVar7 ^ uVar10) - uVar10" (parenthesized_expression "(uVar7 ^ uVar10)" ( (binary_expression "uVar7 ^ uVar10" identifier ^ identifier) )) - identifier)) ;) (expression_statement "iVar6 = 3 - (iVar9 - iVar13);" (assignment_expression "iVar6 = 3 - (iVar9 - iVar13)" identifier = (binary_expression "3 - (iVar9 - iVar13)" number_literal - (parenthesized_expression "(iVar9 - iVar13)" ( (binary_expression "iVar9 - iVar13" identifier - identifier) )))) ;) (expression_statement "local_54 = iVar6 * -0x20;" (assignment_expression "local_54 = iVar6 * -0x20" identifier = (binary_expression "iVar6 * -0x20" identifier * number_literal)) ;) (expression_statement "iVar11 = iVar6;" (assignment_expression "iVar11 = iVar6" identifier = identifier) ;) (if_statement "if (iVar6 < 0) {\n      iVar1 = (iVar9 - iVar13) + -3;\n      pmVar4 = pmVar4 + iVar1;\n      iVar11 = iVar1 + iVar6;\n      local_48 = iVar9 - iVar1;\n    }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = (iVar9 - iVar13) + -3;\n      pmVar4 = pmVar4 + iVar1;\n      iVar11 = iVar1 + iVar6;\n      local_48 = iVar9 - iVar1;\n    }" { (expression_statement "iVar1 = (iVar9 - iVar13) + -3;" (assignment_expression "iVar1 = (iVar9 - iVar13) + -3" identifier = (binary_expression "(iVar9 - iVar13) + -3" (parenthesized_expression "(iVar9 - iVar13)" ( (binary_expression "iVar9 - iVar13" identifier - identifier) )) + number_literal)) ;) (expression_statement "pmVar4 = pmVar4 + iVar1;" (assignment_expression "pmVar4 = pmVar4 + iVar1" identifier = (binary_expression "pmVar4 + iVar1" identifier + identifier)) ;) (expression_statement "iVar11 = iVar1 + iVar6;" (assignment_expression "iVar11 = iVar1 + iVar6" identifier = (binary_expression "iVar1 + iVar6" identifier + identifier)) ;) (expression_statement "local_48 = iVar9 - iVar1;" (assignment_expression "local_48 = iVar9 - iVar1" identifier = (binary_expression "iVar9 - iVar1" identifier - identifier)) ;) })) (expression_statement "local_44 = (double)CONCAT44(local_44._4_4_,pmVar4);" (assignment_expression "local_44 = (double)CONCAT44(local_44._4_4_,pmVar4)" identifier = (cast_expression "(double)CONCAT44(local_44._4_4_,pmVar4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(local_44._4_4_,pmVar4)" identifier (argument_list "(local_44._4_4_,pmVar4)" ( (field_expression "local_44._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_58 = iVar6 + iVar9;" (assignment_expression "local_58 = iVar6 + iVar9" identifier = (binary_expression "iVar6 + iVar9" identifier + identifier)) ;) (expression_statement "iVar6 = iVar6 + iVar9 + iVar13;" (assignment_expression "iVar6 = iVar6 + iVar9 + iVar13" identifier = (binary_expression "iVar6 + iVar9 + iVar13" (binary_expression "iVar6 + iVar9" identifier + identifier) + identifier)) ;) (if_statement "if (iVar11 < 1) {\n      iVar6 = iVar13;\n    }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar6 = iVar13;\n    }" { (expression_statement "iVar6 = iVar13;" (assignment_expression "iVar6 = iVar13" identifier = identifier) ;) })) (expression_statement "uVar7 = iVar6 * 4;" (assignment_expression "uVar7 = iVar6 * 4" identifier = (binary_expression "iVar6 * 4" identifier * number_literal)) ;) (if_statement "if (uVar7 < 0x7f01) {\n      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_6c + iVar6;\n      pvVar8 = (void *)((int)&local_60 + iVar6);\n    }\n    else {\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar6 = -(uVar7 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_6c + iVar6;\n      pvVar8 = (void *)((int)&local_60 + iVar6);\n    }" { (expression_statement "iVar6 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar6 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar12 = auStack_6c + iVar6;" (assignment_expression "puVar12 = auStack_6c + iVar6" identifier = (binary_expression "auStack_6c + iVar6" identifier + identifier)) ;) (expression_statement "pvVar8 = (void *)((int)&local_60 + iVar6);" (assignment_expression "pvVar8 = (void *)((int)&local_60 + iVar6)" identifier = (cast_expression "(void *)((int)&local_60 + iVar6)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_60 + iVar6)" ( (binary_expression "(int)&local_60 + iVar6" (cast_expression "(int)&local_60" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_60" & identifier)) + identifier) )))) ;) }) (else_clause "else {\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }" else (compound_statement "{\n      local_5c = iVar11;\n      pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n      puVar12 = auStack_6c;\n      iVar11 = local_5c;\n    }" { (expression_statement "local_5c = iVar11;" (assignment_expression "local_5c = iVar11" identifier = identifier) ;) (expression_statement "pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);" (assignment_expression "pvVar8 = __gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7)" identifier = (call_expression "__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7)" identifier (argument_list "(&__tmp_marker,uVar7)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier )))) ;) (expression_statement "puVar12 = auStack_6c;" (assignment_expression "puVar12 = auStack_6c" identifier = identifier) ;) (expression_statement "iVar11 = local_5c;" (assignment_expression "iVar11 = local_5c" identifier = identifier) ;) }))) (if_statement "if (0 < iVar11) {\n      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);\n      local_60 = pvVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(void **)(puVar12 + -0x10) = pvVar2;\n      local_5c = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = local_5c;\n      *(int *)(puVar12 + -8) = local_48;\n      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;\n      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;\n      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar5)();\n      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);\n      local_48 = local_58;\n      pvVar8 = local_60;\n    }" if (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) (compound_statement "{\n      pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);\n      local_60 = pvVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(void **)(puVar12 + -0x10) = pvVar2;\n      local_5c = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = local_5c;\n      *(int *)(puVar12 + -8) = local_48;\n      *(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;\n      *(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;\n      pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar5)();\n      local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);\n      local_48 = local_58;\n      pvVar8 = local_60;\n    }" { (expression_statement "pvVar2 = (void *)((int)pvVar8 + iVar13 * 4);" (assignment_expression "pvVar2 = (void *)((int)pvVar8 + iVar13 * 4)" identifier = (cast_expression "(void *)((int)pvVar8 + iVar13 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar8 + iVar13 * 4)" ( (binary_expression "(int)pvVar8 + iVar13 * 4" (cast_expression "(int)pvVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar13 * 4" identifier * number_literal)) )))) ;) (expression_statement "local_60 = pvVar8;" (assignment_expression "local_60 = pvVar8" identifier = identifier) ;) (expression_statement "*(int *)(puVar12 + -8) = iVar11 << 2;" (assignment_expression "*(int *)(puVar12 + -8) = iVar11 << 2" (pointer_expression "*(int *)(puVar12 + -8)" * (cast_expression "(int *)(puVar12 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = (binary_expression "iVar11 << 2" identifier << number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" * (cast_expression "(undefined4 *)(puVar12 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(void **)(puVar12 + -0x10) = pvVar2;" (assignment_expression "*(void **)(puVar12 + -0x10) = pvVar2" (pointer_expression "*(void **)(puVar12 + -0x10)" * (cast_expression "(void **)(puVar12 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_5c = iVar11 << 2;" (assignment_expression "local_5c = iVar11 << 2" identifier = (binary_expression "iVar11 << 2" identifier << number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35c83;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35c83" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));" (call_expression "memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8))" identifier (argument_list "(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8))" ( (pointer_expression "*(void **)(puVar12 + -0x10)" * (cast_expression "(void **)(puVar12 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar12 + -0xc)" * (cast_expression "(int *)(puVar12 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar12 + -8)" * (cast_expression "(size_t *)(puVar12 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar11 = local_5c;" (assignment_expression "iVar11 = local_5c" identifier = identifier) ;) (expression_statement "*(int *)(puVar12 + -8) = local_48;" (assignment_expression "*(int *)(puVar12 + -8) = local_48" (pointer_expression "*(int *)(puVar12 + -8)" * (cast_expression "(int *)(puVar12 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = local_44._0_4_;" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = local_44._0_4_" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" * (cast_expression "(undefined4 *)(puVar12 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = (field_expression "local_44._0_4_" identifier . field_identifier)) ;) (expression_statement "*(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2;" (assignment_expression "*(int *)(puVar12 + -0x10) = iVar11 + (int)pvVar2" (pointer_expression "*(int *)(puVar12 + -0x10)" * (cast_expression "(int *)(puVar12 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (binary_expression "iVar11 + (int)pvVar2" identifier + (cast_expression "(int)pvVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28);" (assignment_expression "pcVar5 = *(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28)" identifier = (pointer_expression "*(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28)" * (cast_expression "(code **)(PTR___gmpn_cpuvec_0009dd94 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR___gmpn_cpuvec_0009dd94 + 0x28)" ( (binary_expression "PTR___gmpn_cpuvec_0009dd94 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35c9b;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35c9b" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar5)();" (call_expression "(*pcVar5)()" (parenthesized_expression "(*pcVar5)" ( (pointer_expression "*pcVar5" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_44 = (double)CONCAT44(local_44._4_4_,pvVar2);" (assignment_expression "local_44 = (double)CONCAT44(local_44._4_4_,pvVar2)" identifier = (cast_expression "(double)CONCAT44(local_44._4_4_,pvVar2)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(local_44._4_4_,pvVar2)" identifier (argument_list "(local_44._4_4_,pvVar2)" ( (field_expression "local_44._4_4_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_48 = local_58;" (assignment_expression "local_48 = local_58" identifier = identifier) ;) (expression_statement "pvVar8 = local_60;" (assignment_expression "pvVar8 = local_60" identifier = identifier) ;) })) (expression_statement "*(int *)(puVar12 + -8) = iVar13;" (assignment_expression "*(int *)(puVar12 + -8) = iVar13" (pointer_expression "*(int *)(puVar12 + -8)" * (cast_expression "(int *)(puVar12 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_limb_t **)(puVar12 + -0xc) = local_50;" (assignment_expression "*(mp_limb_t **)(puVar12 + -0xc) = local_50" (pointer_expression "*(mp_limb_t **)(puVar12 + -0xc)" * (cast_expression "(mp_limb_t **)(puVar12 + -0xc)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar12 + -0x10) = local_48;" (assignment_expression "*(int *)(puVar12 + -0x10) = local_48" (pointer_expression "*(int *)(puVar12 + -0x10)" * (cast_expression "(int *)(puVar12 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = local_44._0_4_;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = local_44._0_4_" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = (field_expression "local_44._0_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar12 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar12 + -0x18)" * (cast_expression "(undefined4 *)(puVar12 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x18)" ( (binary_expression "puVar12 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(void **)(puVar12 + -0x1c) = pvVar8;" (assignment_expression "*(void **)(puVar12 + -0x1c) = pvVar8" (pointer_expression "*(void **)(puVar12 + -0x1c)" * (cast_expression "(void **)(puVar12 + -0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x1c)" ( (binary_expression "puVar12 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_limb_t **)(puVar12 + -0x20) = qarr;" (assignment_expression "*(mp_limb_t **)(puVar12 + -0x20) = qarr" (pointer_expression "*(mp_limb_t **)(puVar12 + -0x20)" * (cast_expression "(mp_limb_t **)(puVar12 + -0x20)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x20)" ( (binary_expression "puVar12 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x24) = 0x35cc3;" (assignment_expression "*(undefined4 *)(puVar12 + -0x24) = 0x35cc3" (pointer_expression "*(undefined4 *)(puVar12 + -0x24)" * (cast_expression "(undefined4 *)(puVar12 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x24)" ( (binary_expression "puVar12 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8));" (call_expression "__gmpn_tdiv_qr(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8))" identifier (argument_list "(*(mp_ptr *)(puVar12 + -0x20),*(mp_ptr *)(puVar12 + -0x1c),\n                   *(mp_size_t *)(puVar12 + -0x18),*(mp_srcptr *)(puVar12 + -0x14),\n                   *(mp_size_t *)(puVar12 + -0x10),*(mp_srcptr *)(puVar12 + -0xc),\n                   *(mp_size_t *)(puVar12 + -8))" ( (pointer_expression "*(mp_ptr *)(puVar12 + -0x20)" * (cast_expression "(mp_ptr *)(puVar12 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x20)" ( (binary_expression "puVar12 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar12 + -0x1c)" * (cast_expression "(mp_ptr *)(puVar12 + -0x1c)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x1c)" ( (binary_expression "puVar12 + -0x1c" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar12 + -0x18)" * (cast_expression "(mp_size_t *)(puVar12 + -0x18)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x18)" ( (binary_expression "puVar12 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar12 + -0x14)" * (cast_expression "(mp_srcptr *)(puVar12 + -0x14)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar12 + -0x10)" * (cast_expression "(mp_size_t *)(puVar12 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar12 + -0xc)" * (cast_expression "(mp_srcptr *)(puVar12 + -0xc)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar12 + -8)" * (cast_expression "(mp_size_t *)(puVar12 + -8)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(puVar12 + -4) = local_54;" (assignment_expression "*(int *)(puVar12 + -4) = local_54" (pointer_expression "*(int *)(puVar12 + -4)" * (cast_expression "(int *)(puVar12 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar12 + -8) = local_4c;" (assignment_expression "*(uint *)(puVar12 + -8) = local_4c" (pointer_expression "*(uint *)(puVar12 + -8)" * (cast_expression "(uint *)(puVar12 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0);" (assignment_expression "*(uint *)(puVar12 + -0xc) = 4 - (uint)(qarr[3] == 0)" (pointer_expression "*(uint *)(puVar12 + -0xc)" * (cast_expression "(uint *)(puVar12 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = (binary_expression "4 - (uint)(qarr[3] == 0)" number_literal - (call_expression "(uint)(qarr[3] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(qarr[3] == 0)" ( (binary_expression "qarr[3] == 0" (subscript_expression "qarr[3]" identifier [ number_literal ]) == number_literal) ))))) ;) (expression_statement "*(mp_limb_t **)(puVar12 + -0x10) = qarr;" (assignment_expression "*(mp_limb_t **)(puVar12 + -0x10) = qarr" (pointer_expression "*(mp_limb_t **)(puVar12 + -0x10)" * (cast_expression "(mp_limb_t **)(puVar12 + -0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35ce4;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35ce4" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4));" (assignment_expression "dVar14 = __gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4))" identifier = (call_expression "__gmpn_get_d(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4))" identifier (argument_list "(*(mp_srcptr *)(puVar12 + -0x10),*(mp_size_t *)(puVar12 + -0xc),\n                          *(mp_size_t *)(puVar12 + -8),*(long *)(puVar12 + -4))" ( (pointer_expression "*(mp_srcptr *)(puVar12 + -0x10)" * (cast_expression "(mp_srcptr *)(puVar12 + -0x10)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar12 + -0xc)" * (cast_expression "(mp_size_t *)(puVar12 + -0xc)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar12 + -8)" * (cast_expression "(mp_size_t *)(puVar12 + -8)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) , (pointer_expression "*(long *)(puVar12 + -4)" * (cast_expression "(long *)(puVar12 + -4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) )))) ;) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_44 = dVar14;\n      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));\n      dVar14 = local_44;\n    }" if (parenthesized_expression "(__tmp_marker != (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = dVar14;\n      *(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));\n      dVar14 = local_44;\n    }" { (expression_statement "local_44 = dVar14;" (assignment_expression "local_44 = dVar14" identifier = identifier) ;) (expression_statement "*(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker;" (assignment_expression "*(tmp_reentrant_t **)(puVar12 + -0x10) = __tmp_marker" (pointer_expression "*(tmp_reentrant_t **)(puVar12 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar12 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35d3c;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35d3c" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10));" (call_expression "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar12 + -0x10))" identifier (argument_list "(*(tmp_reentrant_t **)(puVar12 + -0x10))" ( (pointer_expression "*(tmp_reentrant_t **)(puVar12 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar12 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) ))) ;) (expression_statement "dVar14 = local_44;" (assignment_expression "dVar14 = local_44" identifier = identifier) ;) })) }))) (if_statement "if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return dVar14;\n  }" if (parenthesized_expression "(iVar3 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar3 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return dVar14;\n  }" { (return_statement "return dVar14;" return identifier ;) })) comment (expression_statement "*(undefined4 *)(puVar12 + -4) = 0x35d4b;" (assignment_expression "*(undefined4 *)(puVar12 + -4) = 0x35d4b" (pointer_expression "*(undefined4 *)(puVar12 + -4)" * (cast_expression "(undefined4 *)(puVar12 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "longdouble __gmpq_get_d(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EBX;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int iVar14;\n  int in_GS_OFFSET;\n  longdouble lVar15;\n  undefined1 auStack_70 [92];\n  undefined4 uStack_14;\n  \n  puVar13 = &stack0xfffffffc;\n  uStack_14 = 0x35bbb;\n  entry();\n  puVar12 = auStack_70;\n  iVar11 = *(int *)(puVar13 + 8);\n  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  uVar10 = *(uint *)(iVar11 + 4);\n  uVar3 = *(uint *)(iVar11 + 0x10);\n  *(uint *)(puVar13 + -0x48) = uVar10;\n  if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }\n  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }\n                    \n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  FUN_0007ebe0();\n}\n\n" (function_definition "longdouble __gmpq_get_d(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EBX;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int iVar14;\n  int in_GS_OFFSET;\n  longdouble lVar15;\n  undefined1 auStack_70 [92];\n  undefined4 uStack_14;\n  \n  puVar13 = &stack0xfffffffc;\n  uStack_14 = 0x35bbb;\n  entry();\n  puVar12 = auStack_70;\n  iVar11 = *(int *)(puVar13 + 8);\n  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  uVar10 = *(uint *)(iVar11 + 4);\n  uVar3 = *(uint *)(iVar11 + 0x10);\n  *(uint *)(puVar13 + -0x48) = uVar10;\n  if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }\n  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }\n                    \n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  FUN_0007ebe0();\n}" type_identifier (function_declarator "__gmpq_get_d(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EBX;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int iVar14;\n  int in_GS_OFFSET;\n  longdouble lVar15;\n  undefined1 auStack_70 [92];\n  undefined4 uStack_14;\n  \n  puVar13 = &stack0xfffffffc;\n  uStack_14 = 0x35bbb;\n  entry();\n  puVar12 = auStack_70;\n  iVar11 = *(int *)(puVar13 + 8);\n  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  uVar10 = *(uint *)(iVar11 + 4);\n  uVar3 = *(uint *)(iVar11 + 0x10);\n  *(uint *)(puVar13 + -0x48) = uVar10;\n  if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }\n  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }\n                    \n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  FUN_0007ebe0();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar15;" type_identifier identifier ;) (declaration "undefined1 auStack_70 [92];" type_identifier (array_declarator "auStack_70 [92]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar13 = &stack0xfffffffc;" (assignment_expression "puVar13 = &stack0xfffffffc" identifier = (pointer_expression "&stack0xfffffffc" & identifier)) ;) (expression_statement "uStack_14 = 0x35bbb;" (assignment_expression "uStack_14 = 0x35bbb" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar12 = auStack_70;" (assignment_expression "puVar12 = auStack_70" identifier = identifier) ;) (expression_statement "iVar11 = *(int *)(puVar13 + 8);" (assignment_expression "iVar11 = *(int *)(puVar13 + 8)" identifier = (pointer_expression "*(int *)(puVar13 + 8)" * (cast_expression "(int *)(puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 8)" ( (binary_expression "puVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "*(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(undefined4 *)(puVar13 + -0x1c)" * (cast_expression "(undefined4 *)(puVar13 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(iVar11 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar11 + 4)" identifier = (pointer_expression "*(uint *)(iVar11 + 4)" * (cast_expression "(uint *)(iVar11 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(iVar11 + 0x10);" (assignment_expression "uVar3 = *(uint *)(iVar11 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x10)" * (cast_expression "(uint *)(iVar11 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar13 + -0x48) = uVar10;" (assignment_expression "*(uint *)(puVar13 + -0x48) = uVar10" (pointer_expression "*(uint *)(puVar13 + -0x48)" * (cast_expression "(uint *)(puVar13 + -0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x48)" ( (binary_expression "puVar13 + -0x48" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar15 = (longdouble)0;\n  }" { (expression_statement "lVar15 = (longdouble)0;" (assignment_expression "lVar15 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) }) (else_clause "else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" else (compound_statement "{\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" { (expression_statement "uVar4 = *(undefined4 *)(iVar11 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(iVar11 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 8)" * (cast_expression "(undefined4 *)(iVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar11 + 0x14);" (assignment_expression "uVar5 = *(undefined4 *)(iVar11 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" * (cast_expression "(undefined4 *)(iVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x30) = 0;" (assignment_expression "*(undefined4 *)(puVar13 + -0x30) = 0" (pointer_expression "*(undefined4 *)(puVar13 + -0x30)" * (cast_expression "(undefined4 *)(puVar13 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x30)" ( (binary_expression "puVar13 + -0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x40) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x40) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" * (cast_expression "(undefined4 *)(puVar13 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);" (assignment_expression "iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f)" identifier = (binary_expression "(uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f)" (parenthesized_expression "(uVar10 ^ (int)uVar10 >> 0x1f)" ( (binary_expression "uVar10 ^ (int)uVar10 >> 0x1f" identifier ^ (binary_expression "(int)uVar10 >> 0x1f" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar10 >> 0x1f)" ( (binary_expression "(int)uVar10 >> 0x1f" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x4c) = uVar5;" (assignment_expression "*(undefined4 *)(puVar13 + -0x4c) = uVar5" (pointer_expression "*(undefined4 *)(puVar13 + -0x4c)" * (cast_expression "(undefined4 *)(puVar13 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x4c)" ( (binary_expression "puVar13 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = (int)uVar3 >> 0x1f;" (assignment_expression "uVar10 = (int)uVar3 >> 0x1f" identifier = (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "*(int *)(puVar13 + -0x44) = iVar9;" (assignment_expression "*(int *)(puVar13 + -0x44) = iVar9" (pointer_expression "*(int *)(puVar13 + -0x44)" * (cast_expression "(int *)(puVar13 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar14 = (uVar3 ^ uVar10) - uVar10;" (assignment_expression "iVar14 = (uVar3 ^ uVar10) - uVar10" identifier = (binary_expression "(uVar3 ^ uVar10) - uVar10" (parenthesized_expression "(uVar3 ^ uVar10)" ( (binary_expression "uVar3 ^ uVar10" identifier ^ identifier) )) - identifier)) ;) (expression_statement "iVar7 = 3 - (iVar9 - iVar14);" (assignment_expression "iVar7 = 3 - (iVar9 - iVar14)" identifier = (binary_expression "3 - (iVar9 - iVar14)" number_literal - (parenthesized_expression "(iVar9 - iVar14)" ( (binary_expression "iVar9 - iVar14" identifier - identifier) )))) ;) (expression_statement "*(int *)(puVar13 + -0x50) = iVar7 * -0x20;" (assignment_expression "*(int *)(puVar13 + -0x50) = iVar7 * -0x20" (pointer_expression "*(int *)(puVar13 + -0x50)" * (cast_expression "(int *)(puVar13 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x50)" ( (binary_expression "puVar13 + -0x50" identifier + number_literal) )))) = (binary_expression "iVar7 * -0x20" identifier * number_literal)) ;) (expression_statement "iVar11 = iVar7;" (assignment_expression "iVar11 = iVar7" identifier = identifier) ;) (if_statement "if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }" { (expression_statement "iVar1 = (iVar9 - iVar14) + -3;" (assignment_expression "iVar1 = (iVar9 - iVar14) + -3" identifier = (binary_expression "(iVar9 - iVar14) + -3" (parenthesized_expression "(iVar9 - iVar14)" ( (binary_expression "iVar9 - iVar14" identifier - identifier) )) + number_literal)) ;) (expression_statement "*(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;" (assignment_expression "*(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4" (pointer_expression "*(int *)(puVar13 + -0x40)" * (cast_expression "(int *)(puVar13 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar13 + -0x40) + iVar1 * 4" (pointer_expression "*(int *)(puVar13 + -0x40)" * (cast_expression "(int *)(puVar13 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) + (binary_expression "iVar1 * 4" identifier * number_literal))) ;) (expression_statement "iVar11 = iVar1 + iVar7;" (assignment_expression "iVar11 = iVar1 + iVar7" identifier = (binary_expression "iVar1 + iVar7" identifier + identifier)) ;) (expression_statement "*(int *)(puVar13 + -0x44) = iVar9 - iVar1;" (assignment_expression "*(int *)(puVar13 + -0x44) = iVar9 - iVar1" (pointer_expression "*(int *)(puVar13 + -0x44)" * (cast_expression "(int *)(puVar13 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) )))) = (binary_expression "iVar9 - iVar1" identifier - identifier)) ;) })) (expression_statement "*(int *)(puVar13 + -0x54) = iVar7 + iVar9;" (assignment_expression "*(int *)(puVar13 + -0x54) = iVar7 + iVar9" (pointer_expression "*(int *)(puVar13 + -0x54)" * (cast_expression "(int *)(puVar13 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x54)" ( (binary_expression "puVar13 + -0x54" identifier + number_literal) )))) = (binary_expression "iVar7 + iVar9" identifier + identifier)) ;) (expression_statement "iVar7 = iVar7 + iVar9 + iVar14;" (assignment_expression "iVar7 = iVar7 + iVar9 + iVar14" identifier = (binary_expression "iVar7 + iVar9 + iVar14" (binary_expression "iVar7 + iVar9" identifier + identifier) + identifier)) ;) (if_statement "if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar7 = iVar14;\n    }" { (expression_statement "iVar7 = iVar14;" (assignment_expression "iVar7 = iVar14" identifier = identifier) ;) })) (expression_statement "uVar10 = iVar7 * 4;" (assignment_expression "uVar10 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (if_statement "if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" if (parenthesized_expression "(uVar10 < 0x7f01)" ( (binary_expression "uVar10 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }" { (expression_statement "iVar7 = -(uVar10 + 0x1b & 0xfffffff0);" (assignment_expression "iVar7 = -(uVar10 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar10 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar10 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar10 + 0x1b & 0xfffffff0" (binary_expression "uVar10 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar12 = auStack_70 + iVar7;" (assignment_expression "puVar12 = auStack_70 + iVar7" identifier = (binary_expression "auStack_70 + iVar7" identifier + identifier)) ;) (expression_statement "puVar8 = auStack_70 + iVar7;" (assignment_expression "puVar8 = auStack_70 + iVar7" identifier = (binary_expression "auStack_70 + iVar7" identifier + identifier)) ;) }) (else_clause "else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" else (compound_statement "{\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" { (expression_statement "*(int *)(puVar13 + -0x58) = iVar11;" (assignment_expression "*(int *)(puVar13 + -0x58) = iVar11" (pointer_expression "*(int *)(puVar13 + -0x58)" * (cast_expression "(int *)(puVar13 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x58)" ( (binary_expression "puVar13 + -0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);" (assignment_expression "puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" identifier = (cast_expression "(undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" identifier (argument_list "(puVar13 + -0x30,uVar10)" ( (binary_expression "puVar13 + -0x30" identifier + number_literal) , identifier ))))) ;) (expression_statement "puVar12 = auStack_70;" (assignment_expression "puVar12 = auStack_70" identifier = identifier) ;) (expression_statement "iVar11 = *(int *)(puVar13 + -0x58);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x58)" identifier = (pointer_expression "*(int *)(puVar13 + -0x58)" * (cast_expression "(int *)(puVar13 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x58)" ( (binary_expression "puVar13 + -0x58" identifier + number_literal) ))))) ;) }))) (if_statement "if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }" if (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) (compound_statement "{\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }" { (expression_statement "puVar2 = puVar8 + iVar14 * 4;" (assignment_expression "puVar2 = puVar8 + iVar14 * 4" identifier = (binary_expression "puVar8 + iVar14 * 4" identifier + (binary_expression "iVar14 * 4" identifier * number_literal))) ;) (expression_statement "*(undefined1 **)(puVar13 + -0x5c) = puVar8;" (assignment_expression "*(undefined1 **)(puVar13 + -0x5c) = puVar8" (pointer_expression "*(undefined1 **)(puVar13 + -0x5c)" * (cast_expression "(undefined1 **)(puVar13 + -0x5c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x5c)" ( (binary_expression "puVar13 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar12 + -8) = iVar11 << 2;" (assignment_expression "*(int *)(puVar12 + -8) = iVar11 << 2" (pointer_expression "*(int *)(puVar12 + -8)" * (cast_expression "(int *)(puVar12 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = (binary_expression "iVar11 << 2" identifier << number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" * (cast_expression "(undefined4 *)(puVar12 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar2;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar2" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" * (cast_expression "(undefined1 **)(puVar12 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0x58) = iVar11 << 2;" (assignment_expression "*(int *)(puVar13 + -0x58) = iVar11 << 2" (pointer_expression "*(int *)(puVar13 + -0x58)" * (cast_expression "(int *)(puVar13 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x58)" ( (binary_expression "puVar13 + -0x58" identifier + number_literal) )))) = (binary_expression "iVar11 << 2" identifier << number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35c83;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35c83" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));" (call_expression "memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8))" identifier (argument_list "(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8))" ( (pointer_expression "*(void **)(puVar12 + -0x10)" * (cast_expression "(void **)(puVar12 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(int *)(puVar12 + -0xc)" * (cast_expression "(int *)(puVar12 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar12 + -8)" * (cast_expression "(size_t *)(puVar12 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar11 = *(int *)(puVar13 + -0x58);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x58)" identifier = (pointer_expression "*(int *)(puVar13 + -0x58)" * (cast_expression "(int *)(puVar13 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x58)" ( (binary_expression "puVar13 + -0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(unaff_EBX + 0x681d9);" (assignment_expression "iVar7 = *(int *)(unaff_EBX + 0x681d9)" identifier = (pointer_expression "*(int *)(unaff_EBX + 0x681d9)" * (cast_expression "(int *)(unaff_EBX + 0x681d9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x681d9)" ( (binary_expression "unaff_EBX + 0x681d9" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);" (assignment_expression "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44)" (pointer_expression "*(undefined4 *)(puVar12 + -8)" * (cast_expression "(undefined4 *)(puVar12 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" * (cast_expression "(undefined4 *)(puVar13 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40)" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" * (cast_expression "(undefined4 *)(puVar12 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" * (cast_expression "(undefined4 *)(puVar13 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" * (cast_expression "(undefined1 **)(puVar12 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar2 + iVar11" identifier + identifier)) ;) (expression_statement "pcVar6 = *(code **)(iVar7 + 0x28);" (assignment_expression "pcVar6 = *(code **)(iVar7 + 0x28)" identifier = (pointer_expression "*(code **)(iVar7 + 0x28)" * (cast_expression "(code **)(iVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35c9b;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35c9b" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = *(undefined1 **)(puVar13 + -0x5c);" (assignment_expression "puVar8 = *(undefined1 **)(puVar13 + -0x5c)" identifier = (pointer_expression "*(undefined1 **)(puVar13 + -0x5c)" * (cast_expression "(undefined1 **)(puVar13 + -0x5c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x5c)" ( (binary_expression "puVar13 + -0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar13 + -0x40) = puVar2;" (assignment_expression "*(undefined1 **)(puVar13 + -0x40) = puVar2" (pointer_expression "*(undefined1 **)(puVar13 + -0x40)" * (cast_expression "(undefined1 **)(puVar13 + -0x40)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);" (assignment_expression "*(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54)" (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" * (cast_expression "(undefined4 *)(puVar13 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x54)" * (cast_expression "(undefined4 *)(puVar13 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x54)" ( (binary_expression "puVar13 + -0x54" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar12 + -8) = iVar14;" (assignment_expression "*(int *)(puVar12 + -8) = iVar14" (pointer_expression "*(int *)(puVar12 + -8)" * (cast_expression "(int *)(puVar12 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c)" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" * (cast_expression "(undefined4 *)(puVar12 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x4c)" * (cast_expression "(undefined4 *)(puVar13 + -0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x4c)" ( (binary_expression "puVar13 + -0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);" (assignment_expression "*(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44)" (pointer_expression "*(undefined4 *)(puVar12 + -0x10)" * (cast_expression "(undefined4 *)(puVar12 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" * (cast_expression "(undefined4 *)(puVar13 + -0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x44)" ( (binary_expression "puVar13 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40)" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" * (cast_expression "(undefined4 *)(puVar13 + -0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar12 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar12 + -0x18)" * (cast_expression "(undefined4 *)(puVar12 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x18)" ( (binary_expression "puVar12 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x1c) = puVar8;" (assignment_expression "*(undefined1 **)(puVar12 + -0x1c) = puVar8" (pointer_expression "*(undefined1 **)(puVar12 + -0x1c)" * (cast_expression "(undefined1 **)(puVar12 + -0x1c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x1c)" ( (binary_expression "puVar12 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;" (assignment_expression "*(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c" (pointer_expression "*(undefined1 **)(puVar12 + -0x20)" * (cast_expression "(undefined1 **)(puVar12 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x20)" ( (binary_expression "puVar12 + -0x20" identifier + number_literal) )))) = (binary_expression "puVar13 + -0x2c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x24) = 0x35cc3;" (assignment_expression "*(undefined4 *)(puVar12 + -0x24) = 0x35cc3" (pointer_expression "*(undefined4 *)(puVar12 + -0x24)" * (cast_expression "(undefined4 *)(puVar12 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x24)" ( (binary_expression "puVar12 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_tdiv_qr();" (call_expression "__gmpn_tdiv_qr()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(puVar13 + -0x20);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x20)" identifier = (pointer_expression "*(int *)(puVar13 + -0x20)" * (cast_expression "(int *)(puVar13 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);" (assignment_expression "*(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50)" (pointer_expression "*(undefined4 *)(puVar12 + -4)" * (cast_expression "(undefined4 *)(puVar12 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x50)" * (cast_expression "(undefined4 *)(puVar13 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x50)" ( (binary_expression "puVar13 + -0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);" (assignment_expression "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48)" (pointer_expression "*(undefined4 *)(puVar12 + -8)" * (cast_expression "(undefined4 *)(puVar12 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -8)" ( (binary_expression "puVar12 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -0x48)" * (cast_expression "(undefined4 *)(puVar13 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x48)" ( (binary_expression "puVar13 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);" (assignment_expression "*(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0)" (pointer_expression "*(uint *)(puVar12 + -0xc)" * (cast_expression "(uint *)(puVar12 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0xc)" ( (binary_expression "puVar12 + -0xc" identifier + number_literal) )))) = (binary_expression "4 - (uint)(iVar11 == 0)" number_literal - (call_expression "(uint)(iVar11 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" * (cast_expression "(undefined1 **)(puVar12 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar13 + -0x2c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35ce4;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35ce4" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar15 = (longdouble)__gmpn_get_d();" (assignment_expression "lVar15 = (longdouble)__gmpn_get_d()" identifier = (cast_expression "(longdouble)__gmpn_get_d()" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "__gmpn_get_d()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }" if (parenthesized_expression "(*(int *)(puVar13 + -0x30) != 0)" ( (binary_expression "*(int *)(puVar13 + -0x30) != 0" (pointer_expression "*(int *)(puVar13 + -0x30)" * (cast_expression "(int *)(puVar13 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x30)" ( (binary_expression "puVar13 + -0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }" { (expression_statement "*(double *)(puVar13 + -0x40) = (double)lVar15;" (assignment_expression "*(double *)(puVar13 + -0x40) = (double)lVar15" (pointer_expression "*(double *)(puVar13 + -0x40)" * (cast_expression "(double *)(puVar13 + -0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) )))) = (cast_expression "(double)lVar15" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "*(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);" (assignment_expression "*(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30)" (pointer_expression "*(int *)(puVar12 + -0x10)" * (cast_expression "(int *)(puVar12 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x10)" ( (binary_expression "puVar12 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(int *)(puVar13 + -0x30)" * (cast_expression "(int *)(puVar13 + -0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x30)" ( (binary_expression "puVar13 + -0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35d3c;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35d3c" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" * (cast_expression "(undefined4 *)(puVar12 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -0x14)" ( (binary_expression "puVar12 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar15 = (longdouble)*(double *)(puVar13 + -0x40);" (assignment_expression "lVar15 = (longdouble)*(double *)(puVar13 + -0x40)" identifier = (binary_expression "(longdouble)*(double *)(puVar13 + -0x40)" (parenthesized_expression "(longdouble)" ( identifier )) * (cast_expression "(double *)(puVar13 + -0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x40)" ( (binary_expression "puVar13 + -0x40" identifier + number_literal) ))))) ;) })) }))) (if_statement "if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }" if (parenthesized_expression "(*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar13 + -0x1c)" * (cast_expression "(int *)(puVar13 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return lVar15;\n  }" { (return_statement "return lVar15;" return identifier ;) })) (expression_statement "*(undefined4 *)(puVar12 + -4) = 0x35d4b;" (assignment_expression "*(undefined4 *)(puVar12 + -4) = 0x35d4b" (pointer_expression "*(undefined4 *)(puVar12 + -4)" * (cast_expression "(undefined4 *)(puVar12 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007ebe0();" (call_expression "FUN_0007ebe0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , 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) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression LIT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "longdouble __gmpq_get_d(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EBX;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int iVar14;\n  int in_GS_OFFSET;\n  longdouble lVar15;\n  undefined1 auStack_70 [92];\n  undefined4 uStack_14;\n  \n  puVar13 = &stack0xfffffffc;\n  uStack_14 = 0x35bbb;\n  entry();\n  puVar12 = auStack_70;\n  iVar11 = *(int *)(puVar13 + 8);\n  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  uVar10 = *(uint *)(iVar11 + 4);\n  uVar3 = *(uint *)(iVar11 + 0x10);\n  *(uint *)(puVar13 + -0x48) = uVar10;\n  if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }\n  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }\n                    \n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  FUN_0007ebe0();\n}" (type_identifier "longdouble") (function_declarator "__gmpq_get_d(void)" (identifier "__gmpq_get_d") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  uint uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  code *pcVar6;\n  int iVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EBX;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int iVar14;\n  int in_GS_OFFSET;\n  longdouble lVar15;\n  undefined1 auStack_70 [92];\n  undefined4 uStack_14;\n  \n  puVar13 = &stack0xfffffffc;\n  uStack_14 = 0x35bbb;\n  entry();\n  puVar12 = auStack_70;\n  iVar11 = *(int *)(puVar13 + 8);\n  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  uVar10 = *(uint *)(iVar11 + 4);\n  uVar3 = *(uint *)(iVar11 + 0x10);\n  *(uint *)(puVar13 + -0x48) = uVar10;\n  if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }\n  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }\n                    \n  *(undefined4 *)(puVar12 + -4) = 0x35d4b;\n  FUN_0007ebe0();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int unaff_EBX;" (primitive_type "int") (identifier "unaff_EBX") (; ";")) (declaration "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "longdouble lVar15;" (type_identifier "longdouble") (identifier "lVar15") (; ";")) (declaration "undefined1 auStack_70 [92];" (type_identifier "undefined1") (array_declarator "auStack_70 [92]" (identifier "auStack_70") ([ "[") (number_literal "92") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "puVar13 = &stack0xfffffffc;" (assignment_expression "puVar13 = &stack0xfffffffc" (identifier "puVar13") (= "=") (pointer_expression "&stack0xfffffffc" (& "&") (identifier "stack0xfffffffc"))) (; ";")) (expression_statement "uStack_14 = 0x35bbb;" (assignment_expression "uStack_14 = 0x35bbb" (identifier "uStack_14") (= "=") (number_literal "0x35bbb")) (; ";")) (expression_statement "entry();" (call_expression "entry()" (identifier "entry") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar12 = auStack_70;" (assignment_expression "puVar12 = auStack_70" (identifier "puVar12") (= "=") (identifier "auStack_70")) (; ";")) (expression_statement "iVar11 = *(int *)(puVar13 + 8);" (assignment_expression "iVar11 = *(int *)(puVar13 + 8)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar13 + 8)" (* "*") (cast_expression "(int *)(puVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 8)" (( "(") (binary_expression "puVar13 + 8" (identifier "puVar13") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "*(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(undefined4 *)(puVar13 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x1c)" (( "(") (binary_expression "puVar13 + -0x1c" (identifier "puVar13") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(iVar11 + 4);" (assignment_expression "uVar10 = *(uint *)(iVar11 + 4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(iVar11 + 4)" (* "*") (cast_expression "(uint *)(iVar11 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(iVar11 + 0x10);" (assignment_expression "uVar3 = *(uint *)(iVar11 + 0x10)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar11 + 0x10)" (* "*") (cast_expression "(uint *)(iVar11 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar13 + -0x48) = uVar10;" (assignment_expression "*(uint *)(puVar13 + -0x48) = uVar10" (pointer_expression "*(uint *)(puVar13 + -0x48)" (* "*") (cast_expression "(uint *)(puVar13 + -0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x48)" (( "(") (binary_expression "puVar13 + -0x48" (identifier "puVar13") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (uVar10 == 0) {\n    lVar15 = (longdouble)0;\n  }\n  else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar15 = (longdouble)0;\n  }" ({ "{") (expression_statement "lVar15 = (longdouble)0;" (assignment_expression "lVar15 = (longdouble)0" (identifier "lVar15") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = *(undefined4 *)(iVar11 + 8);\n    uVar5 = *(undefined4 *)(iVar11 + 0x14);\n    *(undefined4 *)(puVar13 + -0x30) = 0;\n    *(undefined4 *)(puVar13 + -0x40) = uVar4;\n    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);\n    *(undefined4 *)(puVar13 + -0x4c) = uVar5;\n    uVar10 = (int)uVar3 >> 0x1f;\n    *(int *)(puVar13 + -0x44) = iVar9;\n    iVar14 = (uVar3 ^ uVar10) - uVar10;\n    iVar7 = 3 - (iVar9 - iVar14);\n    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;\n    iVar11 = iVar7;\n    if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }\n    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;\n    iVar7 = iVar7 + iVar9 + iVar14;\n    if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }\n    uVar10 = iVar7 * 4;\n    if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }\n    if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }\n    *(int *)(puVar12 + -8) = iVar14;\n    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);\n    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);\n    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);\n    *(undefined4 *)(puVar12 + -0x18) = 0;\n    *(undefined1 **)(puVar12 + -0x1c) = puVar8;\n    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;\n    __gmpn_tdiv_qr();\n    iVar11 = *(int *)(puVar13 + -0x20);\n    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);\n    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);\n    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);\n    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;\n    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;\n    lVar15 = (longdouble)__gmpn_get_d();\n    if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }\n  }" ({ "{") (expression_statement "uVar4 = *(undefined4 *)(iVar11 + 8);" (assignment_expression "uVar4 = *(undefined4 *)(iVar11 + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(iVar11 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 8)" (( "(") (binary_expression "iVar11 + 8" (identifier "iVar11") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(iVar11 + 0x14);" (assignment_expression "uVar5 = *(undefined4 *)(iVar11 + 0x14)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x30) = 0;" (assignment_expression "*(undefined4 *)(puVar13 + -0x30) = 0" (pointer_expression "*(undefined4 *)(puVar13 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x30)" (( "(") (binary_expression "puVar13 + -0x30" (identifier "puVar13") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x40) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x40) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x40)" (( "(") (binary_expression "puVar13 + -0x40" (identifier "puVar13") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);" (assignment_expression "iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f)" (identifier "iVar9") (= "=") (binary_expression "(uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f)" (parenthesized_expression "(uVar10 ^ (int)uVar10 >> 0x1f)" (( "(") (binary_expression "uVar10 ^ (int)uVar10 >> 0x1f" (identifier "uVar10") (^ "^") (binary_expression "(int)uVar10 >> 0x1f" (cast_expression "(int)uVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "0x1f"))) () ")")) (- "-") (parenthesized_expression "((int)uVar10 >> 0x1f)" (( "(") (binary_expression "(int)uVar10 >> 0x1f" (cast_expression "(int)uVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x4c) = uVar5;" (assignment_expression "*(undefined4 *)(puVar13 + -0x4c) = uVar5" (pointer_expression "*(undefined4 *)(puVar13 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x4c)" (( "(") (binary_expression "puVar13 + -0x4c" (identifier "puVar13") (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar10 = (int)uVar3 >> 0x1f;" (assignment_expression "uVar10 = (int)uVar3 >> 0x1f" (identifier "uVar10") (= "=") (binary_expression "(int)uVar3 >> 0x1f" (cast_expression "(int)uVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar3")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(int *)(puVar13 + -0x44) = iVar9;" (assignment_expression "*(int *)(puVar13 + -0x44) = iVar9" (pointer_expression "*(int *)(puVar13 + -0x44)" (* "*") (cast_expression "(int *)(puVar13 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x44)" (( "(") (binary_expression "puVar13 + -0x44" (identifier "puVar13") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar14 = (uVar3 ^ uVar10) - uVar10;" (assignment_expression "iVar14 = (uVar3 ^ uVar10) - uVar10" (identifier "iVar14") (= "=") (binary_expression "(uVar3 ^ uVar10) - uVar10" (parenthesized_expression "(uVar3 ^ uVar10)" (( "(") (binary_expression "uVar3 ^ uVar10" (identifier "uVar3") (^ "^") (identifier "uVar10")) () ")")) (- "-") (identifier "uVar10"))) (; ";")) (expression_statement "iVar7 = 3 - (iVar9 - iVar14);" (assignment_expression "iVar7 = 3 - (iVar9 - iVar14)" (identifier "iVar7") (= "=") (binary_expression "3 - (iVar9 - iVar14)" (number_literal "3") (- "-") (parenthesized_expression "(iVar9 - iVar14)" (( "(") (binary_expression "iVar9 - iVar14" (identifier "iVar9") (- "-") (identifier "iVar14")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar13 + -0x50) = iVar7 * -0x20;" (assignment_expression "*(int *)(puVar13 + -0x50) = iVar7 * -0x20" (pointer_expression "*(int *)(puVar13 + -0x50)" (* "*") (cast_expression "(int *)(puVar13 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x50)" (( "(") (binary_expression "puVar13 + -0x50" (identifier "puVar13") (+ "+") (number_literal "-0x50")) () ")")))) (= "=") (binary_expression "iVar7 * -0x20" (identifier "iVar7") (* "*") (number_literal "-0x20"))) (; ";")) (expression_statement "iVar11 = iVar7;" (assignment_expression "iVar11 = iVar7" (identifier "iVar11") (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 < 0) {\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = (iVar9 - iVar14) + -3;\n      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;\n      iVar11 = iVar1 + iVar7;\n      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;\n    }" ({ "{") (expression_statement "iVar1 = (iVar9 - iVar14) + -3;" (assignment_expression "iVar1 = (iVar9 - iVar14) + -3" (identifier "iVar1") (= "=") (binary_expression "(iVar9 - iVar14) + -3" (parenthesized_expression "(iVar9 - iVar14)" (( "(") (binary_expression "iVar9 - iVar14" (identifier "iVar9") (- "-") (identifier "iVar14")) () ")")) (+ "+") (number_literal "-3"))) (; ";")) (expression_statement "*(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;" (assignment_expression "*(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4" (pointer_expression "*(int *)(puVar13 + -0x40)" (* "*") (cast_expression "(int *)(puVar13 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x40)" (( "(") (binary_expression "puVar13 + -0x40" (identifier "puVar13") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (binary_expression "*(int *)(puVar13 + -0x40) + iVar1 * 4" (pointer_expression "*(int *)(puVar13 + -0x40)" (* "*") (cast_expression "(int *)(puVar13 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x40)" (( "(") (binary_expression "puVar13 + -0x40" (identifier "puVar13") (+ "+") (number_literal "-0x40")) () ")")))) (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar11 = iVar1 + iVar7;" (assignment_expression "iVar11 = iVar1 + iVar7" (identifier "iVar11") (= "=") (binary_expression "iVar1 + iVar7" (identifier "iVar1") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "*(int *)(puVar13 + -0x44) = iVar9 - iVar1;" (assignment_expression "*(int *)(puVar13 + -0x44) = iVar9 - iVar1" (pointer_expression "*(int *)(puVar13 + -0x44)" (* "*") (cast_expression "(int *)(puVar13 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x44)" (( "(") (binary_expression "puVar13 + -0x44" (identifier "puVar13") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (binary_expression "iVar9 - iVar1" (identifier "iVar9") (- "-") (identifier "iVar1"))) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar13 + -0x54) = iVar7 + iVar9;" (assignment_expression "*(int *)(puVar13 + -0x54) = iVar7 + iVar9" (pointer_expression "*(int *)(puVar13 + -0x54)" (* "*") (cast_expression "(int *)(puVar13 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x54)" (( "(") (binary_expression "puVar13 + -0x54" (identifier "puVar13") (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (binary_expression "iVar7 + iVar9" (identifier "iVar7") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar7 = iVar7 + iVar9 + iVar14;" (assignment_expression "iVar7 = iVar7 + iVar9 + iVar14" (identifier "iVar7") (= "=") (binary_expression "iVar7 + iVar9 + iVar14" (binary_expression "iVar7 + iVar9" (identifier "iVar7") (+ "+") (identifier "iVar9")) (+ "+") (identifier "iVar14"))) (; ";")) (if_statement "if (iVar11 < 1) {\n      iVar7 = iVar14;\n    }" (if "if") (parenthesized_expression "(iVar11 < 1)" (( "(") (binary_expression "iVar11 < 1" (identifier "iVar11") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      iVar7 = iVar14;\n    }" ({ "{") (expression_statement "iVar7 = iVar14;" (assignment_expression "iVar7 = iVar14" (identifier "iVar7") (= "=") (identifier "iVar14")) (; ";")) (} "}"))) (expression_statement "uVar10 = iVar7 * 4;" (assignment_expression "uVar10 = iVar7 * 4" (identifier "uVar10") (= "=") (binary_expression "iVar7 * 4" (identifier "iVar7") (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar10 < 0x7f01) {\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }\n    else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" (if "if") (parenthesized_expression "(uVar10 < 0x7f01)" (( "(") (binary_expression "uVar10 < 0x7f01" (identifier "uVar10") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);\n      puVar12 = auStack_70 + iVar7;\n      puVar8 = auStack_70 + iVar7;\n    }" ({ "{") (expression_statement "iVar7 = -(uVar10 + 0x1b & 0xfffffff0);" (assignment_expression "iVar7 = -(uVar10 + 0x1b & 0xfffffff0)" (identifier "iVar7") (= "=") (unary_expression "-(uVar10 + 0x1b & 0xfffffff0)" (- "-") (parenthesized_expression "(uVar10 + 0x1b & 0xfffffff0)" (( "(") (binary_expression "uVar10 + 0x1b & 0xfffffff0" (binary_expression "uVar10 + 0x1b" (identifier "uVar10") (+ "+") (number_literal "0x1b")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "puVar12 = auStack_70 + iVar7;" (assignment_expression "puVar12 = auStack_70 + iVar7" (identifier "puVar12") (= "=") (binary_expression "auStack_70 + iVar7" (identifier "auStack_70") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "puVar8 = auStack_70 + iVar7;" (assignment_expression "puVar8 = auStack_70 + iVar7" (identifier "puVar8") (= "=") (binary_expression "auStack_70 + iVar7" (identifier "auStack_70") (+ "+") (identifier "iVar7"))) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" (else "else") (compound_statement "{\n      *(int *)(puVar13 + -0x58) = iVar11;\n      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);\n      puVar12 = auStack_70;\n      iVar11 = *(int *)(puVar13 + -0x58);\n    }" ({ "{") (expression_statement "*(int *)(puVar13 + -0x58) = iVar11;" (assignment_expression "*(int *)(puVar13 + -0x58) = iVar11" (pointer_expression "*(int *)(puVar13 + -0x58)" (* "*") (cast_expression "(int *)(puVar13 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x58)" (( "(") (binary_expression "puVar13 + -0x58" (identifier "puVar13") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);" (assignment_expression "puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" (identifier "puVar8") (= "=") (cast_expression "(undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10)" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "(puVar13 + -0x30,uVar10)" (( "(") (binary_expression "puVar13 + -0x30" (identifier "puVar13") (+ "+") (number_literal "-0x30")) (, ",") (identifier "uVar10") () ")"))))) (; ";")) (expression_statement "puVar12 = auStack_70;" (assignment_expression "puVar12 = auStack_70" (identifier "puVar12") (= "=") (identifier "auStack_70")) (; ";")) (expression_statement "iVar11 = *(int *)(puVar13 + -0x58);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x58)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar13 + -0x58)" (* "*") (cast_expression "(int *)(puVar13 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x58)" (( "(") (binary_expression "puVar13 + -0x58" (identifier "puVar13") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (0 < iVar11) {\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }" (if "if") (parenthesized_expression "(0 < iVar11)" (( "(") (binary_expression "0 < iVar11" (number_literal "0") (< "<") (identifier "iVar11")) () ")")) (compound_statement "{\n      puVar2 = puVar8 + iVar14 * 4;\n      *(undefined1 **)(puVar13 + -0x5c) = puVar8;\n      *(int *)(puVar12 + -8) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0xc) = 0;\n      *(undefined1 **)(puVar12 + -0x10) = puVar2;\n      *(int *)(puVar13 + -0x58) = iVar11 << 2;\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;\n      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));\n      iVar11 = *(int *)(puVar13 + -0x58);\n      iVar7 = *(int *)(unaff_EBX + 0x681d9);\n      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);\n      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);\n      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;\n      pcVar6 = *(code **)(iVar7 + 0x28);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;\n      (*pcVar6)();\n      puVar8 = *(undefined1 **)(puVar13 + -0x5c);\n      *(undefined1 **)(puVar13 + -0x40) = puVar2;\n      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);\n    }" ({ "{") (expression_statement "puVar2 = puVar8 + iVar14 * 4;" (assignment_expression "puVar2 = puVar8 + iVar14 * 4" (identifier "puVar2") (= "=") (binary_expression "puVar8 + iVar14 * 4" (identifier "puVar8") (+ "+") (binary_expression "iVar14 * 4" (identifier "iVar14") (* "*") (number_literal "4")))) (; ";")) (expression_statement "*(undefined1 **)(puVar13 + -0x5c) = puVar8;" (assignment_expression "*(undefined1 **)(puVar13 + -0x5c) = puVar8" (pointer_expression "*(undefined1 **)(puVar13 + -0x5c)" (* "*") (cast_expression "(undefined1 **)(puVar13 + -0x5c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x5c)" (( "(") (binary_expression "puVar13 + -0x5c" (identifier "puVar13") (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(int *)(puVar12 + -8) = iVar11 << 2;" (assignment_expression "*(int *)(puVar12 + -8) = iVar11 << 2" (pointer_expression "*(int *)(puVar12 + -8)" (* "*") (cast_expression "(int *)(puVar12 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -8)" (( "(") (binary_expression "puVar12 + -8" (identifier "puVar12") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "iVar11 << 2" (identifier "iVar11") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0xc)" (( "(") (binary_expression "puVar12 + -0xc" (identifier "puVar12") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar2;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar2" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" (* "*") (cast_expression "(undefined1 **)(puVar12 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + -0x10)" (( "(") (binary_expression "puVar12 + -0x10" (identifier "puVar12") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(int *)(puVar13 + -0x58) = iVar11 << 2;" (assignment_expression "*(int *)(puVar13 + -0x58) = iVar11 << 2" (pointer_expression "*(int *)(puVar13 + -0x58)" (* "*") (cast_expression "(int *)(puVar13 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x58)" (( "(") (binary_expression "puVar13 + -0x58" (identifier "puVar13") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (binary_expression "iVar11 << 2" (identifier "iVar11") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35c83;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35c83" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x14)" (( "(") (binary_expression "puVar12 + -0x14" (identifier "puVar12") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x35c83")) (; ";")) (expression_statement "memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));" (call_expression "memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8))" (identifier "memset") (argument_list "(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8))" (( "(") (pointer_expression "*(void **)(puVar12 + -0x10)" (* "*") (cast_expression "(void **)(puVar12 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + -0x10)" (( "(") (binary_expression "puVar12 + -0x10" (identifier "puVar12") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(int *)(puVar12 + -0xc)" (* "*") (cast_expression "(int *)(puVar12 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0xc)" (( "(") (binary_expression "puVar12 + -0xc" (identifier "puVar12") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(size_t *)(puVar12 + -8)" (* "*") (cast_expression "(size_t *)(puVar12 + -8)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -8)" (( "(") (binary_expression "puVar12 + -8" (identifier "puVar12") (+ "+") (number_literal "-8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar13 + -0x58);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x58)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar13 + -0x58)" (* "*") (cast_expression "(int *)(puVar13 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x58)" (( "(") (binary_expression "puVar13 + -0x58" (identifier "puVar13") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(unaff_EBX + 0x681d9);" (assignment_expression "iVar7 = *(int *)(unaff_EBX + 0x681d9)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(unaff_EBX + 0x681d9)" (* "*") (cast_expression "(int *)(unaff_EBX + 0x681d9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0x681d9)" (( "(") (binary_expression "unaff_EBX + 0x681d9" (identifier "unaff_EBX") (+ "+") (number_literal "0x681d9")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);" (assignment_expression "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44)" (pointer_expression "*(undefined4 *)(puVar12 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -8)" (( "(") (binary_expression "puVar12 + -8" (identifier "puVar12") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x44)" (( "(") (binary_expression "puVar13 + -0x44" (identifier "puVar13") (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40)" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0xc)" (( "(") (binary_expression "puVar12 + -0xc" (identifier "puVar12") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x40)" (( "(") (binary_expression "puVar13 + -0x40" (identifier "puVar13") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" (* "*") (cast_expression "(undefined1 **)(puVar12 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + -0x10)" (( "(") (binary_expression "puVar12 + -0x10" (identifier "puVar12") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar2 + iVar11" (identifier "puVar2") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "pcVar6 = *(code **)(iVar7 + 0x28);" (assignment_expression "pcVar6 = *(code **)(iVar7 + 0x28)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(iVar7 + 0x28)" (* "*") (cast_expression "(code **)(iVar7 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x28)" (( "(") (binary_expression "iVar7 + 0x28" (identifier "iVar7") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35c9b;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35c9b" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x14)" (( "(") (binary_expression "puVar12 + -0x14" (identifier "puVar12") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x35c9b")) (; ";")) (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar8 = *(undefined1 **)(puVar13 + -0x5c);" (assignment_expression "puVar8 = *(undefined1 **)(puVar13 + -0x5c)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined1 **)(puVar13 + -0x5c)" (* "*") (cast_expression "(undefined1 **)(puVar13 + -0x5c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x5c)" (( "(") (binary_expression "puVar13 + -0x5c" (identifier "puVar13") (+ "+") (number_literal "-0x5c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar13 + -0x40) = puVar2;" (assignment_expression "*(undefined1 **)(puVar13 + -0x40) = puVar2" (pointer_expression "*(undefined1 **)(puVar13 + -0x40)" (* "*") (cast_expression "(undefined1 **)(puVar13 + -0x40)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x40)" (( "(") (binary_expression "puVar13 + -0x40" (identifier "puVar13") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);" (assignment_expression "*(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54)" (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x44)" (( "(") (binary_expression "puVar13 + -0x44" (identifier "puVar13") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -0x54)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x54)" (( "(") (binary_expression "puVar13 + -0x54" (identifier "puVar13") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar12 + -8) = iVar14;" (assignment_expression "*(int *)(puVar12 + -8) = iVar14" (pointer_expression "*(int *)(puVar12 + -8)" (* "*") (cast_expression "(int *)(puVar12 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -8)" (( "(") (binary_expression "puVar12 + -8" (identifier "puVar12") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);" (assignment_expression "*(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c)" (pointer_expression "*(undefined4 *)(puVar12 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0xc)" (( "(") (binary_expression "puVar12 + -0xc" (identifier "puVar12") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x4c)" (( "(") (binary_expression "puVar13 + -0x4c" (identifier "puVar13") (+ "+") (number_literal "-0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);" (assignment_expression "*(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44)" (pointer_expression "*(undefined4 *)(puVar12 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x10)" (( "(") (binary_expression "puVar12 + -0x10" (identifier "puVar12") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -0x44)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x44)" (( "(") (binary_expression "puVar13 + -0x44" (identifier "puVar13") (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40)" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x14)" (( "(") (binary_expression "puVar12 + -0x14" (identifier "puVar12") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -0x40)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x40)" (( "(") (binary_expression "puVar13 + -0x40" (identifier "puVar13") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar12 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar12 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x18)" (( "(") (binary_expression "puVar12 + -0x18" (identifier "puVar12") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)(puVar12 + -0x1c) = puVar8;" (assignment_expression "*(undefined1 **)(puVar12 + -0x1c) = puVar8" (pointer_expression "*(undefined1 **)(puVar12 + -0x1c)" (* "*") (cast_expression "(undefined1 **)(puVar12 + -0x1c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + -0x1c)" (( "(") (binary_expression "puVar12 + -0x1c" (identifier "puVar12") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;" (assignment_expression "*(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c" (pointer_expression "*(undefined1 **)(puVar12 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar12 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + -0x20)" (( "(") (binary_expression "puVar12 + -0x20" (identifier "puVar12") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (binary_expression "puVar13 + -0x2c" (identifier "puVar13") (+ "+") (number_literal "-0x2c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0x24) = 0x35cc3;" (assignment_expression "*(undefined4 *)(puVar12 + -0x24) = 0x35cc3" (pointer_expression "*(undefined4 *)(puVar12 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x24)" (( "(") (binary_expression "puVar12 + -0x24" (identifier "puVar12") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x35cc3")) (; ";")) (expression_statement "__gmpn_tdiv_qr();" (call_expression "__gmpn_tdiv_qr()" (identifier "__gmpn_tdiv_qr") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar13 + -0x20);" (assignment_expression "iVar11 = *(int *)(puVar13 + -0x20)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar13 + -0x20)" (* "*") (cast_expression "(int *)(puVar13 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x20)" (( "(") (binary_expression "puVar13 + -0x20" (identifier "puVar13") (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);" (assignment_expression "*(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50)" (pointer_expression "*(undefined4 *)(puVar12 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -4)" (( "(") (binary_expression "puVar12 + -4" (identifier "puVar12") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -0x50)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x50)" (( "(") (binary_expression "puVar13 + -0x50" (identifier "puVar13") (+ "+") (number_literal "-0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);" (assignment_expression "*(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48)" (pointer_expression "*(undefined4 *)(puVar12 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -8)" (( "(") (binary_expression "puVar12 + -8" (identifier "puVar12") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x48)" (( "(") (binary_expression "puVar13 + -0x48" (identifier "puVar13") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);" (assignment_expression "*(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0)" (pointer_expression "*(uint *)(puVar12 + -0xc)" (* "*") (cast_expression "(uint *)(puVar12 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0xc)" (( "(") (binary_expression "puVar12 + -0xc" (identifier "puVar12") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "4 - (uint)(iVar11 == 0)" (number_literal "4") (- "-") (call_expression "(uint)(iVar11 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;" (assignment_expression "*(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c" (pointer_expression "*(undefined1 **)(puVar12 + -0x10)" (* "*") (cast_expression "(undefined1 **)(puVar12 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + -0x10)" (( "(") (binary_expression "puVar12 + -0x10" (identifier "puVar12") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar13 + -0x2c" (identifier "puVar13") (+ "+") (number_literal "-0x2c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35ce4;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35ce4" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x14)" (( "(") (binary_expression "puVar12 + -0x14" (identifier "puVar12") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x35ce4")) (; ";")) (expression_statement "lVar15 = (longdouble)__gmpn_get_d();" (assignment_expression "lVar15 = (longdouble)__gmpn_get_d()" (identifier "lVar15") (= "=") (cast_expression "(longdouble)__gmpn_get_d()" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "__gmpn_get_d()" (identifier "__gmpn_get_d") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar13 + -0x30) != 0) {\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar13 + -0x30) != 0)" (( "(") (binary_expression "*(int *)(puVar13 + -0x30) != 0" (pointer_expression "*(int *)(puVar13 + -0x30)" (* "*") (cast_expression "(int *)(puVar13 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x30)" (( "(") (binary_expression "puVar13 + -0x30" (identifier "puVar13") (+ "+") (number_literal "-0x30")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(double *)(puVar13 + -0x40) = (double)lVar15;\n      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);\n      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;\n      __gmp_tmp_reentrant_free();\n      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);\n    }" ({ "{") (expression_statement "*(double *)(puVar13 + -0x40) = (double)lVar15;" (assignment_expression "*(double *)(puVar13 + -0x40) = (double)lVar15" (pointer_expression "*(double *)(puVar13 + -0x40)" (* "*") (cast_expression "(double *)(puVar13 + -0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x40)" (( "(") (binary_expression "puVar13 + -0x40" (identifier "puVar13") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (cast_expression "(double)lVar15" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar15"))) (; ";")) (expression_statement "*(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);" (assignment_expression "*(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30)" (pointer_expression "*(int *)(puVar12 + -0x10)" (* "*") (cast_expression "(int *)(puVar12 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x10)" (( "(") (binary_expression "puVar12 + -0x10" (identifier "puVar12") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(int *)(puVar13 + -0x30)" (* "*") (cast_expression "(int *)(puVar13 + -0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x30)" (( "(") (binary_expression "puVar13 + -0x30" (identifier "puVar13") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar12 + -0x14) = 0x35d3c;" (assignment_expression "*(undefined4 *)(puVar12 + -0x14) = 0x35d3c" (pointer_expression "*(undefined4 *)(puVar12 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -0x14)" (( "(") (binary_expression "puVar12 + -0x14" (identifier "puVar12") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x35d3c")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar15 = (longdouble)*(double *)(puVar13 + -0x40);" (assignment_expression "lVar15 = (longdouble)*(double *)(puVar13 + -0x40)" (identifier "lVar15") (= "=") (binary_expression "(longdouble)*(double *)(puVar13 + -0x40)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (* "*") (cast_expression "(double *)(puVar13 + -0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x40)" (( "(") (binary_expression "puVar13 + -0x40" (identifier "puVar13") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return lVar15;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar13 + -0x1c)" (* "*") (cast_expression "(int *)(puVar13 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x1c)" (( "(") (binary_expression "puVar13 + -0x1c" (identifier "puVar13") (+ "+") (number_literal "-0x1c")) () ")")))) (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return lVar15;\n  }" ({ "{") (return_statement "return lVar15;" (return "return") (identifier "lVar15") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar12 + -4) = 0x35d4b;" (assignment_expression "*(undefined4 *)(puVar12 + -4) = 0x35d4b" (pointer_expression "*(undefined4 *)(puVar12 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -4)" (( "(") (binary_expression "puVar12 + -4" (identifier "puVar12") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x35d4b")) (; ";")) (expression_statement "FUN_0007ebe0();" (call_expression "FUN_0007ebe0()" (identifier "FUN_0007ebe0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

double function_1(type_1 src)

{
  int var_9;
  void *pvVar2;
  int var_21;
  type_2 *var_8;
  type_3 *pcVar5;
  int var_7;
  type_4 var_3;
  void *pvVar8;
  int var_5;
  type_4 var_4;
  int var_11;
  type_5 *var_14;
  int var_6;
  int var_1;
  double dVar14;
  type_5 var_12 [12];
  void *local_60;
  int local_5c;
  int local_58;
  int local_54;
  type_2 *local_50;
  type_4 var_2;
  int local_48;
  double local_44;
  type_6 *var_19;
  type_2 qarr [4];
  
  var_14 = var_12;
  var_21 = *(int *)(var_1 + 0x14);
  var_2 = (src->_mp_num)._mp_size;
  var_3 = (src->_mp_den)._mp_size;
  if (var_2 == 0) {
    dVar14 = 0.0;
  }
  else {
    var_8 = (src->_mp_num)._mp_d;
    var_19 = (type_6 *)0x0;
    var_5 = (var_2 ^ (int)var_2 >> 0x1f) - ((int)var_2 >> 0x1f);
    local_50 = (src->_mp_den)._mp_d;
    var_4 = (int)var_3 >> 0x1f;
    local_48 = var_5;
    var_6 = (var_3 ^ var_4) - var_4;
    var_7 = 3 - (var_5 - var_6);
    local_54 = var_7 * -0x20;
    var_11 = var_7;
    if (var_7 < 0) {
      var_9 = (var_5 - var_6) + -3;
      var_8 = var_8 + var_9;
      var_11 = var_9 + var_7;
      local_48 = var_5 - var_9;
    }
    local_44 = (double)var_10(local_44._4_4_,var_8);
    local_58 = var_7 + var_5;
    var_7 = var_7 + var_5 + var_6;
    if (var_11 < 1) {
      var_7 = var_6;
    }
    var_3 = var_7 * 4;
    if (var_3 < 0x7f01) {
      var_7 = -(var_3 + 0x1b & 0xfffffff0);
      var_14 = var_12 + var_7;
      pvVar8 = (void *)((int)&local_60 + var_7);
    }
    else {
      local_5c = var_11;
      pvVar8 = var_13(&var_19,var_3);
      var_14 = var_12;
      var_11 = local_5c;
    }
    if (0 < var_11) {
      pvVar2 = (void *)((int)pvVar8 + var_6 * 4);
      local_60 = pvVar8;
      *(int *)(var_14 + -8) = var_11 << 2;
      *(type_7 *)(var_14 + -0xc) = 0;
      *(void **)(var_14 + -0x10) = pvVar2;
      local_5c = var_11 << 2;
      *(type_7 *)(var_14 + -0x14) = 0x35c83;
      var_15(*(void **)(var_14 + -0x10),*(int *)(var_14 + -0xc),*(size_t *)(var_14 + -8));
      var_11 = local_5c;
      *(int *)(var_14 + -8) = local_48;
      *(type_7 *)(var_14 + -0xc) = local_44._0_4_;
      *(int *)(var_14 + -0x10) = var_11 + (int)pvVar2;
      pcVar5 = *(type_3 **)(var_16 + 0x28);
      *(type_7 *)(var_14 + -0x14) = 0x35c9b;
      (*pcVar5)();
      local_44 = (double)var_10(local_44._4_4_,pvVar2);
      local_48 = local_58;
      pvVar8 = local_60;
    }
    *(int *)(var_14 + -8) = var_6;
    *(type_2 **)(var_14 + -0xc) = local_50;
    *(int *)(var_14 + -0x10) = local_48;
    *(type_7 *)(var_14 + -0x14) = local_44._0_4_;
    *(type_7 *)(var_14 + -0x18) = 0;
    *(void **)(var_14 + -0x1c) = pvVar8;
    *(type_2 **)(var_14 + -0x20) = qarr;
    *(type_7 *)(var_14 + -0x24) = 0x35cc3;
    var_17(*(type_8 *)(var_14 + -0x20),*(type_8 *)(var_14 + -0x1c),
                   *(type_9 *)(var_14 + -0x18),*(type_10 *)(var_14 + -0x14),
                   *(type_9 *)(var_14 + -0x10),*(type_10 *)(var_14 + -0xc),
                   *(type_9 *)(var_14 + -8));
    *(int *)(var_14 + -4) = local_54;
    *(type_4 *)(var_14 + -8) = var_2;
    *(type_4 *)(var_14 + -0xc) = 4 - (type_4)(qarr[3] == 0);
    *(type_2 **)(var_14 + -0x10) = qarr;
    *(type_7 *)(var_14 + -0x14) = 0x35ce4;
    dVar14 = var_18(*(type_10 *)(var_14 + -0x10),*(type_9 *)(var_14 + -0xc),
                          *(type_9 *)(var_14 + -8),*(long *)(var_14 + -4));
    if (var_19 != (type_6 *)0x0) {
      local_44 = dVar14;
      *(type_6 **)(var_14 + -0x10) = var_19;
      *(type_7 *)(var_14 + -0x14) = 0x35d3c;
      var_20(*(type_6 **)(var_14 + -0x10));
      dVar14 = local_44;
    }
  }
  if (var_21 == *(int *)(var_1 + 0x14)) {
    return dVar14;
  }
                    /* WARNING: Subroutine does not return */
  *(type_7 *)(var_14 + -4) = 0x35d4b;
  var_22();
}


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

longdouble MASKED(void)

{
  int iVar1;
  undefined1 *puVar2;
  uint uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  code *pcVar6;
  int iVar7;
  undefined1 *puVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int unaff_EBX;
  undefined1 *puVar12;
  undefined1 *puVar13;
  int iVar14;
  int in_GS_OFFSET;
  longdouble lVar15;
  undefined1 auStack_70 [92];
  undefined4 uStack_14;
  
  puVar13 = &stack0xfffffffc;
  uStack_14 = 0x35bbb;
  entry();
  puVar12 = auStack_70;
  iVar11 = *(int *)(puVar13 + 8);
  *(undefined4 *)(puVar13 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);
  uVar10 = *(uint *)(iVar11 + 4);
  uVar3 = *(uint *)(iVar11 + 0x10);
  *(uint *)(puVar13 + -0x48) = uVar10;
  if (uVar10 == 0) {
    lVar15 = (longdouble)0;
  }
  else {
    uVar4 = *(undefined4 *)(iVar11 + 8);
    uVar5 = *(undefined4 *)(iVar11 + 0x14);
    *(undefined4 *)(puVar13 + -0x30) = 0;
    *(undefined4 *)(puVar13 + -0x40) = uVar4;
    iVar9 = (uVar10 ^ (int)uVar10 >> 0x1f) - ((int)uVar10 >> 0x1f);
    *(undefined4 *)(puVar13 + -0x4c) = uVar5;
    uVar10 = (int)uVar3 >> 0x1f;
    *(int *)(puVar13 + -0x44) = iVar9;
    iVar14 = (uVar3 ^ uVar10) - uVar10;
    iVar7 = 3 - (iVar9 - iVar14);
    *(int *)(puVar13 + -0x50) = iVar7 * -0x20;
    iVar11 = iVar7;
    if (iVar7 < 0) {
      iVar1 = (iVar9 - iVar14) + -3;
      *(int *)(puVar13 + -0x40) = *(int *)(puVar13 + -0x40) + iVar1 * 4;
      iVar11 = iVar1 + iVar7;
      *(int *)(puVar13 + -0x44) = iVar9 - iVar1;
    }
    *(int *)(puVar13 + -0x54) = iVar7 + iVar9;
    iVar7 = iVar7 + iVar9 + iVar14;
    if (iVar11 < 1) {
      iVar7 = iVar14;
    }
    uVar10 = iVar7 * 4;
    if (uVar10 < 0x7f01) {
      iVar7 = -(uVar10 + 0x1b & 0xfffffff0);
      puVar12 = auStack_70 + iVar7;
      puVar8 = auStack_70 + iVar7;
    }
    else {
      *(int *)(puVar13 + -0x58) = iVar11;
      puVar8 = (undefined1 *)__gmp_tmp_reentrant_alloc(puVar13 + -0x30,uVar10);
      puVar12 = auStack_70;
      iVar11 = *(int *)(puVar13 + -0x58);
    }
    if (0 < iVar11) {
      puVar2 = puVar8 + iVar14 * 4;
      *(undefined1 **)(puVar13 + -0x5c) = puVar8;
      *(int *)(puVar12 + -8) = iVar11 << 2;
      *(undefined4 *)(puVar12 + -0xc) = 0;
      *(undefined1 **)(puVar12 + -0x10) = puVar2;
      *(int *)(puVar13 + -0x58) = iVar11 << 2;
      *(undefined4 *)(puVar12 + -0x14) = 0x35c83;
      memset(*(void **)(puVar12 + -0x10),*(int *)(puVar12 + -0xc),*(size_t *)(puVar12 + -8));
      iVar11 = *(int *)(puVar13 + -0x58);
      iVar7 = *(int *)(unaff_EBX + 0x681d9);
      *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x44);
      *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x40);
      *(undefined1 **)(puVar12 + -0x10) = puVar2 + iVar11;
      pcVar6 = *(code **)(iVar7 + 0x28);
      *(undefined4 *)(puVar12 + -0x14) = 0x35c9b;
      (*pcVar6)();
      puVar8 = *(undefined1 **)(puVar13 + -0x5c);
      *(undefined1 **)(puVar13 + -0x40) = puVar2;
      *(undefined4 *)(puVar13 + -0x44) = *(undefined4 *)(puVar13 + -0x54);
    }
    *(int *)(puVar12 + -8) = iVar14;
    *(undefined4 *)(puVar12 + -0xc) = *(undefined4 *)(puVar13 + -0x4c);
    *(undefined4 *)(puVar12 + -0x10) = *(undefined4 *)(puVar13 + -0x44);
    *(undefined4 *)(puVar12 + -0x14) = *(undefined4 *)(puVar13 + -0x40);
    *(undefined4 *)(puVar12 + -0x18) = 0;
    *(undefined1 **)(puVar12 + -0x1c) = puVar8;
    *(undefined1 **)(puVar12 + -0x20) = puVar13 + -0x2c;
    *(undefined4 *)(puVar12 + -0x24) = 0x35cc3;
    __gmpn_tdiv_qr();
    iVar11 = *(int *)(puVar13 + -0x20);
    *(undefined4 *)(puVar12 + -4) = *(undefined4 *)(puVar13 + -0x50);
    *(undefined4 *)(puVar12 + -8) = *(undefined4 *)(puVar13 + -0x48);
    *(uint *)(puVar12 + -0xc) = 4 - (uint)(iVar11 == 0);
    *(undefined1 **)(puVar12 + -0x10) = puVar13 + -0x2c;
    *(undefined4 *)(puVar12 + -0x14) = 0x35ce4;
    lVar15 = (longdouble)__gmpn_get_d();
    if (*(int *)(puVar13 + -0x30) != 0) {
      *(double *)(puVar13 + -0x40) = (double)lVar15;
      *(int *)(puVar12 + -0x10) = *(int *)(puVar13 + -0x30);
      *(undefined4 *)(puVar12 + -0x14) = 0x35d3c;
      __gmp_tmp_reentrant_free();
      lVar15 = (longdouble)*(double *)(puVar13 + -0x40);
    }
  }
  if (*(int *)(puVar13 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {
    return lVar15;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar12 + -4) = 0x35d4b;
  FUN_0007ebe0();
}

