
/* WARNING: Removing unreachable block (ram,0x000151d4) */
/* WARNING: Removing unreachable block (ram,0x00015078) */
/* WARNING: Removing unreachable block (ram,0x00015104) */
/* WARNING: Removing unreachable block (ram,0x00015260) */

void mp_factor(__mpz_struct *t,mp_factors *factors)

{
  ulonglong uVar1;
  ulonglong uVar2;
  longlong lVar3;
  undefined *puVar4;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  int iVar5;
  int *piVar6;
  _Bool _Var11;
  int iVar7;
  undefined4 uVar8;
  int iVar9;
  uint uVar10;
  int iVar12;
  __mpz_struct *prime;
  mpz_ptr p_Var13;
  undefined1 *puVar14;
  mpz_ptr in_a2;
  __mpz_struct *p_Var15;
  undefined1 *puVar16;
  uint uVar17;
  code *pcVar18;
  undefined1 *puVar19;
  undefined1 *puVar20;
  __mpz_struct *unaff_s0;
  mpz_ptr unaff_s1;
  mpz_srcptr unaff_s2;
  undefined1 *puVar21;
  mp_factors *unaff_s3;
  mpz_srcptr unaff_s5;
  undefined *unaff_s6;
  __mpz_struct *unaff_s7;
  undefined *puVar22;
  code *pcVar23;
  undefined *puVar24;
  code *pcVar25;
  code *pcVar26;
  uint uVar27;
  uint uStackY_1c4;
  undefined1 *puStackY_1bc;
  uint uStackY_1b0;
  uint uStackY_1a8;
  undefined1 auStackY_17c [12];
  undefined1 auStackY_170 [12];
  undefined1 auStackY_164 [12];
  undefined1 auStackY_158 [12];
  __mpz_struct _StackY_14c;
  undefined1 auStackY_140 [12];
  int iStackY_134;
  __mpz_struct *p_StackY_130;
  mpz_ptr p_StackY_12c;
  mpz_srcptr p_StackY_128;
  mp_factors *pmStackY_124;
  mpz_srcptr p_StackY_120;
  mpz_srcptr p_StackY_11c;
  undefined *puStackY_118;
  __mpz_struct *p_StackY_114;
  undefined *puStackY_110;
  code *pcStackY_10c;
  mp_factors mStack_d0;
  __mpz_struct _Stack_c4;
  __mpz_struct _Stack_b8;
  __mpz_struct _Stack_ac;
  __mpz_struct _Stack_a0;
  __mpz_struct *p_Stack_94;
  __mpz_struct *p_Stack_90;
  mpz_ptr p_Stack_8c;
  mpz_srcptr p_Stack_88;
  mp_factors *pmStack_84;
  undefined *puStack_80;
  mpz_srcptr p_Stack_7c;
  undefined *puStack_78;
  __mpz_struct *p_Stack_74;
  undefined *puStack_70;
  code *pcStack_6c;
  mpz_t q;
  mpz_t pz;
  
  puVar4 = PTR___stack_chk_guard_00039368;
  iVar5 = t->_mp_size;
  factors->e = (ulong *)0x0;
  factors->nfactors = 0;
  iVar12 = *(int *)puVar4;
  factors->p = (mpz_t *)0x0;
  puVar24 = PTR_DAT_000390f8;
  p_Var15 = t;
  if (iVar5 != 0) {
    if (PTR_DAT_000390f8[-0x6c28] != '\0') {
      (*(code *)PTR_fwrite_00039328)
                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);
    }
    (*(code *)PTR___gmpz_init_0003924c)(q);
    p_Var13 = (mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0);
    in_a2 = p_Var13;
    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(t,t);
    if (p_Var13 != (mpz_ptr)0x0) {
      do {
        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);
        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);
        mp_factor_insert(factors,pz);
        (*(code *)PTR___gmpz_clear_000392c8)(pz);
      } while (p_Var13 != (mpz_ptr)0x0);
    }
    unaff_s2 = (mpz_srcptr)0x1;
    unaff_s1 = (mpz_ptr)0x3;
    unaff_s7 = pz;
    unaff_s6 = PTR_00039104 + 0x365c;
    unaff_s5 = (mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c);
    do {
      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {
        piVar6 = &unaff_s2->_mp_alloc;
        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);
        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +
                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));
        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);
        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;
      }
      in_a2 = unaff_s1;
      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);
      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);
      mp_factor_insert(factors,unaff_s7);
      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);
    } while (unaff_s2 != (mpz_srcptr)0x29d);
LAB_00014628:
    (*(code *)PTR___gmpz_clear_000392c8)(q);
    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,1);
    unaff_s0 = t;
    unaff_s3 = factors;
    if (iVar5 != 0) {
      if (puVar24[-0x6c28] != '\0') {
        in_a2 = (mpz_ptr)0x13;
        (*(code *)PTR_fwrite_00039328)
                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);
      }
      _Var11 = mp_prime_p(t);
      if (CONCAT31(extraout_var,_Var11) == 0) {
        p_Var15 = t;
        in_a2 = (mpz_ptr)factors;
        mp_factor_using_pollard_rho(t,1,factors);
      }
      else {
        p_Var15 = (__mpz_struct *)factors;
        mp_factor_insert(factors,t);
      }
    }
  }
  if (iVar12 == *(int *)puVar4) {
    return;
  }
  pcVar25 = mp_prime_p;
  puVar22 = PTR___stack_chk_fail_00039350;
  (*(code *)PTR___stack_chk_fail_00039350)();
  piVar6 = *(int **)(puVar22 + 0x24c64);
  p_Var13 = (mpz_ptr)0x1;
  puStack_80 = puVar4;
  puStack_70 = puVar24;
  p_Stack_94 = (__mpz_struct *)*piVar6;
  p_Stack_90 = unaff_s0;
  p_Stack_8c = unaff_s1;
  p_Stack_88 = unaff_s2;
  pmStack_84 = unaff_s3;
  p_Stack_7c = unaff_s5;
  puStack_78 = unaff_s6;
  p_Stack_74 = unaff_s7;
  pcStack_6c = pcVar25;
  iVar5 = (**(code **)(puVar22 + 0x24b54))();
  if (0 < iVar5) {
    p_Var13 = (mpz_ptr)0x17ded79;
    iVar5 = (**(code **)(puVar22 + 0x24b54))(p_Var15);
    if (-1 < iVar5) {
      unaff_s2 = &_Stack_ac;
      unaff_s1 = &_Stack_b8;
      unaff_s5 = &_Stack_c4;
      unaff_s0 = &_Stack_a0;
      (**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);
      (**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);
      unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);
      (**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);
      (**(code **)(puVar22 + 0x24c74))(unaff_s1,2);
      iVar5 = *(int *)(puVar22 + 0x24a00);
      _Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);
      if (CONCAT31(extraout_var_00,_Var11) != 0) {
        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);
        mp_factor(unaff_s0,&mStack_d0);
        iVar12 = *(int *)(puVar22 + 0x24a04);
        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);
        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)
        {
          puVar24 = (undefined *)0x0;
          do {
            puVar24 = puVar24 + 1;
            (**(code **)(puVar22 + 0x24c48))
                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);
            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);
            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);
            if (mStack_d0.nfactors <= puVar24) {
              pcVar25 = *(code **)(puVar22 + 0x24be8);
              if (iVar7 == 0) goto LAB_00014908;
              goto LAB_000149e4;
            }
            unaff_s7 = unaff_s7 + 1;
          } while (iVar7 != 0);
          pcVar25 = *(code **)(puVar22 + 0x24be8);
LAB_00014908:
          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);
          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);
          if (iVar7 == 0) break;
          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);
          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {
            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);
            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);
            (**(code **)(puVar22 + 0x24b38))();
            return;
          }
        }
LAB_000149e4:
        mp_factor_clear(&mStack_d0);
      }
      p_Var13 = unaff_s1;
      in_a2 = unaff_s2;
      (**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);
    }
  }
  if (p_Stack_94 == (__mpz_struct *)*piVar6) {
    return;
  }
  pcVar25 = *(code **)(puVar22 + 0x24c4c);
  pcVar26 = mp_factor_using_pollard_rho;
  prime = p_Stack_94;
  (*pcVar25)();
  piVar6 = *(int **)(pcVar25 + 0x24930);
  iVar5 = *(int *)(pcVar25 + 0x246c0);
  iStackY_134 = *piVar6;
  p_StackY_130 = unaff_s0;
  p_StackY_12c = unaff_s1;
  p_StackY_128 = unaff_s2;
  pmStackY_124 = unaff_s3;
  p_StackY_120 = p_Var15;
  p_StackY_11c = unaff_s5;
  puStackY_118 = unaff_s6;
  p_StackY_114 = unaff_s7;
  puStackY_110 = puVar24;
  pcStackY_10c = pcVar26;
  if (*(char *)(iVar5 + -0x6c28) != '\0') {
    (**(code **)(pcVar25 + 0x24824))
              (**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13);
  }
  puVar19 = auStackY_140;
  p_Var15 = &_StackY_14c;
  (**(code **)(pcVar25 + 0x24910))(p_Var15,puVar19,0);
  puVar16 = auStackY_170;
  pcVar18 = (code *)auStackY_158;
  (**(code **)(pcVar25 + 0x248bc))(auStackY_164,2);
  (**(code **)(pcVar25 + 0x248bc))(auStackY_17c,2);
  (**(code **)(pcVar25 + 0x248bc))(puVar16,2);
  (**(code **)(pcVar25 + 0x2485c))(pcVar18,1);
  uStackY_1a8 = 1;
  uStackY_1b0 = 0;
  pcVar26 = (code *)(&DAT_00004704 + *(int *)(pcVar25 + 0x246cc));
  iVar12 = *(int *)(pcVar25 + 0x246cc);
  iVar7 = *(int *)(pcVar25 + 0x246d0);
  iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);
  uVar17 = 0;
  uVar27 = 1;
  if (iVar9 == 0) {
    pcVar26 = *(code **)(pcVar25 + 0x2494c);
  }
  else {
LAB_00014bb0:
    do {
      while( true ) {
        uVar10 = uVar27;
        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);
        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);
        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);
        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);
        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);
        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);
        if ((uVar10 & 0x1f) == 1) break;
        uVar27 = uVar10 - 1;
        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);
        if (uVar17 == 0 && uVar27 == 0) {
LAB_00014cb0:
          uVar10 = uVar10 - 1;
          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);
          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {
            do {
              pcVar23 = *(code **)(pcVar25 + 0x24908);
              uVar27 = uVar10;
              while( true ) {
                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);
                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);
                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);
                uVar10 = uVar27 + 1;
                uVar17 = (uVar10 < uVar27) + uVar17;
                if (uVar17 != uStackY_1b0) break;
                pcVar23 = *(code **)(pcVar25 + 0x24908);
                uVar27 = uVar10;
                if (uVar10 == uStackY_1a8) goto LAB_00014d60;
              }
            } while( true );
          }
LAB_00014d60:
          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);
          uVar17 = uStackY_1b0;
          uVar27 = uStackY_1a8;
          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;
          uStackY_1a8 = uStackY_1a8 << 1;
        }
      }
      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);
      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);
      if (iVar9 == 0) {
        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);
        uVar27 = uVar10 - 1;
        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);
        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;
        goto LAB_00014bb0;
      }
      do {
        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);
        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);
        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);
        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);
        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);
        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);
      } while (iVar9 == 0);
      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);
      iVar9 = (*pcVar26)(p_Var15);
      if (iVar9 == 0) {
        if (*(char *)(iVar5 + -0x6c28) != '\0') {
          (**(code **)(pcVar25 + 0x248f0))
                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));
        }
        mp_factor_using_pollard_rho
                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);
        iVar9 = (*pcVar26)(prime);
      }
      else {
        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);
        iVar9 = (*pcVar26)(prime);
      }
      if (iVar9 != 0) {
        mp_factor_insert((mp_factors *)in_a2,prime);
        break;
      }
      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);
      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);
      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);
      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);
      uVar27 = uVar10;
    } while (iVar9 != 0);
    pcVar26 = *(code **)(pcVar25 + 0x2494c);
  }
  (*pcVar26)();
  if (iStackY_134 == *piVar6) {
    return;
  }
  (**(code **)(pcVar25 + 0x24918))();
  pcVar25 = pcVar25 + 0x2c698;
  pcVar26 = pcVar18;
  puVar14 = puVar19;
  if (((uint)puVar16 & 1) == 0) goto LAB_000152f0;
  do {
    uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);
    puStackY_1bc = puVar19;
    do {
      while( true ) {
        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);
        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);
        uVar17 = uVar27 + (uint)uVar1 * 2;
        puVar19 = (undefined1 *)
                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));
        if (CONCAT44(puVar19,uVar17) < uVar1) {
          iVar5 = iVar5 + 1;
        }
        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;
        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));
        uVar27 = (uint)(puVar21 < puVar19) + iVar5;
        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);
        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);
        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);
        iVar5 = (int)((ulonglong)lVar3 >> 0x20);
        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +
                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);
        puVar19 = (undefined1 *)(uVar1 >> 0x20);
        if (uVar1 < uVar2) {
          iVar5 = iVar5 + 1;
        }
        puVar20 = puVar19 + (int)lVar3;
        uVar17 = (uint)(puVar20 < puVar19) + iVar5;
        puVar19 = puVar21 + -(int)puVar20;
        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));
        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {
          puVar14 = puVar19 + (int)auStackY_164;
          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);
        }
        uVar17 = (uint)puVar16 >> 1;
        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);
        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);
        pcVar25 = pcVar18;
        if ((uVar17 & 1) != 0) break;
LAB_000152f0:
        pcVar18 = pcVar25;
        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);
        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {
          return;
        }
      }
      iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);
      uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +
              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);
      puVar19 = (undefined1 *)(uVar1 >> 0x20);
      if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {
        iVar5 = iVar5 + 1;
      }
      uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;
      puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));
      uVar27 = (uint)(puVar21 < puVar19) + iVar5;
      uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);
      uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);
      lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;
      iVar5 = (int)((ulonglong)lVar3 >> 0x20);
      uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +
              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);
      puVar19 = (undefined1 *)(uVar2 >> 0x20);
      if (uVar2 < uVar1) {
        iVar5 = iVar5 + 1;
      }
      puVar20 = puVar19 + (int)lVar3;
      uVar17 = (uint)(puVar20 < puVar19) + iVar5;
      puStackY_1bc = puVar21 + -(int)puVar20;
      pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));
    } while ((uVar17 <= uVar27) &&
            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))))
    ;
    puVar19 = puStackY_1bc + (int)auStackY_164;
    pcVar18 = pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc);
  } while( true );
}



/* WARNING: Removing unreachable block (ram,0x000151d4) */
/* WARNING: Removing unreachable block (ram,0x00015078) */
/* WARNING: Removing unreachable block (ram,0x00015104) */
/* WARNING: Removing unreachable block (ram,0x00015260) */

code * FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)

{
  ulonglong uVar1;
  ulonglong uVar2;
  longlong lVar3;
  undefined *puVar4;
  int iVar5;
  byte *pbVar6;
  undefined4 uVar7;
  int *piVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  undefined4 *puVar13;
  int iVar14;
  undefined4 *puVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  undefined1 *puVar18;
  uint uVar19;
  code *pcVar20;
  undefined1 *puVar21;
  undefined1 *puVar22;
  undefined4 *unaff_s0;
  undefined4 *unaff_s1;
  undefined4 *unaff_s2;
  undefined1 *puVar23;
  undefined4 *unaff_s3;
  undefined *unaff_s5;
  undefined *unaff_s6;
  undefined1 *unaff_s7;
  undefined *puVar24;
  code *pcVar25;
  undefined *puVar26;
  code *pcVar27;
  code *pcVar28;
  uint uVar29;
  uint uStack_1c4;
  undefined1 *puStack_1bc;
  uint uStack_1b0;
  uint uStack_1a8;
  undefined1 auStack_17c [12];
  undefined1 auStack_170 [12];
  undefined1 auStack_164 [12];
  undefined1 auStack_158 [12];
  undefined1 auStack_14c [12];
  undefined1 auStack_140 [12];
  code *pcStack_134;
  undefined4 *puStack_130;
  undefined4 *puStack_12c;
  undefined4 *puStack_128;
  undefined4 *puStack_124;
  undefined4 *puStack_120;
  undefined *puStack_11c;
  undefined *puStack_118;
  undefined1 *puStack_114;
  undefined *puStack_110;
  code *pcStack_10c;
  undefined *puStack_f8;
  undefined *puStack_f4;
  undefined *puStack_f0;
  code *pcStack_e4;
  undefined4 *puStack_e0;
  code *pcStack_dc;
  int *piStack_d8;
  int *piStack_d4;
  int aiStack_d0 [2];
  undefined *puStack_c8;
  undefined auStack_c4 [12];
  undefined4 auStack_b8 [3];
  undefined4 auStack_ac [3];
  undefined4 auStack_a0 [3];
  int iStack_94;
  undefined4 *puStack_90;
  undefined4 *puStack_8c;
  undefined4 *puStack_88;
  undefined4 *puStack_84;
  undefined *puStack_80;
  undefined *puStack_7c;
  undefined *puStack_78;
  undefined1 *puStack_74;
  undefined *puStack_70;
  code *pcStack_6c;
  undefined1 auStack_44 [12];
  undefined1 auStack_38 [12];
  code *local_2c;
  
  puVar4 = PTR___stack_chk_guard_00039368;
  iVar5 = param_1[1];
  param_2[1] = 0;
  param_2[2] = 0;
  local_2c = *(code **)puVar4;
  *param_2 = 0;
  puVar26 = PTR_DAT_000390f8;
  puVar13 = param_1;
  if (iVar5 != 0) {
    if (PTR_DAT_000390f8[-0x6c28] != '\0') {
      (*(code *)PTR_fwrite_00039328)
                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);
    }
    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);
    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);
    param_3 = puVar15;
    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);
    if (puVar15 != (undefined4 *)0x0) {
      do {
        puVar15 = (undefined4 *)((int)puVar15 + -1);
        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);
        FUN_0001365c(param_2,auStack_38);
        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);
      } while (puVar15 != (undefined4 *)0x0);
    }
    unaff_s2 = (undefined4 *)0x1;
    unaff_s1 = (undefined4 *)0x3;
    unaff_s7 = auStack_38;
    unaff_s6 = PTR_00039104 + 0x365c;
    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;
    do {
      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {
        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);
        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);
        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);
        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);
        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;
      }
      param_3 = unaff_s1;
      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);
      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);
      FUN_0001365c(param_2,unaff_s7);
      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);
    } while (unaff_s2 != (undefined4 *)0x29d);
LAB_00014628:
    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);
    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);
    unaff_s0 = param_1;
    unaff_s3 = param_2;
    if (iVar5 != 0) {
      if (puVar26[-0x6c28] != '\0') {
        param_3 = (undefined4 *)0x13;
        (*(code *)PTR_fwrite_00039328)
                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);
      }
      iVar5 = FUN_00014704(param_1);
      if (iVar5 == 0) {
        puVar13 = param_1;
        param_3 = param_2;
        FUN_00014a38(param_1,1);
      }
      else {
        puVar13 = param_2;
        FUN_0001365c(param_2,param_1);
      }
    }
  }
  if (local_2c == *(code **)puVar4) {
    return *(code **)puVar4;
  }
  pcVar27 = FUN_00014704;
  puVar24 = PTR___stack_chk_fail_00039350;
  (*(code *)PTR___stack_chk_fail_00039350)();
  puStack_f0 = puVar24 + 0x2c9cc;
  piStack_d8 = *(int **)(puVar24 + 0x24c64);
  puVar15 = (undefined4 *)0x1;
  puStack_80 = puVar4;
  puStack_70 = puVar26;
  iStack_94 = *piStack_d8;
  puStack_90 = unaff_s0;
  puStack_8c = unaff_s1;
  puStack_88 = unaff_s2;
  puStack_84 = unaff_s3;
  puStack_7c = unaff_s5;
  puStack_78 = unaff_s6;
  puStack_74 = unaff_s7;
  pcStack_6c = pcVar27;
  iVar5 = (**(code **)(puVar24 + 0x24b54))();
  if (iVar5 < 1) {
    pcStack_dc = (code *)0x0;
  }
  else {
    puVar15 = (undefined4 *)0x17ded79;
    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);
    if (iVar5 < 0) {
      pcStack_dc = (code *)0x1;
    }
    else {
      unaff_s2 = auStack_ac;
      unaff_s1 = auStack_b8;
      puStack_f8 = (undefined *)0x0;
      unaff_s5 = auStack_c4;
      unaff_s0 = auStack_a0;
      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);
      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);
      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);
      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);
      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);
      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);
      puStack_f8 = unaff_s5;
      puStack_f4 = unaff_s6;
      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);
      if (pcStack_dc != (code *)0x0) {
        piStack_d4 = aiStack_d0;
        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);
        FUN_00014424(unaff_s0,aiStack_d0);
        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);
        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);
        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {
          puVar26 = (undefined *)0x0;
          do {
            puVar26 = puVar26 + 1;
            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);
            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);
            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);
            if (puStack_c8 <= puVar26) {
              pcVar27 = *(code **)(puStack_f0 + -0x7de4);
              if (iVar5 == 0) goto LAB_00014908;
              goto LAB_000149e4;
            }
            unaff_s7 = unaff_s7 + 0xc;
          } while (iVar5 != 0);
          pcVar27 = *(code **)(puStack_f0 + -0x7de4);
LAB_00014908:
          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);
          puStack_f8 = unaff_s5;
          puStack_f4 = unaff_s6;
          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);
          if (iVar5 == 0) {
            pcStack_dc = (code *)0x0;
            break;
          }
          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);
          if (puStack_e0 == unaff_s3) {
            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)
            ;
            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);
            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();
            return pcVar27;
          }
        }
LAB_000149e4:
        FUN_00012488(piStack_d4);
      }
      puStack_f8 = (undefined *)0x0;
      puVar15 = unaff_s1;
      param_3 = unaff_s2;
      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);
    }
  }
  if (iStack_94 == *piStack_d8) {
    return pcStack_dc;
  }
  pcVar27 = *(code **)(puStack_f0 + -0x7d80);
  pcVar28 = FUN_00014a38;
  iVar5 = iStack_94;
  (*pcVar27)();
  piVar8 = *(int **)(pcVar27 + 0x24930);
  iVar14 = *(int *)(pcVar27 + 0x246c0);
  pcStack_134 = (code *)*piVar8;
  puStack_130 = unaff_s0;
  puStack_12c = unaff_s1;
  puStack_128 = unaff_s2;
  puStack_124 = unaff_s3;
  puStack_120 = puVar13;
  puStack_11c = unaff_s5;
  puStack_118 = unaff_s6;
  puStack_114 = unaff_s7;
  puStack_110 = puVar26;
  pcStack_10c = pcVar28;
  if (*(char *)(iVar14 + -0x6c28) != '\0') {
    (**(code **)(pcVar27 + 0x24824))
              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);
  }
  puVar21 = auStack_140;
  puVar17 = auStack_14c;
  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);
  puVar18 = auStack_170;
  pcVar20 = (code *)auStack_158;
  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);
  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);
  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);
  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);
  uStack_1a8 = 1;
  uStack_1b0 = 0;
  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);
  iVar9 = *(int *)(pcVar27 + 0x246cc);
  iVar10 = *(int *)(pcVar27 + 0x246d0);
  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);
  uVar19 = 0;
  uVar29 = 1;
  if (iVar11 == 0) {
    pcVar28 = *(code **)(pcVar27 + 0x2494c);
  }
  else {
LAB_00014bb0:
    do {
      while( true ) {
        uVar12 = uVar29;
        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);
        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);
        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);
        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);
        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);
        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);
        if ((uVar12 & 0x1f) == 1) break;
        uVar29 = uVar12 - 1;
        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);
        if (uVar19 == 0 && uVar29 == 0) {
LAB_00014cb0:
          uVar12 = uVar12 - 1;
          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);
          if (uStack_1b0 != 0 || uStack_1a8 != 0) {
            do {
              pcVar25 = *(code **)(pcVar27 + 0x24908);
              uVar29 = uVar12;
              while( true ) {
                (*pcVar25)(puVar17,auStack_17c,auStack_17c);
                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);
                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);
                uVar12 = uVar29 + 1;
                uVar19 = (uVar12 < uVar29) + uVar19;
                if (uVar19 != uStack_1b0) break;
                pcVar25 = *(code **)(pcVar27 + 0x24908);
                uVar29 = uVar12;
                if (uVar12 == uStack_1a8) goto LAB_00014d60;
              }
            } while( true );
          }
LAB_00014d60:
          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);
          uVar19 = uStack_1b0;
          uVar29 = uStack_1a8;
          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;
          uStack_1a8 = uStack_1a8 << 1;
        }
      }
      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);
      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);
      if (iVar11 == 0) {
        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);
        uVar29 = uVar12 - 1;
        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);
        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;
        goto LAB_00014bb0;
      }
      do {
        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);
        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);
        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);
        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);
        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);
        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);
      } while (iVar11 == 0);
      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);
      iVar11 = (*pcVar28)(puVar17);
      if (iVar11 == 0) {
        if (*(char *)(iVar14 + -0x6c28) != '\0') {
          (**(code **)(pcVar27 + 0x248f0))
                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));
        }
        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);
        iVar11 = (*pcVar28)(iVar5);
      }
      else {
        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);
        iVar11 = (*pcVar28)(iVar5);
      }
      if (iVar11 != 0) {
        FUN_0001365c(param_3,iVar5);
        break;
      }
      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);
      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);
      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);
      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);
      uVar29 = uVar12;
    } while (iVar11 != 0);
    pcVar28 = *(code **)(pcVar27 + 0x2494c);
  }
  (*pcVar28)();
  pcVar28 = (code *)*piVar8;
  if (pcStack_134 == pcVar28) {
    return pcVar28;
  }
  (**(code **)(pcVar27 + 0x24918))();
  pcVar27 = pcVar27 + 0x2c698;
  pcVar28 = pcVar20;
  puVar16 = puVar21;
  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;
  do {
    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);
    puStack_1bc = puVar21;
    do {
      while( true ) {
        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);
        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);
        uVar19 = uVar29 + (uint)uVar1 * 2;
        puVar21 = (undefined1 *)
                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));
        if (CONCAT44(puVar21,uVar19) < uVar1) {
          iVar5 = iVar5 + 1;
        }
        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;
        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));
        uVar29 = (uint)(puVar23 < puVar21) + iVar5;
        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);
        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);
        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);
        iVar5 = (int)((ulonglong)lVar3 >> 0x20);
        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +
                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);
        puVar21 = (undefined1 *)(uVar1 >> 0x20);
        if (uVar1 < uVar2) {
          iVar5 = iVar5 + 1;
        }
        puVar22 = puVar21 + (int)lVar3;
        uVar19 = (uint)(puVar22 < puVar21) + iVar5;
        puVar21 = puVar23 + -(int)puVar22;
        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));
        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {
          puVar16 = puVar21 + (int)auStack_164;
          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);
        }
        uVar19 = (uint)puVar18 >> 1;
        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);
        puVar17 = (undefined1 *)((uint)puVar17 >> 1);
        pcVar27 = pcVar20;
        if ((uVar19 & 1) != 0) break;
LAB_000152f0:
        pcVar20 = pcVar27;
        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);
        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {
          return pcVar20;
        }
      }
      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);
      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +
              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);
      puVar21 = (undefined1 *)(uVar1 >> 0x20);
      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {
        iVar5 = iVar5 + 1;
      }
      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;
      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));
      uVar29 = (uint)(puVar23 < puVar21) + iVar5;
      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);
      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);
      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;
      iVar5 = (int)((ulonglong)lVar3 >> 0x20);
      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +
              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);
      puVar21 = (undefined1 *)(uVar2 >> 0x20);
      if (uVar2 < uVar1) {
        iVar5 = iVar5 + 1;
      }
      puVar22 = puVar21 + (int)lVar3;
      uVar19 = (uint)(puVar22 < puVar21) + iVar5;
      puStack_1bc = puVar23 + -(int)puVar22;
      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));
    } while ((uVar19 <= uVar29) &&
            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))
    ;
    puVar21 = puStack_1bc + (int)auStack_164;
    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);
  } while( true );
}


lui gp,0x3
addiu gp,gp,-0x3354
addu gp,gp,t9
addiu sp,sp,-0x68
lw v0,0x4(a0)
sw s4,0x50(sp)
lw s4,-0x7d68(gp)
sw gp,0x10(sp)
sw ra,0x64(sp)
sw s8,0x60(sp)
sw s7,0x5c(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s3,0x4c(sp)
sw s2,0x48(sp)
sw s1,0x44(sp)
sw s0,0x40(sp)
sw zero,0x4(a1)
sw zero,0x8(a1)
lw v1,0x0(s4)
sw zero,0x0(a1)
sw v1,0x3c(sp)
bne v0,zero,0x000144c0
_lw s8,-0x7fd8(gp)
lw v1,0x3c(sp)
lw v0,0x0(s4)
bne v1,v0,0x000146f8
_lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
or s0,a0,zero
lbu v0,-0x6c28(s8)
bne v0,zero,0x0001468c
_or s3,a1,zero
lw t9,-0x7e84(gp)
addiu v0,sp,0x24
or a0,v0,zero
jalr t9
_sw v0,0x1c(sp)
or a1,zero,zero
lw gp,0x10(sp)
lw t9,-0x7d24(gp)
jalr t9
_or a0,s0,zero
or a1,s0,zero
lw gp,0x10(sp)
or s1,v0,zero
or a2,v0,zero
lw t9,-0x7db0(gp)
jalr t9
_or a0,s0,zero
beq s1,zero,0x00014564
_lw gp,0x10(sp)
lw s5,-0x7fcc(gp)
addiu s2,sp,0x30
addiu s5,s5,0x365c
lw t9,-0x7e3c(gp)
li a1,0x2
or a0,s2,zero
jalr t9
_addiu s1,s1,-0x1
or a0,s3,zero
or t9,s5,zero
bal 0x0001365c
_or a1,s2,zero
lw gp,0x10(sp)
lw t9,-0x7e08(gp)
jalr t9
_or a0,s2,zero
bne s1,zero,0x00014528
_lw gp,0x10(sp)
lw s6,-0x7fcc(gp)
li s2,0x1
lw s5,-0x7fc8(gp)
li s1,0x3
addiu s7,sp,0x30
addiu s6,s6,0x365c
b 0x000145b8
_addiu s5,s5,0x7e4c
addu v0,s2,s5
lw t9,-0x7e78(gp)
or a0,s0,zero
addiu s2,s2,0x1
lbu v0,0x0(v0)
addu s1,s1,v0
jalr t9
_mul a1,s1,s1
bltz v0,0x00014624
_lw gp,0x10(sp)
li v0,0x29d
beq s2,v0,0x00014628
_lw t9,-0x7e08(gp)
lw t9,-0x7df8(gp)
or a1,s1,zero
jalr t9
_or a0,s0,zero
beq v0,zero,0x00014584
_lw gp,0x10(sp)
lw t9,-0x7d94(gp)
or a2,s1,zero
or a1,s0,zero
jalr t9
_or a0,s0,zero
or a1,s1,zero
lw gp,0x10(sp)
lw t9,-0x7e3c(gp)
jalr t9
_or a0,s7,zero
or a0,s3,zero
or t9,s6,zero
bal 0x0001365c
_or a1,s7,zero
lw gp,0x10(sp)
lw t9,-0x7e08(gp)
jalr t9
_or a0,s7,zero
li v0,0x29d
bne s2,v0,0x000145b8
_lw gp,0x10(sp)
lw t9,-0x7e08(gp)
jalr t9
_lw a0,0x1c(sp)
li a1,0x1
lw gp,0x10(sp)
lw t9,-0x7e78(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x00014484
_lw gp,0x10(sp)
lbu v0,-0x6c28(s8)
bne v0,zero,0x000146d4
_lw v0,-0x7d40(gp)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x4704
bal 0x00014704
_or a0,s0,zero
beq v0,zero,0x000146b4
_lw gp,0x10(sp)
lw t9,-0x7fcc(gp)
or a1,s0,zero
addiu t9,t9,0x365c
bal 0x0001365c
_or a0,s3,zero
b 0x00014484
_lw gp,0x10(sp)
lw v0,-0x7d40(gp)
li a2,0x11
lw a0,-0x7fc8(gp)
li a1,0x1
lw t9,-0x7da8(gp)
lw a3,0x0(v0)
jalr t9
_addiu a0,a0,0x4c20
b 0x000144d0
_lw gp,0x10(sp)
lw t9,-0x7fcc(gp)
li a1,0x1
or a2,s3,zero
addiu t9,t9,0x4a38
bal 0x00014a38
_or a0,s0,zero
b 0x00014484
_lw gp,0x10(sp)
li a2,0x13
lw a0,-0x7fc8(gp)
li a1,0x1
lw t9,-0x7da8(gp)
lw a3,0x0(v0)
jalr t9
_addiu a0,a0,0x4c34
b 0x00014658
_lw gp,0x10(sp)
lw t9,-0x7d80(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000151d4) */\n/* WARNING: Removing unreachable block (ram,0x00015078) */\n/* WARNING: Removing unreachable block (ram,0x00015104) */\n/* WARNING: Removing unreachable block (ram,0x00015260) */\n\ncode * FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int iVar5;\n  byte *pbVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  code *pcVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  undefined4 *unaff_s0;\n  undefined4 *unaff_s1;\n  undefined4 *unaff_s2;\n  undefined1 *puVar23;\n  undefined4 *unaff_s3;\n  undefined *unaff_s5;\n  undefined *unaff_s6;\n  undefined1 *unaff_s7;\n  undefined *puVar24;\n  code *pcVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  uint uVar29;\n  uint uStack_1c4;\n  undefined1 *puStack_1bc;\n  uint uStack_1b0;\n  uint uStack_1a8;\n  undefined1 auStack_17c [12];\n  undefined1 auStack_170 [12];\n  undefined1 auStack_164 [12];\n  undefined1 auStack_158 [12];\n  undefined1 auStack_14c [12];\n  undefined1 auStack_140 [12];\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  undefined4 *puStack_12c;\n  undefined4 *puStack_128;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined *puStack_11c;\n  undefined *puStack_118;\n  undefined1 *puStack_114;\n  undefined *puStack_110;\n  code *pcStack_10c;\n  undefined *puStack_f8;\n  undefined *puStack_f4;\n  undefined *puStack_f0;\n  code *pcStack_e4;\n  undefined4 *puStack_e0;\n  code *pcStack_dc;\n  int *piStack_d8;\n  int *piStack_d4;\n  int aiStack_d0 [2];\n  undefined *puStack_c8;\n  undefined auStack_c4 [12];\n  undefined4 auStack_b8 [3];\n  undefined4 auStack_ac [3];\n  undefined4 auStack_a0 [3];\n  int iStack_94;\n  undefined4 *puStack_90;\n  undefined4 *puStack_8c;\n  undefined4 *puStack_88;\n  undefined4 *puStack_84;\n  undefined *puStack_80;\n  undefined *puStack_7c;\n  undefined *puStack_78;\n  undefined1 *puStack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  undefined1 auStack_44 [12];\n  undefined1 auStack_38 [12];\n  code *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = param_1[1];\n  param_2[1] = 0;\n  param_2[2] = 0;\n  local_2c = *(code **)puVar4;\n  *param_2 = 0;\n  puVar26 = PTR_DAT_000390f8;\n  puVar13 = param_1;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }\n  if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }\n  pcVar27 = FUN_00014704;\n  puVar24 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  puStack_f0 = puVar24 + 0x2c9cc;\n  piStack_d8 = *(int **)(puVar24 + 0x24c64);\n  puVar15 = (undefined4 *)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar26;\n  iStack_94 = *piStack_d8;\n  puStack_90 = unaff_s0;\n  puStack_8c = unaff_s1;\n  puStack_88 = unaff_s2;\n  puStack_84 = unaff_s3;\n  puStack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  pcStack_6c = pcVar27;\n  iVar5 = (**(code **)(puVar24 + 0x24b54))();\n  if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }\n  pcVar27 = *(code **)(puStack_f0 + -0x7d80);\n  pcVar28 = FUN_00014a38;\n  iVar5 = iStack_94;\n  (*pcVar27)();\n  piVar8 = *(int **)(pcVar27 + 0x24930);\n  iVar14 = *(int *)(pcVar27 + 0x246c0);\n  pcStack_134 = (code *)*piVar8;\n  puStack_130 = unaff_s0;\n  puStack_12c = unaff_s1;\n  puStack_128 = unaff_s2;\n  puStack_124 = unaff_s3;\n  puStack_120 = puVar13;\n  puStack_11c = unaff_s5;\n  puStack_118 = unaff_s6;\n  puStack_114 = unaff_s7;\n  puStack_110 = puVar26;\n  pcStack_10c = pcVar28;\n  if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }\n  puVar21 = auStack_140;\n  puVar17 = auStack_14c;\n  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);\n  puVar18 = auStack_170;\n  pcVar20 = (code *)auStack_158;\n  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);\n  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);\n  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);\n  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);\n  uStack_1a8 = 1;\n  uStack_1b0 = 0;\n  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);\n  iVar9 = *(int *)(pcVar27 + 0x246cc);\n  iVar10 = *(int *)(pcVar27 + 0x246d0);\n  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n  uVar19 = 0;\n  uVar29 = 1;\n  if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  (*pcVar28)();\n  pcVar28 = (code *)*piVar8;\n  if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }\n  (**(code **)(pcVar27 + 0x24918))();\n  pcVar27 = pcVar27 + 0x2c698;\n  pcVar28 = pcVar20;\n  puVar16 = puVar21;\n  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );\n}\n\n" comment comment comment comment (function_definition "code * FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int iVar5;\n  byte *pbVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  code *pcVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  undefined4 *unaff_s0;\n  undefined4 *unaff_s1;\n  undefined4 *unaff_s2;\n  undefined1 *puVar23;\n  undefined4 *unaff_s3;\n  undefined *unaff_s5;\n  undefined *unaff_s6;\n  undefined1 *unaff_s7;\n  undefined *puVar24;\n  code *pcVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  uint uVar29;\n  uint uStack_1c4;\n  undefined1 *puStack_1bc;\n  uint uStack_1b0;\n  uint uStack_1a8;\n  undefined1 auStack_17c [12];\n  undefined1 auStack_170 [12];\n  undefined1 auStack_164 [12];\n  undefined1 auStack_158 [12];\n  undefined1 auStack_14c [12];\n  undefined1 auStack_140 [12];\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  undefined4 *puStack_12c;\n  undefined4 *puStack_128;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined *puStack_11c;\n  undefined *puStack_118;\n  undefined1 *puStack_114;\n  undefined *puStack_110;\n  code *pcStack_10c;\n  undefined *puStack_f8;\n  undefined *puStack_f4;\n  undefined *puStack_f0;\n  code *pcStack_e4;\n  undefined4 *puStack_e0;\n  code *pcStack_dc;\n  int *piStack_d8;\n  int *piStack_d4;\n  int aiStack_d0 [2];\n  undefined *puStack_c8;\n  undefined auStack_c4 [12];\n  undefined4 auStack_b8 [3];\n  undefined4 auStack_ac [3];\n  undefined4 auStack_a0 [3];\n  int iStack_94;\n  undefined4 *puStack_90;\n  undefined4 *puStack_8c;\n  undefined4 *puStack_88;\n  undefined4 *puStack_84;\n  undefined *puStack_80;\n  undefined *puStack_7c;\n  undefined *puStack_78;\n  undefined1 *puStack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  undefined1 auStack_44 [12];\n  undefined1 auStack_38 [12];\n  code *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = param_1[1];\n  param_2[1] = 0;\n  param_2[2] = 0;\n  local_2c = *(code **)puVar4;\n  *param_2 = 0;\n  puVar26 = PTR_DAT_000390f8;\n  puVar13 = param_1;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }\n  if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }\n  pcVar27 = FUN_00014704;\n  puVar24 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  puStack_f0 = puVar24 + 0x2c9cc;\n  piStack_d8 = *(int **)(puVar24 + 0x24c64);\n  puVar15 = (undefined4 *)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar26;\n  iStack_94 = *piStack_d8;\n  puStack_90 = unaff_s0;\n  puStack_8c = unaff_s1;\n  puStack_88 = unaff_s2;\n  puStack_84 = unaff_s3;\n  puStack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  pcStack_6c = pcVar27;\n  iVar5 = (**(code **)(puVar24 + 0x24b54))();\n  if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }\n  pcVar27 = *(code **)(puStack_f0 + -0x7d80);\n  pcVar28 = FUN_00014a38;\n  iVar5 = iStack_94;\n  (*pcVar27)();\n  piVar8 = *(int **)(pcVar27 + 0x24930);\n  iVar14 = *(int *)(pcVar27 + 0x246c0);\n  pcStack_134 = (code *)*piVar8;\n  puStack_130 = unaff_s0;\n  puStack_12c = unaff_s1;\n  puStack_128 = unaff_s2;\n  puStack_124 = unaff_s3;\n  puStack_120 = puVar13;\n  puStack_11c = unaff_s5;\n  puStack_118 = unaff_s6;\n  puStack_114 = unaff_s7;\n  puStack_110 = puVar26;\n  pcStack_10c = pcVar28;\n  if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }\n  puVar21 = auStack_140;\n  puVar17 = auStack_14c;\n  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);\n  puVar18 = auStack_170;\n  pcVar20 = (code *)auStack_158;\n  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);\n  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);\n  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);\n  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);\n  uStack_1a8 = 1;\n  uStack_1b0 = 0;\n  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);\n  iVar9 = *(int *)(pcVar27 + 0x246cc);\n  iVar10 = *(int *)(pcVar27 + 0x246d0);\n  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n  uVar19 = 0;\n  uVar29 = 1;\n  if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  (*pcVar28)();\n  pcVar28 = (code *)*piVar8;\n  if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }\n  (**(code **)(pcVar27 + 0x24918))();\n  pcVar27 = pcVar27 + 0x2c698;\n  pcVar28 = pcVar20;\n  puVar16 = puVar21;\n  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );\n}" type_identifier (pointer_declarator "* FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" * (function_declarator "FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int iVar5;\n  byte *pbVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  code *pcVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  undefined4 *unaff_s0;\n  undefined4 *unaff_s1;\n  undefined4 *unaff_s2;\n  undefined1 *puVar23;\n  undefined4 *unaff_s3;\n  undefined *unaff_s5;\n  undefined *unaff_s6;\n  undefined1 *unaff_s7;\n  undefined *puVar24;\n  code *pcVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  uint uVar29;\n  uint uStack_1c4;\n  undefined1 *puStack_1bc;\n  uint uStack_1b0;\n  uint uStack_1a8;\n  undefined1 auStack_17c [12];\n  undefined1 auStack_170 [12];\n  undefined1 auStack_164 [12];\n  undefined1 auStack_158 [12];\n  undefined1 auStack_14c [12];\n  undefined1 auStack_140 [12];\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  undefined4 *puStack_12c;\n  undefined4 *puStack_128;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined *puStack_11c;\n  undefined *puStack_118;\n  undefined1 *puStack_114;\n  undefined *puStack_110;\n  code *pcStack_10c;\n  undefined *puStack_f8;\n  undefined *puStack_f4;\n  undefined *puStack_f0;\n  code *pcStack_e4;\n  undefined4 *puStack_e0;\n  code *pcStack_dc;\n  int *piStack_d8;\n  int *piStack_d4;\n  int aiStack_d0 [2];\n  undefined *puStack_c8;\n  undefined auStack_c4 [12];\n  undefined4 auStack_b8 [3];\n  undefined4 auStack_ac [3];\n  undefined4 auStack_a0 [3];\n  int iStack_94;\n  undefined4 *puStack_90;\n  undefined4 *puStack_8c;\n  undefined4 *puStack_88;\n  undefined4 *puStack_84;\n  undefined *puStack_80;\n  undefined *puStack_7c;\n  undefined *puStack_78;\n  undefined1 *puStack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  undefined1 auStack_44 [12];\n  undefined1 auStack_38 [12];\n  code *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = param_1[1];\n  param_2[1] = 0;\n  param_2[2] = 0;\n  local_2c = *(code **)puVar4;\n  *param_2 = 0;\n  puVar26 = PTR_DAT_000390f8;\n  puVar13 = param_1;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }\n  if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }\n  pcVar27 = FUN_00014704;\n  puVar24 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  puStack_f0 = puVar24 + 0x2c9cc;\n  piStack_d8 = *(int **)(puVar24 + 0x24c64);\n  puVar15 = (undefined4 *)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar26;\n  iStack_94 = *piStack_d8;\n  puStack_90 = unaff_s0;\n  puStack_8c = unaff_s1;\n  puStack_88 = unaff_s2;\n  puStack_84 = unaff_s3;\n  puStack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  pcStack_6c = pcVar27;\n  iVar5 = (**(code **)(puVar24 + 0x24b54))();\n  if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }\n  pcVar27 = *(code **)(puStack_f0 + -0x7d80);\n  pcVar28 = FUN_00014a38;\n  iVar5 = iStack_94;\n  (*pcVar27)();\n  piVar8 = *(int **)(pcVar27 + 0x24930);\n  iVar14 = *(int *)(pcVar27 + 0x246c0);\n  pcStack_134 = (code *)*piVar8;\n  puStack_130 = unaff_s0;\n  puStack_12c = unaff_s1;\n  puStack_128 = unaff_s2;\n  puStack_124 = unaff_s3;\n  puStack_120 = puVar13;\n  puStack_11c = unaff_s5;\n  puStack_118 = unaff_s6;\n  puStack_114 = unaff_s7;\n  puStack_110 = puVar26;\n  pcStack_10c = pcVar28;\n  if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }\n  puVar21 = auStack_140;\n  puVar17 = auStack_14c;\n  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);\n  puVar18 = auStack_170;\n  pcVar20 = (code *)auStack_158;\n  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);\n  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);\n  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);\n  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);\n  uStack_1a8 = 1;\n  uStack_1b0 = 0;\n  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);\n  iVar9 = *(int *)(pcVar27 + 0x246cc);\n  iVar10 = *(int *)(pcVar27 + 0x246d0);\n  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n  uVar19 = 0;\n  uVar29 = 1;\n  if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  (*pcVar28)();\n  pcVar28 = (code *)*piVar8;\n  if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }\n  (**(code **)(pcVar27 + 0x24918))();\n  pcVar27 = pcVar27 + 0x2c698;\n  pcVar28 = pcVar20;\n  puVar16 = puVar21;\n  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "undefined4 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined4 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "undefined *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined1 *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint uStack_1c4;" type_identifier identifier ;) (declaration "undefined1 *puStack_1bc;" type_identifier (pointer_declarator "*puStack_1bc" * identifier) ;) (declaration "uint uStack_1b0;" type_identifier identifier ;) (declaration "uint uStack_1a8;" type_identifier identifier ;) (declaration "undefined1 auStack_17c [12];" type_identifier (array_declarator "auStack_17c [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_170 [12];" type_identifier (array_declarator "auStack_170 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_164 [12];" type_identifier (array_declarator "auStack_164 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_158 [12];" type_identifier (array_declarator "auStack_158 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_14c [12];" type_identifier (array_declarator "auStack_14c [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_140 [12];" type_identifier (array_declarator "auStack_140 [12]" identifier [ number_literal ]) ;) (declaration "code *pcStack_134;" type_identifier (pointer_declarator "*pcStack_134" * identifier) ;) (declaration "undefined4 *puStack_130;" type_identifier (pointer_declarator "*puStack_130" * identifier) ;) (declaration "undefined4 *puStack_12c;" type_identifier (pointer_declarator "*puStack_12c" * identifier) ;) (declaration "undefined4 *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "undefined4 *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "undefined4 *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "undefined *puStack_11c;" type_identifier (pointer_declarator "*puStack_11c" * identifier) ;) (declaration "undefined *puStack_118;" type_identifier (pointer_declarator "*puStack_118" * identifier) ;) (declaration "undefined1 *puStack_114;" type_identifier (pointer_declarator "*puStack_114" * identifier) ;) (declaration "undefined *puStack_110;" type_identifier (pointer_declarator "*puStack_110" * identifier) ;) (declaration "code *pcStack_10c;" type_identifier (pointer_declarator "*pcStack_10c" * identifier) ;) (declaration "undefined *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "undefined *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "undefined *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "undefined4 *puStack_e0;" type_identifier (pointer_declarator "*puStack_e0" * identifier) ;) (declaration "code *pcStack_dc;" type_identifier (pointer_declarator "*pcStack_dc" * identifier) ;) (declaration "int *piStack_d8;" primitive_type (pointer_declarator "*piStack_d8" * identifier) ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "int aiStack_d0 [2];" primitive_type (array_declarator "aiStack_d0 [2]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "undefined auStack_c4 [12];" type_identifier (array_declarator "auStack_c4 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_b8 [3];" type_identifier (array_declarator "auStack_b8 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_ac [3];" type_identifier (array_declarator "auStack_ac [3]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_a0 [3];" type_identifier (array_declarator "auStack_a0 [3]" identifier [ number_literal ]) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "undefined4 *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "undefined4 *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "undefined4 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "undefined4 *puStack_84;" type_identifier (pointer_declarator "*puStack_84" * identifier) ;) (declaration "undefined *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "undefined *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "undefined1 *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "undefined1 auStack_44 [12];" type_identifier (array_declarator "auStack_44 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_38 [12];" type_identifier (array_declarator "auStack_38 [12]" identifier [ number_literal ]) ;) (declaration "code *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00039368;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00039368" identifier = identifier) ;) (expression_statement "iVar5 = param_1[1];" (assignment_expression "iVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_2c = *(code **)puVar4;" (assignment_expression "local_2c = *(code **)puVar4" identifier = (pointer_expression "*(code **)puVar4" * (cast_expression "(code **)puVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "puVar26 = PTR_DAT_000390f8;" (assignment_expression "puVar26 = PTR_DAT_000390f8" identifier = identifier) ;) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }" { (if_statement "if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }" if (parenthesized_expression "(PTR_DAT_000390f8[-0x6c28] != '\0')" ( (binary_expression "PTR_DAT_000390f8[-0x6c28] != '\0'" (subscript_expression "PTR_DAT_000390f8[-0x6c28]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }" { (expression_statement "(*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);" (call_expression "(*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390)" (parenthesized_expression "(*(code *)PTR_fwrite_00039328)" ( (pointer_expression "*(code *)PTR_fwrite_00039328" * (cast_expression "(code *)PTR_fwrite_00039328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390)" ( (binary_expression "PTR_LAB_00039108 + 0x4c20" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_00039390" * (cast_expression "(undefined4 *)PTR_stderr_00039390" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "(*(code *)PTR___gmpz_init_0003924c)(auStack_44);" (call_expression "(*(code *)PTR___gmpz_init_0003924c)(auStack_44)" (parenthesized_expression "(*(code *)PTR___gmpz_init_0003924c)" ( (pointer_expression "*(code *)PTR___gmpz_init_0003924c" * (cast_expression "(code *)PTR___gmpz_init_0003924c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_44)" ( identifier ))) ;) (expression_statement "puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);" (assignment_expression "puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" (parenthesized_expression "(*(code *)PTR___gmpz_scan1_000393ac)" ( (pointer_expression "*(code *)PTR___gmpz_scan1_000393ac" * (cast_expression "(code *)PTR___gmpz_scan1_000393ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0)" ( identifier , number_literal ))))) ;) (expression_statement "param_3 = puVar15;" (assignment_expression "param_3 = puVar15" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);" (call_expression "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)" ( (pointer_expression "*(code *)PTR___gmpz_fdiv_q_2exp_00039320" * (cast_expression "(code *)PTR___gmpz_fdiv_q_2exp_00039320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1)" ( identifier , identifier ))) ;) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }" { (do_statement "do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);" do (compound_statement "{\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      }" { (expression_statement "puVar15 = (undefined4 *)((int)puVar15 + -1);" (assignment_expression "puVar15 = (undefined4 *)((int)puVar15 + -1)" identifier = (cast_expression "(undefined4 *)((int)puVar15 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + -1)" ( (binary_expression "(int)puVar15 + -1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);" (call_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2)" (parenthesized_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)" ( (pointer_expression "*(code *)PTR___gmpz_init_set_ui_00039294" * (cast_expression "(code *)PTR___gmpz_init_set_ui_00039294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_38,2)" ( identifier , number_literal ))) ;) (expression_statement "FUN_0001365c(param_2,auStack_38);" (call_expression "FUN_0001365c(param_2,auStack_38)" identifier (argument_list "(param_2,auStack_38)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(auStack_38);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(auStack_38)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_38)" ( identifier ))) ;) }) while (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "unaff_s2 = (undefined4 *)0x1;" (assignment_expression "unaff_s2 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s1 = (undefined4 *)0x3;" (assignment_expression "unaff_s1 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s7 = auStack_38;" (assignment_expression "unaff_s7 = auStack_38" identifier = identifier) ;) (expression_statement "unaff_s6 = PTR_00039104 + 0x365c;" (assignment_expression "unaff_s6 = PTR_00039104 + 0x365c" identifier = (binary_expression "PTR_00039104 + 0x365c" identifier + number_literal)) ;) (expression_statement "unaff_s5 = PTR_LAB_00039108 + 0x7e4c;" (assignment_expression "unaff_s5 = PTR_LAB_00039108 + 0x7e4c" identifier = (binary_expression "PTR_LAB_00039108 + 0x7e4c" identifier + number_literal)) ;) (do_statement "do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);" do (compound_statement "{\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    }" { (while_statement "while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }" while (parenthesized_expression "(iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1)" identifier = (call_expression "(*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_divisible_ui_p_000392d8)" ( (pointer_expression "*(code *)PTR___gmpz_divisible_ui_p_000392d8" * (cast_expression "(code *)PTR___gmpz_divisible_ui_p_000392d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,unaff_s1)" ( identifier , identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) )) (compound_statement "{\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }" { (expression_statement "pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);" (assignment_expression "pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5)" identifier = (cast_expression "(byte *)((int)unaff_s2 + (int)unaff_s5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + (int)unaff_s5)" ( (binary_expression "(int)unaff_s2 + (int)unaff_s5" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (undefined4 *)((int)unaff_s2 + 1)" identifier = (cast_expression "(undefined4 *)((int)unaff_s2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + 1)" ( (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);" (assignment_expression "unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6)" identifier = (cast_expression "(undefined4 *)((int)unaff_s1 + (uint)*pbVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s1 + (uint)*pbVar6)" ( (binary_expression "(int)unaff_s1 + (uint)*pbVar6" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar6" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1)" identifier = (call_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)" ( (pointer_expression "*(code *)PTR___gmpz_cmp_ui_00039258" * (cast_expression "(code *)PTR___gmpz_cmp_ui_00039258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,(int)unaff_s1 * (int)unaff_s1)" ( identifier , (binary_expression "(int)unaff_s1 * (int)unaff_s1" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) * (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;" if (parenthesized_expression "((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d))" ( (binary_expression "(iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)" (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) || (parenthesized_expression "(unaff_s2 == (undefined4 *)0x29d)" ( (binary_expression "unaff_s2 == (undefined4 *)0x29d" identifier == (cast_expression "(undefined4 *)0x29d" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00014628;" goto statement_identifier ;)) })) (expression_statement "param_3 = unaff_s1;" (assignment_expression "param_3 = unaff_s1" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);" (call_expression "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)" ( (pointer_expression "*(code *)PTR___gmpz_tdiv_q_ui_0003933c" * (cast_expression "(code *)PTR___gmpz_tdiv_q_ui_0003933c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);" (call_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)" ( (pointer_expression "*(code *)PTR___gmpz_init_set_ui_00039294" * (cast_expression "(code *)PTR___gmpz_init_set_ui_00039294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,unaff_s1)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001365c(param_2,unaff_s7);" (call_expression "FUN_0001365c(param_2,unaff_s7)" identifier (argument_list "(param_2,unaff_s7)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(unaff_s7)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7)" ( identifier ))) ;) }) while (parenthesized_expression "(unaff_s2 != (undefined4 *)0x29d)" ( (binary_expression "unaff_s2 != (undefined4 *)0x29d" identifier != (cast_expression "(undefined4 *)0x29d" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);" statement_identifier : (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(auStack_44);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(auStack_44)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_44)" ( identifier ))) ;)) (expression_statement "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1)" identifier = (call_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1)" (parenthesized_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)" ( (pointer_expression "*(code *)PTR___gmpz_cmp_ui_00039258" * (cast_expression "(code *)PTR___gmpz_cmp_ui_00039258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (expression_statement "unaff_s3 = param_2;" (assignment_expression "unaff_s3 = param_2" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }" { (if_statement "if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }" if (parenthesized_expression "(puVar26[-0x6c28] != '\0')" ( (binary_expression "puVar26[-0x6c28] != '\0'" (subscript_expression "puVar26[-0x6c28]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }" { (expression_statement "param_3 = (undefined4 *)0x13;" (assignment_expression "param_3 = (undefined4 *)0x13" identifier = (cast_expression "(undefined4 *)0x13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);" (call_expression "(*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390)" (parenthesized_expression "(*(code *)PTR_fwrite_00039328)" ( (pointer_expression "*(code *)PTR_fwrite_00039328" * (cast_expression "(code *)PTR_fwrite_00039328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390)" ( (binary_expression "PTR_LAB_00039108 + 0x4c34" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_00039390" * (cast_expression "(undefined4 *)PTR_stderr_00039390" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "iVar5 = FUN_00014704(param_1);" (assignment_expression "iVar5 = FUN_00014704(param_1)" identifier = (call_expression "FUN_00014704(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }" { (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (expression_statement "param_3 = param_2;" (assignment_expression "param_3 = param_2" identifier = identifier) ;) (expression_statement "FUN_00014a38(param_1,1);" (call_expression "FUN_00014a38(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" else (compound_statement "{\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" { (expression_statement "puVar13 = param_2;" (assignment_expression "puVar13 = param_2" identifier = identifier) ;) (expression_statement "FUN_0001365c(param_2,param_1);" (call_expression "FUN_0001365c(param_2,param_1)" identifier (argument_list "(param_2,param_1)" ( identifier , identifier ))) ;) }))) })) })) (if_statement "if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }" if (parenthesized_expression "(local_2c == *(code **)puVar4)" ( (binary_expression "local_2c == *(code **)puVar4" identifier == (pointer_expression "*(code **)puVar4" * (cast_expression "(code **)puVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return *(code **)puVar4;\n  }" { (return_statement "return *(code **)puVar4;" return (pointer_expression "*(code **)puVar4" * (cast_expression "(code **)puVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "pcVar27 = FUN_00014704;" (assignment_expression "pcVar27 = FUN_00014704" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_00039350;" (assignment_expression "puVar24 = PTR___stack_chk_fail_00039350" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00039350)();" (call_expression "(*(code *)PTR___stack_chk_fail_00039350)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00039350)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00039350" * (cast_expression "(code *)PTR___stack_chk_fail_00039350" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_f0 = puVar24 + 0x2c9cc;" (assignment_expression "puStack_f0 = puVar24 + 0x2c9cc" identifier = (binary_expression "puVar24 + 0x2c9cc" identifier + number_literal)) ;) (expression_statement "piStack_d8 = *(int **)(puVar24 + 0x24c64);" (assignment_expression "piStack_d8 = *(int **)(puVar24 + 0x24c64)" identifier = (pointer_expression "*(int **)(puVar24 + 0x24c64)" * (cast_expression "(int **)(puVar24 + 0x24c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x24c64)" ( (binary_expression "puVar24 + 0x24c64" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = (undefined4 *)0x1;" (assignment_expression "puVar15 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_80 = puVar4;" (assignment_expression "puStack_80 = puVar4" identifier = identifier) ;) (expression_statement "puStack_70 = puVar26;" (assignment_expression "puStack_70 = puVar26" identifier = identifier) ;) (expression_statement "iStack_94 = *piStack_d8;" (assignment_expression "iStack_94 = *piStack_d8" identifier = (pointer_expression "*piStack_d8" * identifier)) ;) (expression_statement "puStack_90 = unaff_s0;" (assignment_expression "puStack_90 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_8c = unaff_s1;" (assignment_expression "puStack_8c = unaff_s1" identifier = identifier) ;) (expression_statement "puStack_88 = unaff_s2;" (assignment_expression "puStack_88 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_84 = unaff_s3;" (assignment_expression "puStack_84 = unaff_s3" identifier = identifier) ;) (expression_statement "puStack_7c = unaff_s5;" (assignment_expression "puStack_7c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_78 = unaff_s6;" (assignment_expression "puStack_78 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_74 = unaff_s7;" (assignment_expression "puStack_74 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_6c = pcVar27;" (assignment_expression "pcStack_6c = pcVar27" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar24 + 0x24b54))();" (assignment_expression "iVar5 = (**(code **)(puVar24 + 0x24b54))()" identifier = (call_expression "(**(code **)(puVar24 + 0x24b54))()" (parenthesized_expression "(**(code **)(puVar24 + 0x24b54))" ( (pointer_expression "**(code **)(puVar24 + 0x24b54)" * (pointer_expression "*(code **)(puVar24 + 0x24b54)" * (cast_expression "(code **)(puVar24 + 0x24b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x24b54)" ( (binary_expression "puVar24 + 0x24b54" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (compound_statement "{\n    pcStack_dc = (code *)0x0;\n  }" { (expression_statement "pcStack_dc = (code *)0x0;" (assignment_expression "pcStack_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" else (compound_statement "{\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" { (expression_statement "puVar15 = (undefined4 *)0x17ded79;" (assignment_expression "puVar15 = (undefined4 *)0x17ded79" identifier = (cast_expression "(undefined4 *)0x17ded79" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);" (assignment_expression "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13)" identifier = (call_expression "(**(code **)(puStack_f0 + -0x7e78))(puVar13)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e78))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7e78)" * (pointer_expression "*(code **)(puStack_f0 + -0x7e78)" * (cast_expression "(code **)(puStack_f0 + -0x7e78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7e78)" ( (binary_expression "puStack_f0 + -0x7e78" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;) (if_statement "if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n      pcStack_dc = (code *)0x1;\n    }" { (expression_statement "pcStack_dc = (code *)0x1;" (assignment_expression "pcStack_dc = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" else (compound_statement "{\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" { (expression_statement "unaff_s2 = auStack_ac;" (assignment_expression "unaff_s2 = auStack_ac" identifier = identifier) ;) (expression_statement "unaff_s1 = auStack_b8;" (assignment_expression "unaff_s1 = auStack_b8" identifier = identifier) ;) (expression_statement "puStack_f8 = (undefined *)0x0;" (assignment_expression "puStack_f8 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = auStack_c4;" (assignment_expression "unaff_s5 = auStack_c4" identifier = identifier) ;) (expression_statement "unaff_s0 = auStack_a0;" (assignment_expression "unaff_s0 = auStack_a0" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);" (call_expression "(**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d88))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d88)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d88)" * (cast_expression "(code **)(puStack_f0 + -0x7d88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d88)" ( (binary_expression "puStack_f0 + -0x7d88" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);" (call_expression "(**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d48))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d48)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d48)" * (cast_expression "(code **)(puStack_f0 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d48)" ( (binary_expression "puStack_f0 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,puVar13,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);" (assignment_expression "unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" identifier = (cast_expression "(undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d24))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d24)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d24)" * (cast_expression "(code **)(puStack_f0 + -0x7d24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d24)" ( (binary_expression "puStack_f0 + -0x7d24" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,0)" ( identifier , number_literal ))))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);" (call_expression "(**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e24))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7e24)" * (pointer_expression "*(code **)(puStack_f0 + -0x7e24)" * (cast_expression "(code **)(puStack_f0 + -0x7e24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7e24)" ( (binary_expression "puStack_f0 + -0x7e24" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s2,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);" (call_expression "(**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d58))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d58)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d58)" * (cast_expression "(code **)(puStack_f0 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d58)" ( (binary_expression "puStack_f0 + -0x7d58" identifier + number_literal) ))))) )) (argument_list "(unaff_s1,2)" ( identifier , number_literal ))) ;) (expression_statement "pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);" (assignment_expression "pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" identifier = (cast_expression "(code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" ( (binary_expression "*(int *)(puStack_f0 + -0x7fcc) + 0x42e0" (pointer_expression "*(int *)(puStack_f0 + -0x7fcc)" * (cast_expression "(int *)(puStack_f0 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_f0 + -0x7fcc)" ( (binary_expression "puStack_f0 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puStack_f8 = unaff_s5;" (assignment_expression "puStack_f8 = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_f4 = unaff_s6;" (assignment_expression "puStack_f4 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);" (assignment_expression "pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" identifier = (cast_expression "(code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" identifier (argument_list "(puVar13,unaff_s2,unaff_s1,unaff_s0)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }" if (parenthesized_expression "(pcStack_dc != (code *)0x0)" ( (binary_expression "pcStack_dc != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }" { (expression_statement "piStack_d4 = aiStack_d0;" (assignment_expression "piStack_d4 = aiStack_d0" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);" (call_expression "(**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d8c))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d8c)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d8c)" * (cast_expression "(code **)(puStack_f0 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d8c)" ( (binary_expression "puStack_f0 + -0x7d8c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s2)" ( identifier , identifier ))) ;) (expression_statement "FUN_00014424(unaff_s0,aiStack_d0);" (call_expression "FUN_00014424(unaff_s0,aiStack_d0)" identifier (argument_list "(unaff_s0,aiStack_d0)" ( identifier , identifier ))) ;) (expression_statement "unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);" (assignment_expression "unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" identifier = (cast_expression "(undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" ( (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" * (cast_expression "(int *)(puStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_f0 + -0x7fc8)" ( (binary_expression "puStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);" (assignment_expression "puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000)" identifier = (cast_expression "(undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fc8) + 33000)" ( (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 33000" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" * (cast_expression "(int *)(puStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_f0 + -0x7fc8)" ( (binary_expression "puStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (while_statement "while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }" while (parenthesized_expression "(unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0)" ( (comma_expression "unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0" (assignment_expression "unaff_s7 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "puStack_c8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }" { (expression_statement "puVar26 = (undefined *)0x0;" (assignment_expression "puVar26 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);" do (compound_statement "{\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          }" { (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);" (call_expression "(**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0])" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d84))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d84)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d84)" * (cast_expression "(code **)(puStack_f0 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d84)" ( (binary_expression "puStack_f0 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0])" ( identifier , identifier , (binary_expression "unaff_s7 + aiStack_d0[0]" identifier + (subscript_expression "aiStack_d0[0]" identifier [ number_literal ])) ))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);" (call_expression "(**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d78))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d78)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d78)" * (cast_expression "(code **)(puStack_f0 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d78)" ( (binary_expression "puStack_f0 + -0x7d78" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s1,unaff_s0,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);" (assignment_expression "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1)" identifier = (call_expression "(**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e78))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7e78)" * (pointer_expression "*(code **)(puStack_f0 + -0x7e78)" * (cast_expression "(code **)(puStack_f0 + -0x7e78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7e78)" ( (binary_expression "puStack_f0 + -0x7e78" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,1)" ( identifier , number_literal )))) ;) (if_statement "if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }" if (parenthesized_expression "(puStack_c8 <= puVar26)" ( (binary_expression "puStack_c8 <= puVar26" identifier <= identifier) )) (compound_statement "{\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }" { (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7de4);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7de4)" identifier = (pointer_expression "*(code **)(puStack_f0 + -0x7de4)" * (cast_expression "(code **)(puStack_f0 + -0x7de4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7de4)" ( (binary_expression "puStack_f0 + -0x7de4" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00014908;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00014908;" goto statement_identifier ;)) (goto_statement "goto LAB_000149e4;" goto statement_identifier ;) })) (expression_statement "unaff_s7 = unaff_s7 + 0xc;" (assignment_expression "unaff_s7 = unaff_s7 + 0xc" identifier = (binary_expression "unaff_s7 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7de4);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7de4)" identifier = (pointer_expression "*(code **)(puStack_f0 + -0x7de4)" * (cast_expression "(code **)(puStack_f0 + -0x7de4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7de4)" ( (binary_expression "puStack_f0 + -0x7de4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);" statement_identifier : (expression_statement "(*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);" (call_expression "(*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3)" ( identifier , identifier , (pointer_expression "*(undefined1 *)unaff_s3" * (cast_expression "(undefined1 *)unaff_s3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;)) (expression_statement "puStack_f8 = unaff_s5;" (assignment_expression "puStack_f8 = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_f4 = unaff_s6;" (assignment_expression "puStack_f4 = unaff_s6" identifier = identifier) ;) (expression_statement "iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);" (assignment_expression "iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0)" identifier = (call_expression "(*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0)" (parenthesized_expression "(*pcStack_e4)" ( (pointer_expression "*pcStack_e4" * identifier) )) (argument_list "(puVar13,unaff_s2,unaff_s1,unaff_s0)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            pcStack_dc = (code *)0x0;\n            break;\n          }" { (expression_statement "pcStack_dc = (code *)0x0;" (assignment_expression "pcStack_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;) })) (expression_statement "unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (undefined4 *)((int)unaff_s3 + 1)" identifier = (cast_expression "(undefined4 *)((int)unaff_s3 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 1)" ( (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }" if (parenthesized_expression "(puStack_e0 == unaff_s3)" ( (binary_expression "puStack_e0 == unaff_s3" identifier == identifier) )) (compound_statement "{\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }" { (expression_statement "uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;" (assignment_expression "uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" identifier = (call_expression "(**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d7c))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d7c)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d7c)" * (cast_expression "(code **)(puStack_f0 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d7c)" ( (binary_expression "puStack_f0 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" ( number_literal , (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 0x4c48" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" * (cast_expression "(int *)(puStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_f0 + -0x7fc8)" ( (binary_expression "puStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);" (call_expression "(**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7dc0))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7dc0)" * (pointer_expression "*(code **)(puStack_f0 + -0x7dc0)" * (cast_expression "(code **)(puStack_f0 + -0x7dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7dc0)" ( (binary_expression "puStack_f0 + -0x7dc0" identifier + number_literal) ))))) )) (argument_list "(0,0,uVar7)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();" (assignment_expression "pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))()" identifier = (cast_expression "(code *)(**(code **)(puStack_f0 + -0x7e94))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_f0 + -0x7e94))()" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e94))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7e94)" * (pointer_expression "*(code **)(puStack_f0 + -0x7e94)" * (cast_expression "(code **)(puStack_f0 + -0x7e94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7e94)" ( (binary_expression "puStack_f0 + -0x7e94" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar27;" return identifier ;) })) })) (labeled_statement "LAB_000149e4:\n        FUN_00012488(piStack_d4);" statement_identifier : (expression_statement "FUN_00012488(piStack_d4);" (call_expression "FUN_00012488(piStack_d4)" identifier (argument_list "(piStack_d4)" ( identifier ))) ;)) })) (expression_statement "puStack_f8 = (undefined *)0x0;" (assignment_expression "puStack_f8 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = unaff_s1;" (assignment_expression "puVar15 = unaff_s1" identifier = identifier) ;) (expression_statement "param_3 = unaff_s2;" (assignment_expression "param_3 = unaff_s2" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);" (call_expression "(**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d4c))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d4c)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d4c)" * (cast_expression "(code **)(puStack_f0 + -0x7d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d4c)" ( (binary_expression "puStack_f0 + -0x7d4c" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" ( identifier , identifier , identifier , identifier ))) ;) }))) }))) (if_statement "if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }" if (parenthesized_expression "(iStack_94 == *piStack_d8)" ( (binary_expression "iStack_94 == *piStack_d8" identifier == (pointer_expression "*piStack_d8" * identifier)) )) (compound_statement "{\n    return pcStack_dc;\n  }" { (return_statement "return pcStack_dc;" return identifier ;) })) (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7d80);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7d80)" identifier = (pointer_expression "*(code **)(puStack_f0 + -0x7d80)" * (cast_expression "(code **)(puStack_f0 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d80)" ( (binary_expression "puStack_f0 + -0x7d80" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = FUN_00014a38;" (assignment_expression "pcVar28 = FUN_00014a38" identifier = identifier) ;) (expression_statement "iVar5 = iStack_94;" (assignment_expression "iVar5 = iStack_94" identifier = identifier) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar8 = *(int **)(pcVar27 + 0x24930);" (assignment_expression "piVar8 = *(int **)(pcVar27 + 0x24930)" identifier = (pointer_expression "*(int **)(pcVar27 + 0x24930)" * (cast_expression "(int **)(pcVar27 + 0x24930)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24930)" ( (binary_expression "pcVar27 + 0x24930" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(pcVar27 + 0x246c0);" (assignment_expression "iVar14 = *(int *)(pcVar27 + 0x246c0)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x246c0)" * (cast_expression "(int *)(pcVar27 + 0x246c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246c0)" ( (binary_expression "pcVar27 + 0x246c0" identifier + number_literal) ))))) ;) (expression_statement "pcStack_134 = (code *)*piVar8;" (assignment_expression "pcStack_134 = (code *)*piVar8" identifier = (cast_expression "(code *)*piVar8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "puStack_130 = unaff_s0;" (assignment_expression "puStack_130 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_12c = unaff_s1;" (assignment_expression "puStack_12c = unaff_s1" identifier = identifier) ;) (expression_statement "puStack_128 = unaff_s2;" (assignment_expression "puStack_128 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_124 = unaff_s3;" (assignment_expression "puStack_124 = unaff_s3" identifier = identifier) ;) (expression_statement "puStack_120 = puVar13;" (assignment_expression "puStack_120 = puVar13" identifier = identifier) ;) (expression_statement "puStack_11c = unaff_s5;" (assignment_expression "puStack_11c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_118 = unaff_s6;" (assignment_expression "puStack_118 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_114 = unaff_s7;" (assignment_expression "puStack_114 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_110 = puVar26;" (assignment_expression "puStack_110 = puVar26" identifier = identifier) ;) (expression_statement "pcStack_10c = pcVar28;" (assignment_expression "pcStack_10c = pcVar28" identifier = identifier) ;) (if_statement "if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }" if (parenthesized_expression "(*(char *)(iVar14 + -0x6c28) != '\0')" ( (binary_expression "*(char *)(iVar14 + -0x6c28) != '\0'" (pointer_expression "*(char *)(iVar14 + -0x6c28)" * (cast_expression "(char *)(iVar14 + -0x6c28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x6c28)" ( (binary_expression "iVar14 + -0x6c28" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }" { (expression_statement "(**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24824))" ( (pointer_expression "**(code **)(pcVar27 + 0x24824)" * (pointer_expression "*(code **)(pcVar27 + 0x24824)" * (cast_expression "(code **)(pcVar27 + 0x24824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24824)" ( (binary_expression "pcVar27 + 0x24824" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15)" ( (pointer_expression "**(undefined4 **)(pcVar27 + 0x24958)" * (pointer_expression "*(undefined4 **)(pcVar27 + 0x24958)" * (cast_expression "(undefined4 **)(pcVar27 + 0x24958)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24958)" ( (binary_expression "pcVar27 + 0x24958" identifier + number_literal) ))))) , number_literal , (binary_expression "*(int *)(pcVar27 + 0x246d0) + 0x4c7c" (pointer_expression "*(int *)(pcVar27 + 0x246d0)" * (cast_expression "(int *)(pcVar27 + 0x246d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246d0)" ( (binary_expression "pcVar27 + 0x246d0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "puVar21 = auStack_140;" (assignment_expression "puVar21 = auStack_140" identifier = identifier) ;) (expression_statement "puVar17 = auStack_14c;" (assignment_expression "puVar17 = auStack_14c" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);" (call_expression "(**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24910))" ( (pointer_expression "**(code **)(pcVar27 + 0x24910)" * (pointer_expression "*(code **)(pcVar27 + 0x24910)" * (cast_expression "(code **)(pcVar27 + 0x24910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24910)" ( (binary_expression "pcVar27 + 0x24910" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar21,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar18 = auStack_170;" (assignment_expression "puVar18 = auStack_170" identifier = identifier) ;) (expression_statement "pcVar20 = (code *)auStack_158;" (assignment_expression "pcVar20 = (code *)auStack_158" identifier = (cast_expression "(code *)auStack_158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(auStack_164,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(auStack_164,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar27 + 0x248bc)" * (pointer_expression "*(code **)(pcVar27 + 0x248bc)" * (cast_expression "(code **)(pcVar27 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248bc)" ( (binary_expression "pcVar27 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(auStack_164,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(auStack_17c,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar27 + 0x248bc)" * (pointer_expression "*(code **)(pcVar27 + 0x248bc)" * (cast_expression "(code **)(pcVar27 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248bc)" ( (binary_expression "pcVar27 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(puVar18,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(puVar18,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar27 + 0x248bc)" * (pointer_expression "*(code **)(pcVar27 + 0x248bc)" * (cast_expression "(code **)(pcVar27 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248bc)" ( (binary_expression "pcVar27 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(puVar18,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x2485c))(pcVar20,1);" (call_expression "(**(code **)(pcVar27 + 0x2485c))(pcVar20,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2485c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2485c)" * (pointer_expression "*(code **)(pcVar27 + 0x2485c)" * (cast_expression "(code **)(pcVar27 + 0x2485c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2485c)" ( (binary_expression "pcVar27 + 0x2485c" identifier + number_literal) ))))) )) (argument_list "(pcVar20,1)" ( identifier , number_literal ))) ;) (expression_statement "uStack_1a8 = 1;" (assignment_expression "uStack_1a8 = 1" identifier = number_literal) ;) (expression_statement "uStack_1b0 = 0;" (assignment_expression "uStack_1b0 = 0" identifier = number_literal) ;) (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704)" identifier = (cast_expression "(code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x246cc) + 0x4704)" ( (binary_expression "*(int *)(pcVar27 + 0x246cc) + 0x4704" (pointer_expression "*(int *)(pcVar27 + 0x246cc)" * (cast_expression "(int *)(pcVar27 + 0x246cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246cc)" ( (binary_expression "pcVar27 + 0x246cc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar9 = *(int *)(pcVar27 + 0x246cc);" (assignment_expression "iVar9 = *(int *)(pcVar27 + 0x246cc)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x246cc)" * (cast_expression "(int *)(pcVar27 + 0x246cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246cc)" ( (binary_expression "pcVar27 + 0x246cc" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar27 + 0x246d0);" (assignment_expression "iVar10 = *(int *)(pcVar27 + 0x246d0)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x246d0)" * (cast_expression "(int *)(pcVar27 + 0x246d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246d0)" ( (binary_expression "pcVar27 + 0x246d0" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x24820))(iVar5,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" ( (pointer_expression "**(code **)(pcVar27 + 0x24820)" * (pointer_expression "*(code **)(pcVar27 + 0x24820)" * (cast_expression "(code **)(pcVar27 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24820)" ( (binary_expression "pcVar27 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(iVar5,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = 1;" (assignment_expression "uVar29 = 1" identifier = number_literal) ;) (if_statement "if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" { (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x2494c);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x2494c)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x2494c)" * (cast_expression "(code **)(pcVar27 + 0x2494c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2494c)" ( (binary_expression "pcVar27 + 0x2494c" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" else (compound_statement "{\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" { (labeled_statement "LAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);" do (compound_statement "{\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    }" { (while_statement "while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }" { (expression_statement "uVar12 = uVar29;" (assignment_expression "uVar12 = uVar29" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" ( (pointer_expression "**(code **)(pcVar27 + 0x24908)" * (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(puVar17,auStack_17c,auStack_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,puVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar27 + 0x248b4)" * (pointer_expression "*(code **)(pcVar27 + 0x248b4)" * (cast_expression "(code **)(pcVar27 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248b4)" ( (binary_expression "pcVar27 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,auStack_17c,puVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24928))" ( (pointer_expression "**(code **)(pcVar27 + 0x24928)" * (pointer_expression "*(code **)(pcVar27 + 0x24928)" * (cast_expression "(code **)(pcVar27 + 0x24928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24928)" ( (binary_expression "pcVar27 + 0x24928" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar18,auStack_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" ( (pointer_expression "**(code **)(pcVar27 + 0x24908)" * (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(puVar21,pcVar20,puVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(pcVar20,puVar21,iVar5)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar12 & 0x1f) == 1) break;" if (parenthesized_expression "((uVar12 & 0x1f) == 1)" ( (binary_expression "(uVar12 & 0x1f) == 1" (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = uVar12 - 1;" (assignment_expression "uVar29 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);" (assignment_expression "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1)" identifier = (binary_expression "(uint)(uVar29 < uVar12) + (uVar19 - 1)" (call_expression "(uint)(uVar29 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 < uVar12)" ( (binary_expression "uVar29 < uVar12" identifier < identifier) ))) + (parenthesized_expression "(uVar19 - 1)" ( (binary_expression "uVar19 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }" if (parenthesized_expression "(uVar19 == 0 && uVar29 == 0)" ( (binary_expression "uVar19 == 0 && uVar29 == 0" (binary_expression "uVar19 == 0" identifier == number_literal) && (binary_expression "uVar29 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }" { (labeled_statement "LAB_00014cb0:\n          uVar12 = uVar12 - 1;" statement_identifier : (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;)) (expression_statement "(**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2490c)" * (pointer_expression "*(code **)(pcVar27 + 0x2490c)" * (cast_expression "(code **)(pcVar27 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2490c)" ( (binary_expression "pcVar27 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(puVar18,auStack_17c)" ( identifier , identifier ))) ;) (if_statement "if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }" if (parenthesized_expression "(uStack_1b0 != 0 || uStack_1a8 != 0)" ( (binary_expression "uStack_1b0 != 0 || uStack_1a8 != 0" (binary_expression "uStack_1b0 != 0" identifier != number_literal) || (binary_expression "uStack_1a8 != 0" identifier != number_literal)) )) (compound_statement "{\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }" { (do_statement "do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );" do (compound_statement "{\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            }" { (expression_statement "pcVar25 = *(code **)(pcVar27 + 0x24908);" (assignment_expression "pcVar25 = *(code **)(pcVar27 + 0x24908)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" identifier = identifier) ;) (while_statement "while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }" { (expression_statement "(*pcVar25)(puVar17,auStack_17c,auStack_17c);" (call_expression "(*pcVar25)(puVar17,auStack_17c,auStack_17c)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puVar17,auStack_17c,auStack_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,puVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar27 + 0x248b4)" * (pointer_expression "*(code **)(pcVar27 + 0x248b4)" * (cast_expression "(code **)(pcVar27 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248b4)" ( (binary_expression "pcVar27 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,auStack_17c,puVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = uVar29 + 1;" (assignment_expression "uVar12 = uVar29 + 1" identifier = (binary_expression "uVar29 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = (uVar12 < uVar29) + uVar19;" (assignment_expression "uVar19 = (uVar12 < uVar29) + uVar19" identifier = (binary_expression "(uVar12 < uVar29) + uVar19" (parenthesized_expression "(uVar12 < uVar29)" ( (binary_expression "uVar12 < uVar29" identifier < identifier) )) + identifier)) ;) (if_statement "if (uVar19 != uStack_1b0) break;" if (parenthesized_expression "(uVar19 != uStack_1b0)" ( (binary_expression "uVar19 != uStack_1b0" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "pcVar25 = *(code **)(pcVar27 + 0x24908);" (assignment_expression "pcVar25 = *(code **)(pcVar27 + 0x24908)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" identifier = identifier) ;) (if_statement "if (uVar12 == uStack_1a8) goto LAB_00014d60;" if (parenthesized_expression "(uVar12 == uStack_1a8)" ( (binary_expression "uVar12 == uStack_1a8" identifier == identifier) )) (goto_statement "goto LAB_00014d60;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" statement_identifier : (expression_statement "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2490c)" * (pointer_expression "*(code **)(pcVar27 + 0x2490c)" * (cast_expression "(code **)(pcVar27 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2490c)" ( (binary_expression "pcVar27 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(auStack_164,auStack_17c)" ( identifier , identifier ))) ;)) (expression_statement "uVar19 = uStack_1b0;" (assignment_expression "uVar19 = uStack_1b0" identifier = identifier) ;) (expression_statement "uVar29 = uStack_1a8;" (assignment_expression "uVar29 = uStack_1a8" identifier = identifier) ;) (expression_statement "uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;" (assignment_expression "uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1" identifier = (binary_expression "uStack_1a8 >> 0x1f | uStack_1b0 << 1" (binary_expression "uStack_1a8 >> 0x1f" identifier >> number_literal) | (binary_expression "uStack_1b0 << 1" identifier << number_literal))) ;) (expression_statement "uStack_1a8 = uStack_1a8 << 1;" (assignment_expression "uStack_1a8 = uStack_1a8 << 1" identifier = (binary_expression "uStack_1a8 << 1" identifier << number_literal)) ;) })) })) (expression_statement "(**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24838))" ( (pointer_expression "**(code **)(pcVar27 + 0x24838)" * (pointer_expression "*(code **)(pcVar27 + 0x24838)" * (cast_expression "(code **)(pcVar27 + 0x24838)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24838)" ( (binary_expression "pcVar27 + 0x24838" identifier + number_literal) ))))) )) (argument_list "(puVar17,pcVar20,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x24820))(puVar17,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" ( (pointer_expression "**(code **)(pcVar27 + 0x24820)" * (pointer_expression "*(code **)(pcVar27 + 0x24820)" * (cast_expression "(code **)(pcVar27 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24820)" ( (binary_expression "pcVar27 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(puVar17,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }" { (expression_statement "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2490c)" * (pointer_expression "*(code **)(pcVar27 + 0x2490c)" * (cast_expression "(code **)(pcVar27 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2490c)" ( (binary_expression "pcVar27 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(auStack_164,auStack_17c)" ( identifier , identifier ))) ;) (expression_statement "uVar29 = uVar12 - 1;" (assignment_expression "uVar29 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);" (assignment_expression "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1)" identifier = (binary_expression "(uint)(uVar29 < uVar12) + (uVar19 - 1)" (call_expression "(uint)(uVar29 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 < uVar12)" ( (binary_expression "uVar29 < uVar12" identifier < identifier) ))) + (parenthesized_expression "(uVar19 - 1)" ( (binary_expression "uVar19 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;" if (parenthesized_expression "(uVar19 == 0 && uVar29 == 0)" ( (binary_expression "uVar19 == 0 && uVar29 == 0" (binary_expression "uVar19 == 0" identifier == number_literal) && (binary_expression "uVar29 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00014cb0;" goto statement_identifier ;)) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;) })) (do_statement "do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);" do (compound_statement "{\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      }" { (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" ( (pointer_expression "**(code **)(pcVar27 + 0x24908)" * (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(puVar17,auStack_164,auStack_164)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_164,puVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar27 + 0x248b4)" * (pointer_expression "*(code **)(pcVar27 + 0x248b4)" * (cast_expression "(code **)(pcVar27 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248b4)" ( (binary_expression "pcVar27 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStack_164,auStack_164,puVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);" (call_expression "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24928))" ( (pointer_expression "**(code **)(pcVar27 + 0x24928)" * (pointer_expression "*(code **)(pcVar27 + 0x24928)" * (cast_expression "(code **)(pcVar27 + 0x24928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24928)" ( (binary_expression "pcVar27 + 0x24928" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar18,auStack_164)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24838))" ( (pointer_expression "**(code **)(pcVar27 + 0x24838)" * (pointer_expression "*(code **)(pcVar27 + 0x24838)" * (cast_expression "(code **)(pcVar27 + 0x24838)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24838)" ( (binary_expression "pcVar27 + 0x24838" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x24820))(puVar17,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" ( (pointer_expression "**(code **)(pcVar27 + 0x24820)" * (pointer_expression "*(code **)(pcVar27 + 0x24820)" * (cast_expression "(code **)(pcVar27 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24820)" ( (binary_expression "pcVar27 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(puVar17,1)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) ;) (expression_statement "(**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);" (call_expression "(**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24914))" ( (pointer_expression "**(code **)(pcVar27 + 0x24914)" * (pointer_expression "*(code **)(pcVar27 + 0x24914)" * (cast_expression "(code **)(pcVar27 + 0x24914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24914)" ( (binary_expression "pcVar27 + 0x24914" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar5,puVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (*pcVar28)(puVar17);" (assignment_expression "iVar11 = (*pcVar28)(puVar17)" identifier = (call_expression "(*pcVar28)(puVar17)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar17)" ( identifier )))) ;) (if_statement "if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }" { (if_statement "if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }" if (parenthesized_expression "(*(char *)(iVar14 + -0x6c28) != '\0')" ( (binary_expression "*(char *)(iVar14 + -0x6c28) != '\0'" (pointer_expression "*(char *)(iVar14 + -0x6c28)" * (cast_expression "(char *)(iVar14 + -0x6c28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x6c28)" ( (binary_expression "iVar14 + -0x6c28" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }" { (expression_statement "(**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));" (call_expression "(**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958))" (parenthesized_expression "(**(code **)(pcVar27 + 0x248f0))" ( (pointer_expression "**(code **)(pcVar27 + 0x248f0)" * (pointer_expression "*(code **)(pcVar27 + 0x248f0)" * (cast_expression "(code **)(pcVar27 + 0x248f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248f0)" ( (binary_expression "pcVar27 + 0x248f0" identifier + number_literal) ))))) )) (argument_list "(iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958))" ( (binary_expression "iVar10 + 0x4c94" identifier + number_literal) , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar27 + 0x24958)" * (pointer_expression "*(undefined4 **)(pcVar27 + 0x24958)" * (cast_expression "(undefined4 **)(pcVar27 + 0x24958)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24958)" ( (binary_expression "pcVar27 + 0x24958" identifier + number_literal) ))))) ))) ;) })) (expression_statement "FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);" (call_expression "FUN_00014a38(puVar17,(int)puVar15 + 1,param_3)" identifier (argument_list "(puVar17,(int)puVar15 + 1,param_3)" ( identifier , (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier ))) ;) (expression_statement "iVar11 = (*pcVar28)(iVar5);" (assignment_expression "iVar11 = (*pcVar28)(iVar5)" identifier = (call_expression "(*pcVar28)(iVar5)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar5)" ( identifier )))) ;) }) (else_clause "else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" else (compound_statement "{\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" { (expression_statement "(*(code *)(iVar9 + 0x365c))(param_3,puVar17);" (call_expression "(*(code *)(iVar9 + 0x365c))(param_3,puVar17)" (parenthesized_expression "(*(code *)(iVar9 + 0x365c))" ( (pointer_expression "*(code *)(iVar9 + 0x365c)" * (cast_expression "(code *)(iVar9 + 0x365c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x365c)" ( (binary_expression "iVar9 + 0x365c" identifier + number_literal) )))) )) (argument_list "(param_3,puVar17)" ( identifier , identifier ))) ;) (expression_statement "iVar11 = (*pcVar28)(iVar5);" (assignment_expression "iVar11 = (*pcVar28)(iVar5)" identifier = (call_expression "(*pcVar28)(iVar5)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar5)" ( identifier )))) ;) }))) (if_statement "if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }" { (expression_statement "FUN_0001365c(param_3,iVar5);" (call_expression "FUN_0001365c(param_3,iVar5)" identifier (argument_list "(param_3,iVar5)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,auStack_17c,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(puVar18,puVar18,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_164,auStack_164,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x24820))(iVar5,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" ( (pointer_expression "**(code **)(pcVar27 + 0x24820)" * (pointer_expression "*(code **)(pcVar27 + 0x24820)" * (cast_expression "(code **)(pcVar27 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24820)" ( (binary_expression "pcVar27 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(iVar5,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" identifier = identifier) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x2494c);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x2494c)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x2494c)" * (cast_expression "(code **)(pcVar27 + 0x2494c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2494c)" ( (binary_expression "pcVar27 + 0x2494c" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar28 = (code *)*piVar8;" (assignment_expression "pcVar28 = (code *)*piVar8" identifier = (cast_expression "(code *)*piVar8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }" if (parenthesized_expression "(pcStack_134 == pcVar28)" ( (binary_expression "pcStack_134 == pcVar28" identifier == identifier) )) (compound_statement "{\n    return pcVar28;\n  }" { (return_statement "return pcVar28;" return identifier ;) })) (expression_statement "(**(code **)(pcVar27 + 0x24918))();" (call_expression "(**(code **)(pcVar27 + 0x24918))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x24918))" ( (pointer_expression "**(code **)(pcVar27 + 0x24918)" * (pointer_expression "*(code **)(pcVar27 + 0x24918)" * (cast_expression "(code **)(pcVar27 + 0x24918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24918)" ( (binary_expression "pcVar27 + 0x24918" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar27 = pcVar27 + 0x2c698;" (assignment_expression "pcVar27 = pcVar27 + 0x2c698" identifier = (binary_expression "pcVar27 + 0x2c698" identifier + number_literal)) ;) (expression_statement "pcVar28 = pcVar20;" (assignment_expression "pcVar28 = pcVar20" identifier = identifier) ;) (expression_statement "puVar16 = puVar21;" (assignment_expression "puVar16 = puVar21" identifier = identifier) ;) (if_statement "if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;" if (parenthesized_expression "(((uint)puVar18 & 1) == 0)" ( (binary_expression "((uint)puVar18 & 1) == 0" (parenthesized_expression "((uint)puVar18 & 1)" ( (binary_expression "(uint)puVar18 & 1" (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000152f0;" goto statement_identifier ;)) (do_statement "do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );" do (compound_statement "{\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  }" { (expression_statement "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" identifier = (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) ;) (expression_statement "puStack_1bc = puVar21;" (assignment_expression "puStack_1bc = puVar21" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;" do (compound_statement "{\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    }" { (while_statement "while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }" { (expression_statement "uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);" (assignment_expression "uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" identifier = (call_expression "(uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" ( (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20" (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16)" (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);" (assignment_expression "iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" identifier = (cast_expression "(int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" ( (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20" (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "uVar19 = uVar29 + (uint)uVar1 * 2;" (assignment_expression "uVar19 = uVar29 + (uint)uVar1 * 2" identifier = (binary_expression "uVar29 + (uint)uVar1 * 2" identifier + (binary_expression "(uint)uVar1 * 2" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));" (assignment_expression "puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" identifier = (cast_expression "(undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" ( (binary_expression "(uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1)" (call_expression "(uint)(uVar19 < uVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar29)" ( (binary_expression "uVar19 < uVar29" identifier < identifier) ))) + (parenthesized_expression "((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1)" ( (binary_expression "(uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1" (binary_expression "(uint)uVar1 >> 0x1f" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)(uVar1 >> 0x20) << 1" (cast_expression "(int)(uVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))) << number_literal)) ))) )))) ;) (if_statement "if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }" if (parenthesized_expression "(CONCAT44(puVar21,uVar19) < uVar1)" ( (binary_expression "CONCAT44(puVar21,uVar19) < uVar1" (call_expression "CONCAT44(puVar21,uVar19)" identifier (argument_list "(puVar21,uVar19)" ( identifier , identifier ))) < identifier) )) (compound_statement "{\n          iVar5 = iVar5 + 1;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;" (assignment_expression "uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" identifier = (binary_expression "(ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" (parenthesized_expression "(ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff)" ( (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff" (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16)" (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) & number_literal) )) * (cast_expression "(ulonglong)uStack_1c4" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));" (assignment_expression "puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" identifier = (binary_expression "puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" identifier + (cast_expression "(int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar28) * ZEXT48(pcVar28))" ( (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) ))))) ;) (expression_statement "uVar29 = (uint)(puVar23 < puVar21) + iVar5;" (assignment_expression "uVar29 = (uint)(puVar23 < puVar21) + iVar5" identifier = (binary_expression "(uint)(puVar23 < puVar21) + iVar5" (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar21)" ( (binary_expression "puVar23 < puVar21" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);" (assignment_expression "uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20)" identifier = (binary_expression "uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20)" (binary_expression "uVar19 * uStack_1c4" identifier * identifier) + (cast_expression "(int)(uVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);" (assignment_expression "uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164)" identifier = (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_164)" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStack_164)" identifier (argument_list "(auStack_164)" ( identifier ))))) ;) (expression_statement "lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);" (assignment_expression "lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c)" identifier = (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_17c)" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStack_17c)" identifier (argument_list "(auStack_17c)" ( identifier ))))) ;) (expression_statement "iVar5 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);" (assignment_expression "uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" identifier = (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2" (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff)" (call_expression "ZEXT48(auStack_17c)" identifier (argument_list "(auStack_17c)" ( identifier ))) * (parenthesized_expression "(uVar1 & 0xffffffff)" ( (binary_expression "uVar1 & 0xffffffff" identifier & number_literal) ))) + identifier) + (parenthesized_expression "((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" ( (binary_expression "(uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20" (binary_expression "(uVar1 & 0xffffffff) * ZEXT48(auStack_164)" (parenthesized_expression "(uVar1 & 0xffffffff)" ( (binary_expression "uVar1 & 0xffffffff" identifier & number_literal) )) * (call_expression "ZEXT48(auStack_164)" identifier (argument_list "(auStack_164)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar21 = (undefined1 *)(uVar1 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar1 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar1 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }" if (parenthesized_expression "(uVar1 < uVar2)" ( (binary_expression "uVar1 < uVar2" identifier < identifier) )) (compound_statement "{\n          iVar5 = iVar5 + 1;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar22 = puVar21 + (int)lVar3;" (assignment_expression "puVar22 = puVar21 + (int)lVar3" identifier = (binary_expression "puVar21 + (int)lVar3" identifier + (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar19 = (uint)(puVar22 < puVar21) + iVar5;" (assignment_expression "uVar19 = (uint)(puVar22 < puVar21) + iVar5" identifier = (binary_expression "(uint)(puVar22 < puVar21) + iVar5" (call_expression "(uint)(puVar22 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar22 < puVar21)" ( (binary_expression "puVar22 < puVar21" identifier < identifier) ))) + identifier)) ;) (expression_statement "puVar21 = puVar23 + -(int)puVar22;" (assignment_expression "puVar21 = puVar23 + -(int)puVar22" identifier = (binary_expression "puVar23 + -(int)puVar22" identifier + (unary_expression "-(int)puVar22" - (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));" (assignment_expression "pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" identifier = (cast_expression "(code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" ( (binary_expression "(uVar29 - uVar19) - (uint)(puVar23 < puVar21)" (parenthesized_expression "(uVar29 - uVar19)" ( (binary_expression "uVar29 - uVar19" identifier - identifier) )) - (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar21)" ( (binary_expression "puVar23 < puVar21" identifier < identifier) )))) )))) ;) (if_statement "if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }" if (parenthesized_expression "((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22))))" ( (binary_expression "(uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))" (parenthesized_expression "(uVar29 < uVar19)" ( (binary_expression "uVar29 < uVar19" identifier < identifier) )) || (parenthesized_expression "((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))" ( (parenthesized_expression "(puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22))" ( (comma_expression "puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)" (assignment_expression "puVar16 = puVar21" identifier = identifier) , (binary_expression "uVar19 == uVar29 && (puVar23 < puVar22)" (binary_expression "uVar19 == uVar29" identifier == identifier) && (parenthesized_expression "(puVar23 < puVar22)" ( (binary_expression "puVar23 < puVar22" identifier < identifier) )))) )) ))) )) (compound_statement "{\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }" { (expression_statement "puVar16 = puVar21 + (int)auStack_164;" (assignment_expression "puVar16 = puVar21 + (int)auStack_164" identifier = (binary_expression "puVar21 + (int)auStack_164" identifier + (cast_expression "(int)auStack_164" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);" (assignment_expression "pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21)" identifier = (binary_expression "pcVar28 + (int)auStack_17c + (puVar16 < puVar21)" (binary_expression "pcVar28 + (int)auStack_17c" identifier + (cast_expression "(int)auStack_17c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(puVar16 < puVar21)" ( (binary_expression "puVar16 < puVar21" identifier < identifier) )))) ;) })) (expression_statement "uVar19 = (uint)puVar18 >> 1;" (assignment_expression "uVar19 = (uint)puVar18 >> 1" identifier = (binary_expression "(uint)puVar18 >> 1" (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);" (assignment_expression "puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19)" identifier = (cast_expression "(undefined1 *)((int)puVar17 << 0x1f | uVar19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 << 0x1f | uVar19)" ( (binary_expression "(int)puVar17 << 0x1f | uVar19" (binary_expression "(int)puVar17 << 0x1f" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | identifier) )))) ;) (expression_statement "puVar17 = (undefined1 *)((uint)puVar17 >> 1);" (assignment_expression "puVar17 = (undefined1 *)((uint)puVar17 >> 1)" identifier = (cast_expression "(undefined1 *)((uint)puVar17 >> 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar17 >> 1)" ( (binary_expression "(uint)puVar17 >> 1" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pcVar27 = pcVar20;" (assignment_expression "pcVar27 = pcVar20" identifier = identifier) ;) (if_statement "if ((uVar19 & 1) != 0) break;" if (parenthesized_expression "((uVar19 & 1) != 0)" ( (binary_expression "(uVar19 & 1) != 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000152f0:\n        pcVar20 = pcVar27;" statement_identifier : (expression_statement "pcVar20 = pcVar27;" (assignment_expression "pcVar20 = pcVar27" identifier = identifier) ;)) (expression_statement "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" identifier = (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) ;) (if_statement "if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }" if (parenthesized_expression "(puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0)" ( (binary_expression "puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0" (binary_expression "puVar17 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "puVar18 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          return pcVar20;\n        }" { (return_statement "return pcVar20;" return identifier ;) })) })) (expression_statement "iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);" (assignment_expression "iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" identifier = (cast_expression "(int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" ( (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20" (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) * (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);" (assignment_expression "uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" identifier = (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc)" (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) + (binary_expression "ZEXT48(pcVar28) * ZEXT48(puStack_1bc)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(puStack_1bc)" identifier (argument_list "(puStack_1bc)" ( identifier ))))) + (parenthesized_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" ( (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20" (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16)" (call_expression "ZEXT48(puStack_1bc)" identifier (argument_list "(puStack_1bc)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar21 = (undefined1 *)(uVar1 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar1 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar1 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }" if (parenthesized_expression "(uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16))" ( (binary_expression "uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)" identifier < (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) )) (compound_statement "{\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;" (assignment_expression "uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" identifier = (binary_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" (parenthesized_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff)" ( (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff" (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16)" (call_expression "ZEXT48(puStack_1bc)" identifier (argument_list "(puStack_1bc)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) & number_literal) )) * (cast_expression "(ulonglong)uStack_1c4" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));" (assignment_expression "puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" identifier = (binary_expression "puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" identifier + (cast_expression "(int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar20) * ZEXT48(pcVar28))" ( (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) * (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) ))))) ;) (expression_statement "uVar29 = (uint)(puVar23 < puVar21) + iVar5;" (assignment_expression "uVar29 = (uint)(puVar23 < puVar21) + iVar5" identifier = (binary_expression "(uint)(puVar23 < puVar21) + iVar5" (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar21)" ( (binary_expression "puVar23 < puVar21" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);" (assignment_expression "uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20)" identifier = (binary_expression "(int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20)" (binary_expression "(int)uVar1 * uStack_1c4" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) + (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);" (assignment_expression "uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164)" identifier = (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_164)" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStack_164)" identifier (argument_list "(auStack_164)" ( identifier ))))) ;) (expression_statement "lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;" (assignment_expression "lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19" identifier = (binary_expression "ZEXT48(auStack_17c) * (ulonglong)uVar19" (call_expression "ZEXT48(auStack_17c)" identifier (argument_list "(auStack_17c)" ( identifier ))) * (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "iVar5 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);" (assignment_expression "uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" identifier = (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1" (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff)" (call_expression "ZEXT48(auStack_17c)" identifier (argument_list "(auStack_17c)" ( identifier ))) * (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) ))) + identifier) + (parenthesized_expression "((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" ( (binary_expression "(uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20" (binary_expression "(uVar2 & 0xffffffff) * ZEXT48(auStack_164)" (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )) * (call_expression "ZEXT48(auStack_164)" identifier (argument_list "(auStack_164)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar21 = (undefined1 *)(uVar2 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar2 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar2 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }" if (parenthesized_expression "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) )) (compound_statement "{\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar22 = puVar21 + (int)lVar3;" (assignment_expression "puVar22 = puVar21 + (int)lVar3" identifier = (binary_expression "puVar21 + (int)lVar3" identifier + (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar19 = (uint)(puVar22 < puVar21) + iVar5;" (assignment_expression "uVar19 = (uint)(puVar22 < puVar21) + iVar5" identifier = (binary_expression "(uint)(puVar22 < puVar21) + iVar5" (call_expression "(uint)(puVar22 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar22 < puVar21)" ( (binary_expression "puVar22 < puVar21" identifier < identifier) ))) + identifier)) ;) (expression_statement "puStack_1bc = puVar23 + -(int)puVar22;" (assignment_expression "puStack_1bc = puVar23 + -(int)puVar22" identifier = (binary_expression "puVar23 + -(int)puVar22" identifier + (unary_expression "-(int)puVar22" - (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));" (assignment_expression "pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" identifier = (cast_expression "(code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" ( (binary_expression "(uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc)" (parenthesized_expression "(uVar29 - uVar19)" ( (binary_expression "uVar29 - uVar19" identifier - identifier) )) - (call_expression "(uint)(puVar23 < puStack_1bc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puStack_1bc)" ( (binary_expression "puVar23 < puStack_1bc" identifier < identifier) )))) )))) ;) }) while (parenthesized_expression "((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))" ( (binary_expression "(uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)))" (parenthesized_expression "(uVar19 <= uVar29)" ( (binary_expression "uVar19 <= uVar29" identifier <= identifier) )) && (parenthesized_expression "((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)))" ( (parenthesized_expression "(uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))" ( (comma_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" identifier = (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) , (binary_expression "uVar19 != uVar29 || (puVar22 <= puVar23)" (binary_expression "uVar19 != uVar29" identifier != identifier) || (parenthesized_expression "(puVar22 <= puVar23)" ( (binary_expression "puVar22 <= puVar23" identifier <= identifier) )))) )) ))) )) ;) (expression_statement "puVar21 = puStack_1bc + (int)auStack_164;" (assignment_expression "puVar21 = puStack_1bc + (int)auStack_164" identifier = (binary_expression "puStack_1bc + (int)auStack_164" identifier + (cast_expression "(int)auStack_164" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);" (assignment_expression "pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc)" identifier = (binary_expression "pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc)" (binary_expression "pcVar20 + (int)auStack_17c" identifier + (cast_expression "(int)auStack_17c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(puVar21 < puStack_1bc)" ( (binary_expression "puVar21 < puStack_1bc" identifier < identifier) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000151d4) */\n/* WARNING: Removing unreachable block (ram,0x00015078) */\n/* WARNING: Removing unreachable block (ram,0x00015104) */\n/* WARNING: Removing unreachable block (ram,0x00015260) */\n\nvoid mp_factor(__mpz_struct *t,mp_factors *factors)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  int iVar5;\n  int *piVar6;\n  _Bool _Var11;\n  int iVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar12;\n  __mpz_struct *prime;\n  mpz_ptr p_Var13;\n  undefined1 *puVar14;\n  mpz_ptr in_a2;\n  __mpz_struct *p_Var15;\n  undefined1 *puVar16;\n  uint uVar17;\n  code *pcVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  __mpz_struct *unaff_s0;\n  mpz_ptr unaff_s1;\n  mpz_srcptr unaff_s2;\n  undefined1 *puVar21;\n  mp_factors *unaff_s3;\n  mpz_srcptr unaff_s5;\n  undefined *unaff_s6;\n  __mpz_struct *unaff_s7;\n  undefined *puVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  uint uVar27;\n  uint uStackY_1c4;\n  undefined1 *puStackY_1bc;\n  uint uStackY_1b0;\n  uint uStackY_1a8;\n  undefined1 auStackY_17c [12];\n  undefined1 auStackY_170 [12];\n  undefined1 auStackY_164 [12];\n  undefined1 auStackY_158 [12];\n  __mpz_struct _StackY_14c;\n  undefined1 auStackY_140 [12];\n  int iStackY_134;\n  __mpz_struct *p_StackY_130;\n  mpz_ptr p_StackY_12c;\n  mpz_srcptr p_StackY_128;\n  mp_factors *pmStackY_124;\n  mpz_srcptr p_StackY_120;\n  mpz_srcptr p_StackY_11c;\n  undefined *puStackY_118;\n  __mpz_struct *p_StackY_114;\n  undefined *puStackY_110;\n  code *pcStackY_10c;\n  mp_factors mStack_d0;\n  __mpz_struct _Stack_c4;\n  __mpz_struct _Stack_b8;\n  __mpz_struct _Stack_ac;\n  __mpz_struct _Stack_a0;\n  __mpz_struct *p_Stack_94;\n  __mpz_struct *p_Stack_90;\n  mpz_ptr p_Stack_8c;\n  mpz_srcptr p_Stack_88;\n  mp_factors *pmStack_84;\n  undefined *puStack_80;\n  mpz_srcptr p_Stack_7c;\n  undefined *puStack_78;\n  __mpz_struct *p_Stack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  mpz_t q;\n  mpz_t pz;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = t->_mp_size;\n  factors->e = (ulong *)0x0;\n  factors->nfactors = 0;\n  iVar12 = *(int *)puVar4;\n  factors->p = (mpz_t *)0x0;\n  puVar24 = PTR_DAT_000390f8;\n  p_Var15 = t;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(q);\n    p_Var13 = (mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0);\n    in_a2 = p_Var13;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(t,t);\n    if (p_Var13 != (mpz_ptr)0x0) {\n      do {\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      } while (p_Var13 != (mpz_ptr)0x0);\n    }\n    unaff_s2 = (mpz_srcptr)0x1;\n    unaff_s1 = (mpz_ptr)0x3;\n    unaff_s7 = pz;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = (mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c);\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }\n      in_a2 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      mp_factor_insert(factors,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (mpz_srcptr)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(q);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,1);\n    unaff_s0 = t;\n    unaff_s3 = factors;\n    if (iVar5 != 0) {\n      if (puVar24[-0x6c28] != '\0') {\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      _Var11 = mp_prime_p(t);\n      if (CONCAT31(extraout_var,_Var11) == 0) {\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }\n      else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }\n    }\n  }\n  if (iVar12 == *(int *)puVar4) {\n    return;\n  }\n  pcVar25 = mp_prime_p;\n  puVar22 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  piVar6 = *(int **)(puVar22 + 0x24c64);\n  p_Var13 = (mpz_ptr)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar24;\n  p_Stack_94 = (__mpz_struct *)*piVar6;\n  p_Stack_90 = unaff_s0;\n  p_Stack_8c = unaff_s1;\n  p_Stack_88 = unaff_s2;\n  pmStack_84 = unaff_s3;\n  p_Stack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  p_Stack_74 = unaff_s7;\n  pcStack_6c = pcVar25;\n  iVar5 = (**(code **)(puVar22 + 0x24b54))();\n  if (0 < iVar5) {\n    p_Var13 = (mpz_ptr)0x17ded79;\n    iVar5 = (**(code **)(puVar22 + 0x24b54))(p_Var15);\n    if (-1 < iVar5) {\n      unaff_s2 = &_Stack_ac;\n      unaff_s1 = &_Stack_b8;\n      unaff_s5 = &_Stack_c4;\n      unaff_s0 = &_Stack_a0;\n      (**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);\n      unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);\n      (**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puVar22 + 0x24c74))(unaff_s1,2);\n      iVar5 = *(int *)(puVar22 + 0x24a00);\n      _Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);\n      if (CONCAT31(extraout_var_00,_Var11) != 0) {\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }\n      p_Var13 = unaff_s1;\n      in_a2 = unaff_s2;\n      (**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (p_Stack_94 == (__mpz_struct *)*piVar6) {\n    return;\n  }\n  pcVar25 = *(code **)(puVar22 + 0x24c4c);\n  pcVar26 = mp_factor_using_pollard_rho;\n  prime = p_Stack_94;\n  (*pcVar25)();\n  piVar6 = *(int **)(pcVar25 + 0x24930);\n  iVar5 = *(int *)(pcVar25 + 0x246c0);\n  iStackY_134 = *piVar6;\n  p_StackY_130 = unaff_s0;\n  p_StackY_12c = unaff_s1;\n  p_StackY_128 = unaff_s2;\n  pmStackY_124 = unaff_s3;\n  p_StackY_120 = p_Var15;\n  p_StackY_11c = unaff_s5;\n  puStackY_118 = unaff_s6;\n  p_StackY_114 = unaff_s7;\n  puStackY_110 = puVar24;\n  pcStackY_10c = pcVar26;\n  if (*(char *)(iVar5 + -0x6c28) != '\0') {\n    (**(code **)(pcVar25 + 0x24824))\n              (**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13);\n  }\n  puVar19 = auStackY_140;\n  p_Var15 = &_StackY_14c;\n  (**(code **)(pcVar25 + 0x24910))(p_Var15,puVar19,0);\n  puVar16 = auStackY_170;\n  pcVar18 = (code *)auStackY_158;\n  (**(code **)(pcVar25 + 0x248bc))(auStackY_164,2);\n  (**(code **)(pcVar25 + 0x248bc))(auStackY_17c,2);\n  (**(code **)(pcVar25 + 0x248bc))(puVar16,2);\n  (**(code **)(pcVar25 + 0x2485c))(pcVar18,1);\n  uStackY_1a8 = 1;\n  uStackY_1b0 = 0;\n  pcVar26 = (code *)(&DAT_00004704 + *(int *)(pcVar25 + 0x246cc));\n  iVar12 = *(int *)(pcVar25 + 0x246cc);\n  iVar7 = *(int *)(pcVar25 + 0x246d0);\n  iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n  uVar17 = 0;\n  uVar27 = 1;\n  if (iVar9 == 0) {\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    } while (iVar9 != 0);\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }\n  (*pcVar26)();\n  if (iStackY_134 == *piVar6) {\n    return;\n  }\n  (**(code **)(pcVar25 + 0x24918))();\n  pcVar25 = pcVar25 + 0x2c698;\n  pcVar26 = pcVar18;\n  puVar14 = puVar19;\n  if (((uint)puVar16 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n    puStackY_1bc = puVar19;\n    do {\n      while( true ) {\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);\n      uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);\n      puVar19 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n      puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));\n      uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n      uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n      lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n      puVar19 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar20 = puVar19 + (int)lVar3;\n      uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n      puStackY_1bc = puVar21 + -(int)puVar20;\n      pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));\n    } while ((uVar17 <= uVar27) &&\n            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))))\n    ;\n    puVar19 = puStackY_1bc + (int)auStackY_164;\n    pcVar18 = pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc);\n  } while( true );\n}\n\n" comment comment comment comment (function_definition "void mp_factor(__mpz_struct *t,mp_factors *factors)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  int iVar5;\n  int *piVar6;\n  _Bool _Var11;\n  int iVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar12;\n  __mpz_struct *prime;\n  mpz_ptr p_Var13;\n  undefined1 *puVar14;\n  mpz_ptr in_a2;\n  __mpz_struct *p_Var15;\n  undefined1 *puVar16;\n  uint uVar17;\n  code *pcVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  __mpz_struct *unaff_s0;\n  mpz_ptr unaff_s1;\n  mpz_srcptr unaff_s2;\n  undefined1 *puVar21;\n  mp_factors *unaff_s3;\n  mpz_srcptr unaff_s5;\n  undefined *unaff_s6;\n  __mpz_struct *unaff_s7;\n  undefined *puVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  uint uVar27;\n  uint uStackY_1c4;\n  undefined1 *puStackY_1bc;\n  uint uStackY_1b0;\n  uint uStackY_1a8;\n  undefined1 auStackY_17c [12];\n  undefined1 auStackY_170 [12];\n  undefined1 auStackY_164 [12];\n  undefined1 auStackY_158 [12];\n  __mpz_struct _StackY_14c;\n  undefined1 auStackY_140 [12];\n  int iStackY_134;\n  __mpz_struct *p_StackY_130;\n  mpz_ptr p_StackY_12c;\n  mpz_srcptr p_StackY_128;\n  mp_factors *pmStackY_124;\n  mpz_srcptr p_StackY_120;\n  mpz_srcptr p_StackY_11c;\n  undefined *puStackY_118;\n  __mpz_struct *p_StackY_114;\n  undefined *puStackY_110;\n  code *pcStackY_10c;\n  mp_factors mStack_d0;\n  __mpz_struct _Stack_c4;\n  __mpz_struct _Stack_b8;\n  __mpz_struct _Stack_ac;\n  __mpz_struct _Stack_a0;\n  __mpz_struct *p_Stack_94;\n  __mpz_struct *p_Stack_90;\n  mpz_ptr p_Stack_8c;\n  mpz_srcptr p_Stack_88;\n  mp_factors *pmStack_84;\n  undefined *puStack_80;\n  mpz_srcptr p_Stack_7c;\n  undefined *puStack_78;\n  __mpz_struct *p_Stack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  mpz_t q;\n  mpz_t pz;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = t->_mp_size;\n  factors->e = (ulong *)0x0;\n  factors->nfactors = 0;\n  iVar12 = *(int *)puVar4;\n  factors->p = (mpz_t *)0x0;\n  puVar24 = PTR_DAT_000390f8;\n  p_Var15 = t;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(q);\n    p_Var13 = (mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0);\n    in_a2 = p_Var13;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(t,t);\n    if (p_Var13 != (mpz_ptr)0x0) {\n      do {\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      } while (p_Var13 != (mpz_ptr)0x0);\n    }\n    unaff_s2 = (mpz_srcptr)0x1;\n    unaff_s1 = (mpz_ptr)0x3;\n    unaff_s7 = pz;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = (mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c);\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }\n      in_a2 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      mp_factor_insert(factors,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (mpz_srcptr)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(q);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,1);\n    unaff_s0 = t;\n    unaff_s3 = factors;\n    if (iVar5 != 0) {\n      if (puVar24[-0x6c28] != '\0') {\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      _Var11 = mp_prime_p(t);\n      if (CONCAT31(extraout_var,_Var11) == 0) {\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }\n      else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }\n    }\n  }\n  if (iVar12 == *(int *)puVar4) {\n    return;\n  }\n  pcVar25 = mp_prime_p;\n  puVar22 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  piVar6 = *(int **)(puVar22 + 0x24c64);\n  p_Var13 = (mpz_ptr)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar24;\n  p_Stack_94 = (__mpz_struct *)*piVar6;\n  p_Stack_90 = unaff_s0;\n  p_Stack_8c = unaff_s1;\n  p_Stack_88 = unaff_s2;\n  pmStack_84 = unaff_s3;\n  p_Stack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  p_Stack_74 = unaff_s7;\n  pcStack_6c = pcVar25;\n  iVar5 = (**(code **)(puVar22 + 0x24b54))();\n  if (0 < iVar5) {\n    p_Var13 = (mpz_ptr)0x17ded79;\n    iVar5 = (**(code **)(puVar22 + 0x24b54))(p_Var15);\n    if (-1 < iVar5) {\n      unaff_s2 = &_Stack_ac;\n      unaff_s1 = &_Stack_b8;\n      unaff_s5 = &_Stack_c4;\n      unaff_s0 = &_Stack_a0;\n      (**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);\n      unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);\n      (**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puVar22 + 0x24c74))(unaff_s1,2);\n      iVar5 = *(int *)(puVar22 + 0x24a00);\n      _Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);\n      if (CONCAT31(extraout_var_00,_Var11) != 0) {\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }\n      p_Var13 = unaff_s1;\n      in_a2 = unaff_s2;\n      (**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (p_Stack_94 == (__mpz_struct *)*piVar6) {\n    return;\n  }\n  pcVar25 = *(code **)(puVar22 + 0x24c4c);\n  pcVar26 = mp_factor_using_pollard_rho;\n  prime = p_Stack_94;\n  (*pcVar25)();\n  piVar6 = *(int **)(pcVar25 + 0x24930);\n  iVar5 = *(int *)(pcVar25 + 0x246c0);\n  iStackY_134 = *piVar6;\n  p_StackY_130 = unaff_s0;\n  p_StackY_12c = unaff_s1;\n  p_StackY_128 = unaff_s2;\n  pmStackY_124 = unaff_s3;\n  p_StackY_120 = p_Var15;\n  p_StackY_11c = unaff_s5;\n  puStackY_118 = unaff_s6;\n  p_StackY_114 = unaff_s7;\n  puStackY_110 = puVar24;\n  pcStackY_10c = pcVar26;\n  if (*(char *)(iVar5 + -0x6c28) != '\0') {\n    (**(code **)(pcVar25 + 0x24824))\n              (**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13);\n  }\n  puVar19 = auStackY_140;\n  p_Var15 = &_StackY_14c;\n  (**(code **)(pcVar25 + 0x24910))(p_Var15,puVar19,0);\n  puVar16 = auStackY_170;\n  pcVar18 = (code *)auStackY_158;\n  (**(code **)(pcVar25 + 0x248bc))(auStackY_164,2);\n  (**(code **)(pcVar25 + 0x248bc))(auStackY_17c,2);\n  (**(code **)(pcVar25 + 0x248bc))(puVar16,2);\n  (**(code **)(pcVar25 + 0x2485c))(pcVar18,1);\n  uStackY_1a8 = 1;\n  uStackY_1b0 = 0;\n  pcVar26 = (code *)(&DAT_00004704 + *(int *)(pcVar25 + 0x246cc));\n  iVar12 = *(int *)(pcVar25 + 0x246cc);\n  iVar7 = *(int *)(pcVar25 + 0x246d0);\n  iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n  uVar17 = 0;\n  uVar27 = 1;\n  if (iVar9 == 0) {\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    } while (iVar9 != 0);\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }\n  (*pcVar26)();\n  if (iStackY_134 == *piVar6) {\n    return;\n  }\n  (**(code **)(pcVar25 + 0x24918))();\n  pcVar25 = pcVar25 + 0x2c698;\n  pcVar26 = pcVar18;\n  puVar14 = puVar19;\n  if (((uint)puVar16 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n    puStackY_1bc = puVar19;\n    do {\n      while( true ) {\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);\n      uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);\n      puVar19 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n      puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));\n      uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n      uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n      lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n      puVar19 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar20 = puVar19 + (int)lVar3;\n      uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n      puStackY_1bc = puVar21 + -(int)puVar20;\n      pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));\n    } while ((uVar17 <= uVar27) &&\n            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))))\n    ;\n    puVar19 = puStackY_1bc + (int)auStackY_164;\n    pcVar18 = pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc);\n  } while( true );\n}" primitive_type (function_declarator "mp_factor(__mpz_struct *t,mp_factors *factors)" identifier (parameter_list "(__mpz_struct *t,mp_factors *factors)" ( (parameter_declaration "__mpz_struct *t" type_identifier (pointer_declarator "*t" * identifier)) , (parameter_declaration "mp_factors *factors" type_identifier (pointer_declarator "*factors" * identifier)) ))) (compound_statement "{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  int iVar5;\n  int *piVar6;\n  _Bool _Var11;\n  int iVar7;\n  undefined4 uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar12;\n  __mpz_struct *prime;\n  mpz_ptr p_Var13;\n  undefined1 *puVar14;\n  mpz_ptr in_a2;\n  __mpz_struct *p_Var15;\n  undefined1 *puVar16;\n  uint uVar17;\n  code *pcVar18;\n  undefined1 *puVar19;\n  undefined1 *puVar20;\n  __mpz_struct *unaff_s0;\n  mpz_ptr unaff_s1;\n  mpz_srcptr unaff_s2;\n  undefined1 *puVar21;\n  mp_factors *unaff_s3;\n  mpz_srcptr unaff_s5;\n  undefined *unaff_s6;\n  __mpz_struct *unaff_s7;\n  undefined *puVar22;\n  code *pcVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  uint uVar27;\n  uint uStackY_1c4;\n  undefined1 *puStackY_1bc;\n  uint uStackY_1b0;\n  uint uStackY_1a8;\n  undefined1 auStackY_17c [12];\n  undefined1 auStackY_170 [12];\n  undefined1 auStackY_164 [12];\n  undefined1 auStackY_158 [12];\n  __mpz_struct _StackY_14c;\n  undefined1 auStackY_140 [12];\n  int iStackY_134;\n  __mpz_struct *p_StackY_130;\n  mpz_ptr p_StackY_12c;\n  mpz_srcptr p_StackY_128;\n  mp_factors *pmStackY_124;\n  mpz_srcptr p_StackY_120;\n  mpz_srcptr p_StackY_11c;\n  undefined *puStackY_118;\n  __mpz_struct *p_StackY_114;\n  undefined *puStackY_110;\n  code *pcStackY_10c;\n  mp_factors mStack_d0;\n  __mpz_struct _Stack_c4;\n  __mpz_struct _Stack_b8;\n  __mpz_struct _Stack_ac;\n  __mpz_struct _Stack_a0;\n  __mpz_struct *p_Stack_94;\n  __mpz_struct *p_Stack_90;\n  mpz_ptr p_Stack_8c;\n  mpz_srcptr p_Stack_88;\n  mp_factors *pmStack_84;\n  undefined *puStack_80;\n  mpz_srcptr p_Stack_7c;\n  undefined *puStack_78;\n  __mpz_struct *p_Stack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  mpz_t q;\n  mpz_t pz;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = t->_mp_size;\n  factors->e = (ulong *)0x0;\n  factors->nfactors = 0;\n  iVar12 = *(int *)puVar4;\n  factors->p = (mpz_t *)0x0;\n  puVar24 = PTR_DAT_000390f8;\n  p_Var15 = t;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(q);\n    p_Var13 = (mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0);\n    in_a2 = p_Var13;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(t,t);\n    if (p_Var13 != (mpz_ptr)0x0) {\n      do {\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      } while (p_Var13 != (mpz_ptr)0x0);\n    }\n    unaff_s2 = (mpz_srcptr)0x1;\n    unaff_s1 = (mpz_ptr)0x3;\n    unaff_s7 = pz;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = (mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c);\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }\n      in_a2 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      mp_factor_insert(factors,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (mpz_srcptr)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(q);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,1);\n    unaff_s0 = t;\n    unaff_s3 = factors;\n    if (iVar5 != 0) {\n      if (puVar24[-0x6c28] != '\0') {\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      _Var11 = mp_prime_p(t);\n      if (CONCAT31(extraout_var,_Var11) == 0) {\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }\n      else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }\n    }\n  }\n  if (iVar12 == *(int *)puVar4) {\n    return;\n  }\n  pcVar25 = mp_prime_p;\n  puVar22 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  piVar6 = *(int **)(puVar22 + 0x24c64);\n  p_Var13 = (mpz_ptr)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar24;\n  p_Stack_94 = (__mpz_struct *)*piVar6;\n  p_Stack_90 = unaff_s0;\n  p_Stack_8c = unaff_s1;\n  p_Stack_88 = unaff_s2;\n  pmStack_84 = unaff_s3;\n  p_Stack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  p_Stack_74 = unaff_s7;\n  pcStack_6c = pcVar25;\n  iVar5 = (**(code **)(puVar22 + 0x24b54))();\n  if (0 < iVar5) {\n    p_Var13 = (mpz_ptr)0x17ded79;\n    iVar5 = (**(code **)(puVar22 + 0x24b54))(p_Var15);\n    if (-1 < iVar5) {\n      unaff_s2 = &_Stack_ac;\n      unaff_s1 = &_Stack_b8;\n      unaff_s5 = &_Stack_c4;\n      unaff_s0 = &_Stack_a0;\n      (**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);\n      unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);\n      (**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puVar22 + 0x24c74))(unaff_s1,2);\n      iVar5 = *(int *)(puVar22 + 0x24a00);\n      _Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);\n      if (CONCAT31(extraout_var_00,_Var11) != 0) {\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }\n      p_Var13 = unaff_s1;\n      in_a2 = unaff_s2;\n      (**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (p_Stack_94 == (__mpz_struct *)*piVar6) {\n    return;\n  }\n  pcVar25 = *(code **)(puVar22 + 0x24c4c);\n  pcVar26 = mp_factor_using_pollard_rho;\n  prime = p_Stack_94;\n  (*pcVar25)();\n  piVar6 = *(int **)(pcVar25 + 0x24930);\n  iVar5 = *(int *)(pcVar25 + 0x246c0);\n  iStackY_134 = *piVar6;\n  p_StackY_130 = unaff_s0;\n  p_StackY_12c = unaff_s1;\n  p_StackY_128 = unaff_s2;\n  pmStackY_124 = unaff_s3;\n  p_StackY_120 = p_Var15;\n  p_StackY_11c = unaff_s5;\n  puStackY_118 = unaff_s6;\n  p_StackY_114 = unaff_s7;\n  puStackY_110 = puVar24;\n  pcStackY_10c = pcVar26;\n  if (*(char *)(iVar5 + -0x6c28) != '\0') {\n    (**(code **)(pcVar25 + 0x24824))\n              (**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13);\n  }\n  puVar19 = auStackY_140;\n  p_Var15 = &_StackY_14c;\n  (**(code **)(pcVar25 + 0x24910))(p_Var15,puVar19,0);\n  puVar16 = auStackY_170;\n  pcVar18 = (code *)auStackY_158;\n  (**(code **)(pcVar25 + 0x248bc))(auStackY_164,2);\n  (**(code **)(pcVar25 + 0x248bc))(auStackY_17c,2);\n  (**(code **)(pcVar25 + 0x248bc))(puVar16,2);\n  (**(code **)(pcVar25 + 0x2485c))(pcVar18,1);\n  uStackY_1a8 = 1;\n  uStackY_1b0 = 0;\n  pcVar26 = (code *)(&DAT_00004704 + *(int *)(pcVar25 + 0x246cc));\n  iVar12 = *(int *)(pcVar25 + 0x246cc);\n  iVar7 = *(int *)(pcVar25 + 0x246d0);\n  iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n  uVar17 = 0;\n  uVar27 = 1;\n  if (iVar9 == 0) {\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    } while (iVar9 != 0);\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }\n  (*pcVar26)();\n  if (iStackY_134 == *piVar6) {\n    return;\n  }\n  (**(code **)(pcVar25 + 0x24918))();\n  pcVar25 = pcVar25 + 0x2c698;\n  pcVar26 = pcVar18;\n  puVar14 = puVar19;\n  if (((uint)puVar16 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n    puStackY_1bc = puVar19;\n    do {\n      while( true ) {\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);\n      uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);\n      puVar19 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n      puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));\n      uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n      uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n      lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n      puVar19 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar20 = puVar19 + (int)lVar3;\n      uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n      puStackY_1bc = puVar21 + -(int)puVar20;\n      pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));\n    } while ((uVar17 <= uVar27) &&\n            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))))\n    ;\n    puVar19 = puStackY_1bc + (int)auStackY_164;\n    pcVar18 = pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc);\n  } while( true );\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "_Bool _Var11;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "__mpz_struct *prime;" type_identifier (pointer_declarator "*prime" * identifier) ;) (declaration "mpz_ptr p_Var13;" type_identifier identifier ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "mpz_ptr in_a2;" type_identifier identifier ;) (declaration "__mpz_struct *p_Var15;" type_identifier (pointer_declarator "*p_Var15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "__mpz_struct *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "mpz_ptr unaff_s1;" type_identifier identifier ;) (declaration "mpz_srcptr unaff_s2;" type_identifier identifier ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "mp_factors *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "mpz_srcptr unaff_s5;" type_identifier identifier ;) (declaration "undefined *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "__mpz_struct *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "uint uStackY_1c4;" type_identifier identifier ;) (declaration "undefined1 *puStackY_1bc;" type_identifier (pointer_declarator "*puStackY_1bc" * identifier) ;) (declaration "uint uStackY_1b0;" type_identifier identifier ;) (declaration "uint uStackY_1a8;" type_identifier identifier ;) (declaration "undefined1 auStackY_17c [12];" type_identifier (array_declarator "auStackY_17c [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStackY_170 [12];" type_identifier (array_declarator "auStackY_170 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStackY_164 [12];" type_identifier (array_declarator "auStackY_164 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStackY_158 [12];" type_identifier (array_declarator "auStackY_158 [12]" identifier [ number_literal ]) ;) (declaration "__mpz_struct _StackY_14c;" type_identifier identifier ;) (declaration "undefined1 auStackY_140 [12];" type_identifier (array_declarator "auStackY_140 [12]" identifier [ number_literal ]) ;) (declaration "int iStackY_134;" primitive_type identifier ;) (declaration "__mpz_struct *p_StackY_130;" type_identifier (pointer_declarator "*p_StackY_130" * identifier) ;) (declaration "mpz_ptr p_StackY_12c;" type_identifier identifier ;) (declaration "mpz_srcptr p_StackY_128;" type_identifier identifier ;) (declaration "mp_factors *pmStackY_124;" type_identifier (pointer_declarator "*pmStackY_124" * identifier) ;) (declaration "mpz_srcptr p_StackY_120;" type_identifier identifier ;) (declaration "mpz_srcptr p_StackY_11c;" type_identifier identifier ;) (declaration "undefined *puStackY_118;" type_identifier (pointer_declarator "*puStackY_118" * identifier) ;) (declaration "__mpz_struct *p_StackY_114;" type_identifier (pointer_declarator "*p_StackY_114" * identifier) ;) (declaration "undefined *puStackY_110;" type_identifier (pointer_declarator "*puStackY_110" * identifier) ;) (declaration "code *pcStackY_10c;" type_identifier (pointer_declarator "*pcStackY_10c" * identifier) ;) (declaration "mp_factors mStack_d0;" type_identifier identifier ;) (declaration "__mpz_struct _Stack_c4;" type_identifier identifier ;) (declaration "__mpz_struct _Stack_b8;" type_identifier identifier ;) (declaration "__mpz_struct _Stack_ac;" type_identifier identifier ;) (declaration "__mpz_struct _Stack_a0;" type_identifier identifier ;) (declaration "__mpz_struct *p_Stack_94;" type_identifier (pointer_declarator "*p_Stack_94" * identifier) ;) (declaration "__mpz_struct *p_Stack_90;" type_identifier (pointer_declarator "*p_Stack_90" * identifier) ;) (declaration "mpz_ptr p_Stack_8c;" type_identifier identifier ;) (declaration "mpz_srcptr p_Stack_88;" type_identifier identifier ;) (declaration "mp_factors *pmStack_84;" type_identifier (pointer_declarator "*pmStack_84" * identifier) ;) (declaration "undefined *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "mpz_srcptr p_Stack_7c;" type_identifier identifier ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "__mpz_struct *p_Stack_74;" type_identifier (pointer_declarator "*p_Stack_74" * identifier) ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "mpz_t q;" type_identifier identifier ;) (declaration "mpz_t pz;" type_identifier identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00039368;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00039368" identifier = identifier) ;) (expression_statement "iVar5 = t->_mp_size;" (assignment_expression "iVar5 = t->_mp_size" identifier = (field_expression "t->_mp_size" identifier -> field_identifier)) ;) (expression_statement "factors->e = (ulong *)0x0;" (assignment_expression "factors->e = (ulong *)0x0" (field_expression "factors->e" identifier -> field_identifier) = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "factors->nfactors = 0;" (assignment_expression "factors->nfactors = 0" (field_expression "factors->nfactors" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar12 = *(int *)puVar4;" (assignment_expression "iVar12 = *(int *)puVar4" identifier = (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "factors->p = (mpz_t *)0x0;" (assignment_expression "factors->p = (mpz_t *)0x0" (field_expression "factors->p" identifier -> field_identifier) = (cast_expression "(mpz_t *)0x0" ( (type_descriptor "mpz_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar24 = PTR_DAT_000390f8;" (assignment_expression "puVar24 = PTR_DAT_000390f8" identifier = identifier) ;) (expression_statement "p_Var15 = t;" (assignment_expression "p_Var15 = t" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(q);\n    p_Var13 = (mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0);\n    in_a2 = p_Var13;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(t,t);\n    if (p_Var13 != (mpz_ptr)0x0) {\n      do {\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      } while (p_Var13 != (mpz_ptr)0x0);\n    }\n    unaff_s2 = (mpz_srcptr)0x1;\n    unaff_s1 = (mpz_ptr)0x3;\n    unaff_s7 = pz;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = (mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c);\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }\n      in_a2 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      mp_factor_insert(factors,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (mpz_srcptr)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(q);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,1);\n    unaff_s0 = t;\n    unaff_s3 = factors;\n    if (iVar5 != 0) {\n      if (puVar24[-0x6c28] != '\0') {\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      _Var11 = mp_prime_p(t);\n      if (CONCAT31(extraout_var,_Var11) == 0) {\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }\n      else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(q);\n    p_Var13 = (mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0);\n    in_a2 = p_Var13;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(t,t);\n    if (p_Var13 != (mpz_ptr)0x0) {\n      do {\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      } while (p_Var13 != (mpz_ptr)0x0);\n    }\n    unaff_s2 = (mpz_srcptr)0x1;\n    unaff_s1 = (mpz_ptr)0x3;\n    unaff_s7 = pz;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = (mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c);\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }\n      in_a2 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      mp_factor_insert(factors,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (mpz_srcptr)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(q);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,1);\n    unaff_s0 = t;\n    unaff_s3 = factors;\n    if (iVar5 != 0) {\n      if (puVar24[-0x6c28] != '\0') {\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      _Var11 = mp_prime_p(t);\n      if (CONCAT31(extraout_var,_Var11) == 0) {\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }\n      else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }\n    }\n  }" { (if_statement "if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }" if (parenthesized_expression "(PTR_DAT_000390f8[-0x6c28] != '\0')" ( (binary_expression "PTR_DAT_000390f8[-0x6c28] != '\0'" (subscript_expression "PTR_DAT_000390f8[-0x6c28]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }" { (expression_statement "(*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);" (call_expression "(*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390)" (parenthesized_expression "(*(code *)PTR_fwrite_00039328)" ( (pointer_expression "*(code *)PTR_fwrite_00039328" * (cast_expression "(code *)PTR_fwrite_00039328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390)" ( (binary_expression "PTR_LAB_00039108 + 0x4c20" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_00039390" * (cast_expression "(undefined4 *)PTR_stderr_00039390" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "(*(code *)PTR___gmpz_init_0003924c)(q);" (call_expression "(*(code *)PTR___gmpz_init_0003924c)(q)" (parenthesized_expression "(*(code *)PTR___gmpz_init_0003924c)" ( (pointer_expression "*(code *)PTR___gmpz_init_0003924c" * (cast_expression "(code *)PTR___gmpz_init_0003924c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(q)" ( identifier ))) ;) (expression_statement "p_Var13 = (mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0);" (assignment_expression "p_Var13 = (mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0)" identifier = (call_expression "(mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)(t,0)" (call_expression "(mpz_ptr)(*(code *)PTR___gmpz_scan1_000393ac)" (parenthesized_expression "(mpz_ptr)" ( identifier )) (argument_list "(*(code *)PTR___gmpz_scan1_000393ac)" ( (pointer_expression "*(code *)PTR___gmpz_scan1_000393ac" * (cast_expression "(code *)PTR___gmpz_scan1_000393ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(t,0)" ( identifier , number_literal )))) ;) (expression_statement "in_a2 = p_Var13;" (assignment_expression "in_a2 = p_Var13" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(t,t);" (call_expression "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(t,t)" (parenthesized_expression "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)" ( (pointer_expression "*(code *)PTR___gmpz_fdiv_q_2exp_00039320" * (cast_expression "(code *)PTR___gmpz_fdiv_q_2exp_00039320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(t,t)" ( identifier , identifier ))) ;) (if_statement "if (p_Var13 != (mpz_ptr)0x0) {\n      do {\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      } while (p_Var13 != (mpz_ptr)0x0);\n    }" if (parenthesized_expression "(p_Var13 != (mpz_ptr)0x0)" ( (binary_expression "p_Var13 != (mpz_ptr)0x0" identifier != (cast_expression "(mpz_ptr)0x0" ( (type_descriptor "mpz_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n      do {\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      } while (p_Var13 != (mpz_ptr)0x0);\n    }" { (do_statement "do {\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      } while (p_Var13 != (mpz_ptr)0x0);" do (compound_statement "{\n        p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);\n        mp_factor_insert(factors,pz);\n        (*(code *)PTR___gmpz_clear_000392c8)(pz);\n      }" { (expression_statement "p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3);" (assignment_expression "p_Var13 = (mpz_ptr)((int)&p_Var13[-1]._mp_d + 3)" identifier = (call_expression "(mpz_ptr)((int)&p_Var13[-1]._mp_d + 3)" (parenthesized_expression "(mpz_ptr)" ( identifier )) (argument_list "((int)&p_Var13[-1]._mp_d + 3)" ( (binary_expression "(int)&p_Var13[-1]._mp_d + 3" (cast_expression "(int)&p_Var13[-1]._mp_d" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var13[-1]._mp_d" & (field_expression "p_Var13[-1]._mp_d" (subscript_expression "p_Var13[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2);" (call_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)(pz,2)" (parenthesized_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)" ( (pointer_expression "*(code *)PTR___gmpz_init_set_ui_00039294" * (cast_expression "(code *)PTR___gmpz_init_set_ui_00039294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pz,2)" ( identifier , number_literal ))) ;) (expression_statement "mp_factor_insert(factors,pz);" (call_expression "mp_factor_insert(factors,pz)" identifier (argument_list "(factors,pz)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(pz);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(pz)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pz)" ( identifier ))) ;) }) while (parenthesized_expression "(p_Var13 != (mpz_ptr)0x0)" ( (binary_expression "p_Var13 != (mpz_ptr)0x0" identifier != (cast_expression "(mpz_ptr)0x0" ( (type_descriptor "mpz_ptr" type_identifier) ) number_literal)) )) ;) })) (expression_statement "unaff_s2 = (mpz_srcptr)0x1;" (assignment_expression "unaff_s2 = (mpz_srcptr)0x1" identifier = (cast_expression "(mpz_srcptr)0x1" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) (expression_statement "unaff_s1 = (mpz_ptr)0x3;" (assignment_expression "unaff_s1 = (mpz_ptr)0x3" identifier = (cast_expression "(mpz_ptr)0x3" ( (type_descriptor "mpz_ptr" type_identifier) ) number_literal)) ;) (expression_statement "unaff_s7 = pz;" (assignment_expression "unaff_s7 = pz" identifier = identifier) ;) (expression_statement "unaff_s6 = PTR_00039104 + 0x365c;" (assignment_expression "unaff_s6 = PTR_00039104 + 0x365c" identifier = (binary_expression "PTR_00039104 + 0x365c" identifier + number_literal)) ;) (expression_statement "unaff_s5 = (mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c);" (assignment_expression "unaff_s5 = (mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c)" identifier = (call_expression "(mpz_srcptr)(PTR_LAB_00039108 + 0x7e4c)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(PTR_LAB_00039108 + 0x7e4c)" ( (binary_expression "PTR_LAB_00039108 + 0x7e4c" identifier + number_literal) )))) ;) (do_statement "do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }\n      in_a2 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      mp_factor_insert(factors,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (mpz_srcptr)0x29d);" do (compound_statement "{\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }\n      in_a2 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      mp_factor_insert(factors,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    }" { (while_statement "while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0) {\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }" while (parenthesized_expression "(iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1), iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1)" identifier = (call_expression "(*(code *)PTR___gmpz_divisible_ui_p_000392d8)(t,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_divisible_ui_p_000392d8)" ( (pointer_expression "*(code *)PTR___gmpz_divisible_ui_p_000392d8" * (cast_expression "(code *)PTR___gmpz_divisible_ui_p_000392d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(t,unaff_s1)" ( identifier , identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) )) (compound_statement "{\n        piVar6 = &unaff_s2->_mp_alloc;\n        unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);\n        unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;\n      }" { (expression_statement "piVar6 = &unaff_s2->_mp_alloc;" (assignment_expression "piVar6 = &unaff_s2->_mp_alloc" identifier = (pointer_expression "&unaff_s2->_mp_alloc" & (field_expression "unaff_s2->_mp_alloc" identifier -> field_identifier))) ;) (expression_statement "unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1);" (assignment_expression "unaff_s2 = (mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1)" identifier = (call_expression "(mpz_srcptr)((int)&unaff_s2->_mp_alloc + 1)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "((int)&unaff_s2->_mp_alloc + 1)" ( (binary_expression "(int)&unaff_s2->_mp_alloc + 1" (cast_expression "(int)&unaff_s2->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s2->_mp_alloc" & (field_expression "unaff_s2->_mp_alloc" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6));" (assignment_expression "unaff_s1 = (mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6))" identifier = (call_expression "(mpz_ptr)((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6))" (parenthesized_expression "(mpz_ptr)" ( identifier )) (argument_list "((int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6))" ( (binary_expression "(int)&unaff_s1->_mp_alloc +\n                            (uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6)" (cast_expression "(int)&unaff_s1->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s1->_mp_alloc" & (field_expression "unaff_s1->_mp_alloc" identifier -> field_identifier))) + (binary_expression "(uint)*(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)&unaff_s5->_mp_alloc + (int)piVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s5->_mp_alloc + (int)piVar6)" ( (binary_expression "(int)&unaff_s5->_mp_alloc + (int)piVar6" (cast_expression "(int)&unaff_s5->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s5->_mp_alloc" & (field_expression "unaff_s5->_mp_alloc" identifier -> field_identifier))) + (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) )))) ;) (expression_statement "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1)" identifier = (call_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)(t,(int)unaff_s1 * (int)unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)" ( (pointer_expression "*(code *)PTR___gmpz_cmp_ui_00039258" * (cast_expression "(code *)PTR___gmpz_cmp_ui_00039258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(t,(int)unaff_s1 * (int)unaff_s1)" ( identifier , (binary_expression "(int)unaff_s1 * (int)unaff_s1" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) * (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)) goto LAB_00014628;" if (parenthesized_expression "((iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d))" ( (binary_expression "(iVar5 < 0) || (unaff_s2 == (mpz_srcptr)0x29d)" (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) || (parenthesized_expression "(unaff_s2 == (mpz_srcptr)0x29d)" ( (binary_expression "unaff_s2 == (mpz_srcptr)0x29d" identifier == (cast_expression "(mpz_srcptr)0x29d" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ))) )) (goto_statement "goto LAB_00014628;" goto statement_identifier ;)) })) (expression_statement "in_a2 = unaff_s1;" (assignment_expression "in_a2 = unaff_s1" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t);" (call_expression "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(t,t)" (parenthesized_expression "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)" ( (pointer_expression "*(code *)PTR___gmpz_tdiv_q_ui_0003933c" * (cast_expression "(code *)PTR___gmpz_tdiv_q_ui_0003933c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(t,t)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);" (call_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)" ( (pointer_expression "*(code *)PTR___gmpz_init_set_ui_00039294" * (cast_expression "(code *)PTR___gmpz_init_set_ui_00039294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,unaff_s1)" ( identifier , identifier ))) ;) (expression_statement "mp_factor_insert(factors,unaff_s7);" (call_expression "mp_factor_insert(factors,unaff_s7)" identifier (argument_list "(factors,unaff_s7)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(unaff_s7)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7)" ( identifier ))) ;) }) while (parenthesized_expression "(unaff_s2 != (mpz_srcptr)0x29d)" ( (binary_expression "unaff_s2 != (mpz_srcptr)0x29d" identifier != (cast_expression "(mpz_srcptr)0x29d" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(q);" statement_identifier : (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(q);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(q)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(q)" ( identifier ))) ;)) (expression_statement "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(t,1)" identifier = (call_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)(t,1)" (parenthesized_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)" ( (pointer_expression "*(code *)PTR___gmpz_cmp_ui_00039258" * (cast_expression "(code *)PTR___gmpz_cmp_ui_00039258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(t,1)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s0 = t;" (assignment_expression "unaff_s0 = t" identifier = identifier) ;) (expression_statement "unaff_s3 = factors;" (assignment_expression "unaff_s3 = factors" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n      if (puVar24[-0x6c28] != '\0') {\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      _Var11 = mp_prime_p(t);\n      if (CONCAT31(extraout_var,_Var11) == 0) {\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }\n      else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if (puVar24[-0x6c28] != '\0') {\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      _Var11 = mp_prime_p(t);\n      if (CONCAT31(extraout_var,_Var11) == 0) {\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }\n      else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }\n    }" { (if_statement "if (puVar24[-0x6c28] != '\0') {\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }" if (parenthesized_expression "(puVar24[-0x6c28] != '\0')" ( (binary_expression "puVar24[-0x6c28] != '\0'" (subscript_expression "puVar24[-0x6c28]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        in_a2 = (mpz_ptr)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }" { (expression_statement "in_a2 = (mpz_ptr)0x13;" (assignment_expression "in_a2 = (mpz_ptr)0x13" identifier = (cast_expression "(mpz_ptr)0x13" ( (type_descriptor "mpz_ptr" type_identifier) ) number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);" (call_expression "(*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390)" (parenthesized_expression "(*(code *)PTR_fwrite_00039328)" ( (pointer_expression "*(code *)PTR_fwrite_00039328" * (cast_expression "(code *)PTR_fwrite_00039328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390)" ( (binary_expression "PTR_LAB_00039108 + 0x4c34" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_00039390" * (cast_expression "(undefined4 *)PTR_stderr_00039390" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "_Var11 = mp_prime_p(t);" (assignment_expression "_Var11 = mp_prime_p(t)" identifier = (call_expression "mp_prime_p(t)" identifier (argument_list "(t)" ( identifier )))) ;) (if_statement "if (CONCAT31(extraout_var,_Var11) == 0) {\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }\n      else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }" if (parenthesized_expression "(CONCAT31(extraout_var,_Var11) == 0)" ( (binary_expression "CONCAT31(extraout_var,_Var11) == 0" (call_expression "CONCAT31(extraout_var,_Var11)" identifier (argument_list "(extraout_var,_Var11)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n        p_Var15 = t;\n        in_a2 = (mpz_ptr)factors;\n        mp_factor_using_pollard_rho(t,1,factors);\n      }" { (expression_statement "p_Var15 = t;" (assignment_expression "p_Var15 = t" identifier = identifier) ;) (expression_statement "in_a2 = (mpz_ptr)factors;" (assignment_expression "in_a2 = (mpz_ptr)factors" identifier = (cast_expression "(mpz_ptr)factors" ( (type_descriptor "mpz_ptr" type_identifier) ) identifier)) ;) (expression_statement "mp_factor_using_pollard_rho(t,1,factors);" (call_expression "mp_factor_using_pollard_rho(t,1,factors)" identifier (argument_list "(t,1,factors)" ( identifier , number_literal , identifier ))) ;) }) (else_clause "else {\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }" else (compound_statement "{\n        p_Var15 = (__mpz_struct *)factors;\n        mp_factor_insert(factors,t);\n      }" { (expression_statement "p_Var15 = (__mpz_struct *)factors;" (assignment_expression "p_Var15 = (__mpz_struct *)factors" identifier = (cast_expression "(__mpz_struct *)factors" ( (type_descriptor "__mpz_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "mp_factor_insert(factors,t);" (call_expression "mp_factor_insert(factors,t)" identifier (argument_list "(factors,t)" ( identifier , identifier ))) ;) }))) })) })) (if_statement "if (iVar12 == *(int *)puVar4) {\n    return;\n  }" if (parenthesized_expression "(iVar12 == *(int *)puVar4)" ( (binary_expression "iVar12 == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar25 = mp_prime_p;" (assignment_expression "pcVar25 = mp_prime_p" identifier = identifier) ;) (expression_statement "puVar22 = PTR___stack_chk_fail_00039350;" (assignment_expression "puVar22 = PTR___stack_chk_fail_00039350" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00039350)();" (call_expression "(*(code *)PTR___stack_chk_fail_00039350)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00039350)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00039350" * (cast_expression "(code *)PTR___stack_chk_fail_00039350" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar22 + 0x24c64);" (assignment_expression "piVar6 = *(int **)(puVar22 + 0x24c64)" identifier = (pointer_expression "*(int **)(puVar22 + 0x24c64)" * (cast_expression "(int **)(puVar22 + 0x24c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c64)" ( (binary_expression "puVar22 + 0x24c64" identifier + number_literal) ))))) ;) (expression_statement "p_Var13 = (mpz_ptr)0x1;" (assignment_expression "p_Var13 = (mpz_ptr)0x1" identifier = (cast_expression "(mpz_ptr)0x1" ( (type_descriptor "mpz_ptr" type_identifier) ) number_literal)) ;) (expression_statement "puStack_80 = puVar4;" (assignment_expression "puStack_80 = puVar4" identifier = identifier) ;) (expression_statement "puStack_70 = puVar24;" (assignment_expression "puStack_70 = puVar24" identifier = identifier) ;) (expression_statement "p_Stack_94 = (__mpz_struct *)*piVar6;" (assignment_expression "p_Stack_94 = (__mpz_struct *)*piVar6" identifier = (cast_expression "(__mpz_struct *)*piVar6" ( (type_descriptor "__mpz_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "p_Stack_90 = unaff_s0;" (assignment_expression "p_Stack_90 = unaff_s0" identifier = identifier) ;) (expression_statement "p_Stack_8c = unaff_s1;" (assignment_expression "p_Stack_8c = unaff_s1" identifier = identifier) ;) (expression_statement "p_Stack_88 = unaff_s2;" (assignment_expression "p_Stack_88 = unaff_s2" identifier = identifier) ;) (expression_statement "pmStack_84 = unaff_s3;" (assignment_expression "pmStack_84 = unaff_s3" identifier = identifier) ;) (expression_statement "p_Stack_7c = unaff_s5;" (assignment_expression "p_Stack_7c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_78 = unaff_s6;" (assignment_expression "puStack_78 = unaff_s6" identifier = identifier) ;) (expression_statement "p_Stack_74 = unaff_s7;" (assignment_expression "p_Stack_74 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_6c = pcVar25;" (assignment_expression "pcStack_6c = pcVar25" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar22 + 0x24b54))();" (assignment_expression "iVar5 = (**(code **)(puVar22 + 0x24b54))()" identifier = (call_expression "(**(code **)(puVar22 + 0x24b54))()" (parenthesized_expression "(**(code **)(puVar22 + 0x24b54))" ( (pointer_expression "**(code **)(puVar22 + 0x24b54)" * (pointer_expression "*(code **)(puVar22 + 0x24b54)" * (cast_expression "(code **)(puVar22 + 0x24b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24b54)" ( (binary_expression "puVar22 + 0x24b54" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (0 < iVar5) {\n    p_Var13 = (mpz_ptr)0x17ded79;\n    iVar5 = (**(code **)(puVar22 + 0x24b54))(p_Var15);\n    if (-1 < iVar5) {\n      unaff_s2 = &_Stack_ac;\n      unaff_s1 = &_Stack_b8;\n      unaff_s5 = &_Stack_c4;\n      unaff_s0 = &_Stack_a0;\n      (**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);\n      unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);\n      (**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puVar22 + 0x24c74))(unaff_s1,2);\n      iVar5 = *(int *)(puVar22 + 0x24a00);\n      _Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);\n      if (CONCAT31(extraout_var_00,_Var11) != 0) {\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }\n      p_Var13 = unaff_s1;\n      in_a2 = unaff_s2;\n      (**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n    p_Var13 = (mpz_ptr)0x17ded79;\n    iVar5 = (**(code **)(puVar22 + 0x24b54))(p_Var15);\n    if (-1 < iVar5) {\n      unaff_s2 = &_Stack_ac;\n      unaff_s1 = &_Stack_b8;\n      unaff_s5 = &_Stack_c4;\n      unaff_s0 = &_Stack_a0;\n      (**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);\n      unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);\n      (**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puVar22 + 0x24c74))(unaff_s1,2);\n      iVar5 = *(int *)(puVar22 + 0x24a00);\n      _Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);\n      if (CONCAT31(extraout_var_00,_Var11) != 0) {\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }\n      p_Var13 = unaff_s1;\n      in_a2 = unaff_s2;\n      (**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" { (expression_statement "p_Var13 = (mpz_ptr)0x17ded79;" (assignment_expression "p_Var13 = (mpz_ptr)0x17ded79" identifier = (cast_expression "(mpz_ptr)0x17ded79" ( (type_descriptor "mpz_ptr" type_identifier) ) number_literal)) ;) (expression_statement "iVar5 = (**(code **)(puVar22 + 0x24b54))(p_Var15);" (assignment_expression "iVar5 = (**(code **)(puVar22 + 0x24b54))(p_Var15)" identifier = (call_expression "(**(code **)(puVar22 + 0x24b54))(p_Var15)" (parenthesized_expression "(**(code **)(puVar22 + 0x24b54))" ( (pointer_expression "**(code **)(puVar22 + 0x24b54)" * (pointer_expression "*(code **)(puVar22 + 0x24b54)" * (cast_expression "(code **)(puVar22 + 0x24b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24b54)" ( (binary_expression "puVar22 + 0x24b54" identifier + number_literal) ))))) )) (argument_list "(p_Var15)" ( identifier )))) ;) (if_statement "if (-1 < iVar5) {\n      unaff_s2 = &_Stack_ac;\n      unaff_s1 = &_Stack_b8;\n      unaff_s5 = &_Stack_c4;\n      unaff_s0 = &_Stack_a0;\n      (**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);\n      unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);\n      (**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puVar22 + 0x24c74))(unaff_s1,2);\n      iVar5 = *(int *)(puVar22 + 0x24a00);\n      _Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);\n      if (CONCAT31(extraout_var_00,_Var11) != 0) {\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }\n      p_Var13 = unaff_s1;\n      in_a2 = unaff_s2;\n      (**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n      unaff_s2 = &_Stack_ac;\n      unaff_s1 = &_Stack_b8;\n      unaff_s5 = &_Stack_c4;\n      unaff_s0 = &_Stack_a0;\n      (**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);\n      unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);\n      (**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puVar22 + 0x24c74))(unaff_s1,2);\n      iVar5 = *(int *)(puVar22 + 0x24a00);\n      _Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);\n      if (CONCAT31(extraout_var_00,_Var11) != 0) {\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }\n      p_Var13 = unaff_s1;\n      in_a2 = unaff_s2;\n      (**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" { (expression_statement "unaff_s2 = &_Stack_ac;" (assignment_expression "unaff_s2 = &_Stack_ac" identifier = (pointer_expression "&_Stack_ac" & identifier)) ;) (expression_statement "unaff_s1 = &_Stack_b8;" (assignment_expression "unaff_s1 = &_Stack_b8" identifier = (pointer_expression "&_Stack_b8" & identifier)) ;) (expression_statement "unaff_s5 = &_Stack_c4;" (assignment_expression "unaff_s5 = &_Stack_c4" identifier = (pointer_expression "&_Stack_c4" & identifier)) ;) (expression_statement "unaff_s0 = &_Stack_a0;" (assignment_expression "unaff_s0 = &_Stack_a0" identifier = (pointer_expression "&_Stack_a0" & identifier)) ;) (expression_statement "(**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);" (call_expression "(**(code **)(puVar22 + 0x24c44))(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c44))" ( (pointer_expression "**(code **)(puVar22 + 0x24c44)" * (pointer_expression "*(code **)(puVar22 + 0x24c44)" * (cast_expression "(code **)(puVar22 + 0x24c44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c44)" ( (binary_expression "puVar22 + 0x24c44" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1);" (call_expression "(**(code **)(puVar22 + 0x24c84))(unaff_s2,p_Var15,1)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c84))" ( (pointer_expression "**(code **)(puVar22 + 0x24c84)" * (pointer_expression "*(code **)(puVar22 + 0x24c84)" * (cast_expression "(code **)(puVar22 + 0x24c84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c84)" ( (binary_expression "puVar22 + 0x24c84" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,p_Var15,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0);" (assignment_expression "unaff_s6 = (undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0)" identifier = (cast_expression "(undefined *)(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + 0x24ca8))(unaff_s2,0)" (parenthesized_expression "(**(code **)(puVar22 + 0x24ca8))" ( (pointer_expression "**(code **)(puVar22 + 0x24ca8)" * (pointer_expression "*(code **)(puVar22 + 0x24ca8)" * (cast_expression "(code **)(puVar22 + 0x24ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24ca8)" ( (binary_expression "puVar22 + 0x24ca8" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,0)" ( identifier , number_literal ))))) ;) (expression_statement "(**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6);" (call_expression "(**(code **)(puVar22 + 0x24ba8))(unaff_s5,unaff_s2,unaff_s6)" (parenthesized_expression "(**(code **)(puVar22 + 0x24ba8))" ( (pointer_expression "**(code **)(puVar22 + 0x24ba8)" * (pointer_expression "*(code **)(puVar22 + 0x24ba8)" * (cast_expression "(code **)(puVar22 + 0x24ba8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24ba8)" ( (binary_expression "puVar22 + 0x24ba8" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s2,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar22 + 0x24c74))(unaff_s1,2);" (call_expression "(**(code **)(puVar22 + 0x24c74))(unaff_s1,2)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c74))" ( (pointer_expression "**(code **)(puVar22 + 0x24c74)" * (pointer_expression "*(code **)(puVar22 + 0x24c74)" * (cast_expression "(code **)(puVar22 + 0x24c74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c74)" ( (binary_expression "puVar22 + 0x24c74" identifier + number_literal) ))))) )) (argument_list "(unaff_s1,2)" ( identifier , number_literal ))) ;) (expression_statement "iVar5 = *(int *)(puVar22 + 0x24a00);" (assignment_expression "iVar5 = *(int *)(puVar22 + 0x24a00)" identifier = (pointer_expression "*(int *)(puVar22 + 0x24a00)" * (cast_expression "(int *)(puVar22 + 0x24a00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x24a00)" ( (binary_expression "puVar22 + 0x24a00" identifier + number_literal) ))))) ;) (expression_statement "_Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6);" (assignment_expression "_Var11 = mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6)" identifier = (call_expression "mp_millerrabin(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6)" identifier (argument_list "(p_Var15,unaff_s2,unaff_s1,unaff_s0,unaff_s5,(ulong)unaff_s6)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(ulong)unaff_s6" ( (type_descriptor "ulong" type_identifier) ) identifier) )))) ;) (if_statement "if (CONCAT31(extraout_var_00,_Var11) != 0) {\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }" if (parenthesized_expression "(CONCAT31(extraout_var_00,_Var11) != 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var11) != 0" (call_expression "CONCAT31(extraout_var_00,_Var11)" identifier (argument_list "(extraout_var_00,_Var11)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n        (**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);\n        mp_factor(unaff_s0,&mStack_d0);\n        iVar12 = *(int *)(puVar22 + 0x24a04);\n        unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);\n        while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }\nLAB_000149e4:\n        mp_factor_clear(&mStack_d0);\n      }" { (expression_statement "(**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2);" (call_expression "(**(code **)(puVar22 + 0x24c40))(unaff_s0,unaff_s2)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c40))" ( (pointer_expression "**(code **)(puVar22 + 0x24c40)" * (pointer_expression "*(code **)(puVar22 + 0x24c40)" * (cast_expression "(code **)(puVar22 + 0x24c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c40)" ( (binary_expression "puVar22 + 0x24c40" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s2)" ( identifier , identifier ))) ;) (expression_statement "mp_factor(unaff_s0,&mStack_d0);" (call_expression "mp_factor(unaff_s0,&mStack_d0)" identifier (argument_list "(unaff_s0,&mStack_d0)" ( identifier , (pointer_expression "&mStack_d0" & identifier) ))) ;) (expression_statement "iVar12 = *(int *)(puVar22 + 0x24a04);" (assignment_expression "iVar12 = *(int *)(puVar22 + 0x24a04)" identifier = (pointer_expression "*(int *)(puVar22 + 0x24a04)" * (cast_expression "(int *)(puVar22 + 0x24a04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x24a04)" ( (binary_expression "puVar22 + 0x24a04" identifier + number_literal) ))))) ;) (expression_statement "unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c);" (assignment_expression "unaff_s3 = (mp_factors *)(iVar12 + 0x7e4c)" identifier = (cast_expression "(mp_factors *)(iVar12 + 0x7e4c)" ( (type_descriptor "mp_factors *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x7e4c)" ( (binary_expression "iVar12 + 0x7e4c" identifier + number_literal) )))) ;) (while_statement "while (unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)\n        {\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }" while (parenthesized_expression "(unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0)" ( (comma_expression "unaff_s7 = (__mpz_struct *)0x0, (undefined *)mStack_d0.nfactors != (undefined *)0x0" (assignment_expression "unaff_s7 = (__mpz_struct *)0x0" identifier = (cast_expression "(__mpz_struct *)0x0" ( (type_descriptor "__mpz_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "(undefined *)mStack_d0.nfactors != (undefined *)0x0" (cast_expression "(undefined *)mStack_d0.nfactors" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "mStack_d0.nfactors" identifier . field_identifier)) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          puVar24 = (undefined *)0x0;\n          do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);\n          pcVar25 = *(code **)(puVar22 + 0x24be8);\nLAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);\n          iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar7 == 0) break;\n          unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);\n          if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }\n        }" { (expression_statement "puVar24 = (undefined *)0x0;" (assignment_expression "puVar24 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          } while (iVar7 != 0);" do (compound_statement "{\n            puVar24 = puVar24 + 1;\n            (**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);\n            (**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);\n            iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);\n            if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 1;\n          }" { (expression_statement "puVar24 = puVar24 + 1;" (assignment_expression "puVar24 = puVar24 + 1" identifier = (binary_expression "puVar24 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p);" (call_expression "(**(code **)(puVar22 + 0x24c48))\n                      (unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c48))" ( (pointer_expression "**(code **)(puVar22 + 0x24c48)" * (pointer_expression "*(code **)(puVar22 + 0x24c48)" * (cast_expression "(code **)(puVar22 + 0x24c48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c48)" ( (binary_expression "puVar22 + 0x24c48" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s2,(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p)" ( identifier , identifier , (binary_expression "(int)&unaff_s7->_mp_alloc + (int)*mStack_d0.p" (cast_expression "(int)&unaff_s7->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s7->_mp_alloc" & (field_expression "unaff_s7->_mp_alloc" identifier -> field_identifier))) + (cast_expression "(int)*mStack_d0.p" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*mStack_d0.p" * (field_expression "mStack_d0.p" identifier . field_identifier)))) ))) ;) (expression_statement "(**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15);" (call_expression "(**(code **)(puVar22 + 0x24c54))(unaff_s0,unaff_s1,unaff_s0,p_Var15)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c54))" ( (pointer_expression "**(code **)(puVar22 + 0x24c54)" * (pointer_expression "*(code **)(puVar22 + 0x24c54)" * (cast_expression "(code **)(puVar22 + 0x24c54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c54)" ( (binary_expression "puVar22 + 0x24c54" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s1,unaff_s0,p_Var15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1);" (assignment_expression "iVar7 = (**(code **)(puVar22 + 0x24b54))(unaff_s0,1)" identifier = (call_expression "(**(code **)(puVar22 + 0x24b54))(unaff_s0,1)" (parenthesized_expression "(**(code **)(puVar22 + 0x24b54))" ( (pointer_expression "**(code **)(puVar22 + 0x24b54)" * (pointer_expression "*(code **)(puVar22 + 0x24b54)" * (cast_expression "(code **)(puVar22 + 0x24b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24b54)" ( (binary_expression "puVar22 + 0x24b54" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,1)" ( identifier , number_literal )))) ;) (if_statement "if (mStack_d0.nfactors <= puVar24) {\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }" if (parenthesized_expression "(mStack_d0.nfactors <= puVar24)" ( (binary_expression "mStack_d0.nfactors <= puVar24" (field_expression "mStack_d0.nfactors" identifier . field_identifier) <= identifier) )) (compound_statement "{\n              pcVar25 = *(code **)(puVar22 + 0x24be8);\n              if (iVar7 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }" { (expression_statement "pcVar25 = *(code **)(puVar22 + 0x24be8);" (assignment_expression "pcVar25 = *(code **)(puVar22 + 0x24be8)" identifier = (pointer_expression "*(code **)(puVar22 + 0x24be8)" * (cast_expression "(code **)(puVar22 + 0x24be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24be8)" ( (binary_expression "puVar22 + 0x24be8" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_00014908;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00014908;" goto statement_identifier ;)) (goto_statement "goto LAB_000149e4;" goto statement_identifier ;) })) (expression_statement "unaff_s7 = unaff_s7 + 1;" (assignment_expression "unaff_s7 = unaff_s7 + 1" identifier = (binary_expression "unaff_s7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar25 = *(code **)(puVar22 + 0x24be8);" (assignment_expression "pcVar25 = *(code **)(puVar22 + 0x24be8)" identifier = (pointer_expression "*(code **)(puVar22 + 0x24be8)" * (cast_expression "(code **)(puVar22 + 0x24be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24be8)" ( (binary_expression "puVar22 + 0x24be8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014908:\n          (*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);" statement_identifier : (expression_statement "(*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p);" (call_expression "(*pcVar25)(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(unaff_s1,unaff_s1,*(undefined1 *)&unaff_s3->p)" ( identifier , identifier , (pointer_expression "*(undefined1 *)&unaff_s3->p" * (cast_expression "(undefined1 *)&unaff_s3->p" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s3->p" & (field_expression "unaff_s3->p" identifier -> field_identifier)))) ))) ;)) (expression_statement "iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0);" (assignment_expression "iVar7 = (*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0)" identifier = (call_expression "(*(code *)(&DAT_000042e0 + iVar5))(p_Var15,unaff_s2,unaff_s1,unaff_s0)" (parenthesized_expression "(*(code *)(&DAT_000042e0 + iVar5))" ( (pointer_expression "*(code *)(&DAT_000042e0 + iVar5)" * (cast_expression "(code *)(&DAT_000042e0 + iVar5)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000042e0 + iVar5)" ( (binary_expression "&DAT_000042e0 + iVar5" (pointer_expression "&DAT_000042e0" & identifier) + identifier) )))) )) (argument_list "(p_Var15,unaff_s2,unaff_s1,unaff_s0)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1);" (assignment_expression "unaff_s3 = (mp_factors *)((int)&unaff_s3->p + 1)" identifier = (cast_expression "(mp_factors *)((int)&unaff_s3->p + 1)" ( (type_descriptor "mp_factors *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3->p + 1)" ( (binary_expression "(int)&unaff_s3->p + 1" (cast_expression "(int)&unaff_s3->p" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->p" & (field_expression "unaff_s3->p" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if ((mp_factors *)(iVar12 + 33000) == unaff_s3) {\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }" if (parenthesized_expression "((mp_factors *)(iVar12 + 33000) == unaff_s3)" ( (binary_expression "(mp_factors *)(iVar12 + 33000) == unaff_s3" (cast_expression "(mp_factors *)(iVar12 + 33000)" ( (type_descriptor "mp_factors *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 33000)" ( (binary_expression "iVar12 + 33000" identifier + number_literal) ))) == identifier) )) (compound_statement "{\n            uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);\n            (**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);\n            (**(code **)(puVar22 + 0x24b38))();\n            return;\n          }" { (expression_statement "uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5);" (assignment_expression "uVar8 = (**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5)" identifier = (call_expression "(**(code **)(puVar22 + 0x24c50))(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c50))" ( (pointer_expression "**(code **)(puVar22 + 0x24c50)" * (pointer_expression "*(code **)(puVar22 + 0x24c50)" * (cast_expression "(code **)(puVar22 + 0x24c50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c50)" ( (binary_expression "puVar22 + 0x24c50" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puVar22 + 0x24a04) + 0x4c48,5)" ( number_literal , (binary_expression "*(int *)(puVar22 + 0x24a04) + 0x4c48" (pointer_expression "*(int *)(puVar22 + 0x24a04)" * (cast_expression "(int *)(puVar22 + 0x24a04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x24a04)" ( (binary_expression "puVar22 + 0x24a04" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puVar22 + 0x24c0c))(0,0,uVar8);" (call_expression "(**(code **)(puVar22 + 0x24c0c))(0,0,uVar8)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c0c))" ( (pointer_expression "**(code **)(puVar22 + 0x24c0c)" * (pointer_expression "*(code **)(puVar22 + 0x24c0c)" * (cast_expression "(code **)(puVar22 + 0x24c0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c0c)" ( (binary_expression "puVar22 + 0x24c0c" identifier + number_literal) ))))) )) (argument_list "(0,0,uVar8)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(puVar22 + 0x24b38))();" (call_expression "(**(code **)(puVar22 + 0x24b38))()" (parenthesized_expression "(**(code **)(puVar22 + 0x24b38))" ( (pointer_expression "**(code **)(puVar22 + 0x24b38)" * (pointer_expression "*(code **)(puVar22 + 0x24b38)" * (cast_expression "(code **)(puVar22 + 0x24b38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24b38)" ( (binary_expression "puVar22 + 0x24b38" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) })) (labeled_statement "LAB_000149e4:\n        mp_factor_clear(&mStack_d0);" statement_identifier : (expression_statement "mp_factor_clear(&mStack_d0);" (call_expression "mp_factor_clear(&mStack_d0)" identifier (argument_list "(&mStack_d0)" ( (pointer_expression "&mStack_d0" & identifier) ))) ;)) })) (expression_statement "p_Var13 = unaff_s1;" (assignment_expression "p_Var13 = unaff_s1" identifier = identifier) ;) (expression_statement "in_a2 = unaff_s2;" (assignment_expression "in_a2 = unaff_s2" identifier = identifier) ;) (expression_statement "(**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);" (call_expression "(**(code **)(puVar22 + 0x24c80))(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (parenthesized_expression "(**(code **)(puVar22 + 0x24c80))" ( (pointer_expression "**(code **)(puVar22 + 0x24c80)" * (pointer_expression "*(code **)(puVar22 + 0x24c80)" * (cast_expression "(code **)(puVar22 + 0x24c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c80)" ( (binary_expression "puVar22 + 0x24c80" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" ( identifier , identifier , identifier , identifier ))) ;) })) })) (if_statement "if (p_Stack_94 == (__mpz_struct *)*piVar6) {\n    return;\n  }" if (parenthesized_expression "(p_Stack_94 == (__mpz_struct *)*piVar6)" ( (binary_expression "p_Stack_94 == (__mpz_struct *)*piVar6" identifier == (cast_expression "(__mpz_struct *)*piVar6" ( (type_descriptor "__mpz_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar25 = *(code **)(puVar22 + 0x24c4c);" (assignment_expression "pcVar25 = *(code **)(puVar22 + 0x24c4c)" identifier = (pointer_expression "*(code **)(puVar22 + 0x24c4c)" * (cast_expression "(code **)(puVar22 + 0x24c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x24c4c)" ( (binary_expression "puVar22 + 0x24c4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = mp_factor_using_pollard_rho;" (assignment_expression "pcVar26 = mp_factor_using_pollard_rho" identifier = identifier) ;) (expression_statement "prime = p_Stack_94;" (assignment_expression "prime = p_Stack_94" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(pcVar25 + 0x24930);" (assignment_expression "piVar6 = *(int **)(pcVar25 + 0x24930)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x24930)" * (cast_expression "(int **)(pcVar25 + 0x24930)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24930)" ( (binary_expression "pcVar25 + 0x24930" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar25 + 0x246c0);" (assignment_expression "iVar5 = *(int *)(pcVar25 + 0x246c0)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x246c0)" * (cast_expression "(int *)(pcVar25 + 0x246c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x246c0)" ( (binary_expression "pcVar25 + 0x246c0" identifier + number_literal) ))))) ;) (expression_statement "iStackY_134 = *piVar6;" (assignment_expression "iStackY_134 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "p_StackY_130 = unaff_s0;" (assignment_expression "p_StackY_130 = unaff_s0" identifier = identifier) ;) (expression_statement "p_StackY_12c = unaff_s1;" (assignment_expression "p_StackY_12c = unaff_s1" identifier = identifier) ;) (expression_statement "p_StackY_128 = unaff_s2;" (assignment_expression "p_StackY_128 = unaff_s2" identifier = identifier) ;) (expression_statement "pmStackY_124 = unaff_s3;" (assignment_expression "pmStackY_124 = unaff_s3" identifier = identifier) ;) (expression_statement "p_StackY_120 = p_Var15;" (assignment_expression "p_StackY_120 = p_Var15" identifier = identifier) ;) (expression_statement "p_StackY_11c = unaff_s5;" (assignment_expression "p_StackY_11c = unaff_s5" identifier = identifier) ;) (expression_statement "puStackY_118 = unaff_s6;" (assignment_expression "puStackY_118 = unaff_s6" identifier = identifier) ;) (expression_statement "p_StackY_114 = unaff_s7;" (assignment_expression "p_StackY_114 = unaff_s7" identifier = identifier) ;) (expression_statement "puStackY_110 = puVar24;" (assignment_expression "puStackY_110 = puVar24" identifier = identifier) ;) (expression_statement "pcStackY_10c = pcVar26;" (assignment_expression "pcStackY_10c = pcVar26" identifier = identifier) ;) (if_statement "if (*(char *)(iVar5 + -0x6c28) != '\0') {\n    (**(code **)(pcVar25 + 0x24824))\n              (**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13);\n  }" if (parenthesized_expression "(*(char *)(iVar5 + -0x6c28) != '\0')" ( (binary_expression "*(char *)(iVar5 + -0x6c28) != '\0'" (pointer_expression "*(char *)(iVar5 + -0x6c28)" * (cast_expression "(char *)(iVar5 + -0x6c28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x6c28)" ( (binary_expression "iVar5 + -0x6c28" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (**(code **)(pcVar25 + 0x24824))\n              (**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13);\n  }" { (expression_statement "(**(code **)(pcVar25 + 0x24824))\n              (**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13);" (call_expression "(**(code **)(pcVar25 + 0x24824))\n              (**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24824))" ( (pointer_expression "**(code **)(pcVar25 + 0x24824)" * (pointer_expression "*(code **)(pcVar25 + 0x24824)" * (cast_expression "(code **)(pcVar25 + 0x24824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24824)" ( (binary_expression "pcVar25 + 0x24824" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(pcVar25 + 0x24958),1,*(int *)(pcVar25 + 0x246d0) + 0x4c7c,p_Var13)" ( (pointer_expression "**(undefined4 **)(pcVar25 + 0x24958)" * (pointer_expression "*(undefined4 **)(pcVar25 + 0x24958)" * (cast_expression "(undefined4 **)(pcVar25 + 0x24958)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24958)" ( (binary_expression "pcVar25 + 0x24958" identifier + number_literal) ))))) , number_literal , (binary_expression "*(int *)(pcVar25 + 0x246d0) + 0x4c7c" (pointer_expression "*(int *)(pcVar25 + 0x246d0)" * (cast_expression "(int *)(pcVar25 + 0x246d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x246d0)" ( (binary_expression "pcVar25 + 0x246d0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "puVar19 = auStackY_140;" (assignment_expression "puVar19 = auStackY_140" identifier = identifier) ;) (expression_statement "p_Var15 = &_StackY_14c;" (assignment_expression "p_Var15 = &_StackY_14c" identifier = (pointer_expression "&_StackY_14c" & identifier)) ;) (expression_statement "(**(code **)(pcVar25 + 0x24910))(p_Var15,puVar19,0);" (call_expression "(**(code **)(pcVar25 + 0x24910))(p_Var15,puVar19,0)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24910))" ( (pointer_expression "**(code **)(pcVar25 + 0x24910)" * (pointer_expression "*(code **)(pcVar25 + 0x24910)" * (cast_expression "(code **)(pcVar25 + 0x24910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24910)" ( (binary_expression "pcVar25 + 0x24910" identifier + number_literal) ))))) )) (argument_list "(p_Var15,puVar19,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar16 = auStackY_170;" (assignment_expression "puVar16 = auStackY_170" identifier = identifier) ;) (expression_statement "pcVar18 = (code *)auStackY_158;" (assignment_expression "pcVar18 = (code *)auStackY_158" identifier = (cast_expression "(code *)auStackY_158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(pcVar25 + 0x248bc))(auStackY_164,2);" (call_expression "(**(code **)(pcVar25 + 0x248bc))(auStackY_164,2)" (parenthesized_expression "(**(code **)(pcVar25 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar25 + 0x248bc)" * (pointer_expression "*(code **)(pcVar25 + 0x248bc)" * (cast_expression "(code **)(pcVar25 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x248bc)" ( (binary_expression "pcVar25 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(auStackY_164,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x248bc))(auStackY_17c,2);" (call_expression "(**(code **)(pcVar25 + 0x248bc))(auStackY_17c,2)" (parenthesized_expression "(**(code **)(pcVar25 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar25 + 0x248bc)" * (pointer_expression "*(code **)(pcVar25 + 0x248bc)" * (cast_expression "(code **)(pcVar25 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x248bc)" ( (binary_expression "pcVar25 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(auStackY_17c,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x248bc))(puVar16,2);" (call_expression "(**(code **)(pcVar25 + 0x248bc))(puVar16,2)" (parenthesized_expression "(**(code **)(pcVar25 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar25 + 0x248bc)" * (pointer_expression "*(code **)(pcVar25 + 0x248bc)" * (cast_expression "(code **)(pcVar25 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x248bc)" ( (binary_expression "pcVar25 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(puVar16,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x2485c))(pcVar18,1);" (call_expression "(**(code **)(pcVar25 + 0x2485c))(pcVar18,1)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2485c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2485c)" * (pointer_expression "*(code **)(pcVar25 + 0x2485c)" * (cast_expression "(code **)(pcVar25 + 0x2485c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2485c)" ( (binary_expression "pcVar25 + 0x2485c" identifier + number_literal) ))))) )) (argument_list "(pcVar18,1)" ( identifier , number_literal ))) ;) (expression_statement "uStackY_1a8 = 1;" (assignment_expression "uStackY_1a8 = 1" identifier = number_literal) ;) (expression_statement "uStackY_1b0 = 0;" (assignment_expression "uStackY_1b0 = 0" identifier = number_literal) ;) (expression_statement "pcVar26 = (code *)(&DAT_00004704 + *(int *)(pcVar25 + 0x246cc));" (assignment_expression "pcVar26 = (code *)(&DAT_00004704 + *(int *)(pcVar25 + 0x246cc))" identifier = (cast_expression "(code *)(&DAT_00004704 + *(int *)(pcVar25 + 0x246cc))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00004704 + *(int *)(pcVar25 + 0x246cc))" ( (binary_expression "&DAT_00004704 + *(int *)(pcVar25 + 0x246cc)" (pointer_expression "&DAT_00004704" & identifier) + (pointer_expression "*(int *)(pcVar25 + 0x246cc)" * (cast_expression "(int *)(pcVar25 + 0x246cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x246cc)" ( (binary_expression "pcVar25 + 0x246cc" identifier + number_literal) ))))) )))) ;) (expression_statement "iVar12 = *(int *)(pcVar25 + 0x246cc);" (assignment_expression "iVar12 = *(int *)(pcVar25 + 0x246cc)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x246cc)" * (cast_expression "(int *)(pcVar25 + 0x246cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x246cc)" ( (binary_expression "pcVar25 + 0x246cc" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar25 + 0x246d0);" (assignment_expression "iVar7 = *(int *)(pcVar25 + 0x246d0)" identifier = (pointer_expression "*(int *)(pcVar25 + 0x246d0)" * (cast_expression "(int *)(pcVar25 + 0x246d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar25 + 0x246d0)" ( (binary_expression "pcVar25 + 0x246d0" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);" (assignment_expression "iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1)" identifier = (call_expression "(**(code **)(pcVar25 + 0x24820))(prime,1)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24820))" ( (pointer_expression "**(code **)(pcVar25 + 0x24820)" * (pointer_expression "*(code **)(pcVar25 + 0x24820)" * (cast_expression "(code **)(pcVar25 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24820)" ( (binary_expression "pcVar25 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(prime,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = 1;" (assignment_expression "uVar27 = 1" identifier = number_literal) ;) (if_statement "if (iVar9 == 0) {\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    } while (iVar9 != 0);\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }" { (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2494c);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2494c)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2494c)" * (cast_expression "(code **)(pcVar25 + 0x2494c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2494c)" ( (binary_expression "pcVar25 + 0x2494c" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    } while (iVar9 != 0);\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }" else (compound_statement "{\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    } while (iVar9 != 0);\n    pcVar26 = *(code **)(pcVar25 + 0x2494c);\n  }" { (labeled_statement "LAB_00014bb0:\n    do {\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    } while (iVar9 != 0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    } while (iVar9 != 0);" do (compound_statement "{\n      while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);\n      (**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);\n      iVar9 = (*pcVar26)(p_Var15);\n      if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }\n      if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }\n      (**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);\n      (**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);\n      (**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);\n      iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);\n      uVar27 = uVar10;\n    }" { (while_statement "while( true ) {\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar10 = uVar27;\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);\n        (**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);\n        (**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);\n        if ((uVar10 & 0x1f) == 1) break;\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }\n      }" { (expression_statement "uVar10 = uVar27;" (assignment_expression "uVar10 = uVar27" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c);" (call_expression "(**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_17c,auStackY_17c)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24908))" ( (pointer_expression "**(code **)(pcVar25 + 0x24908)" * (pointer_expression "*(code **)(pcVar25 + 0x24908)" * (cast_expression "(code **)(pcVar25 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24908)" ( (binary_expression "pcVar25 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(p_Var15,auStackY_17c,auStackY_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);" (call_expression "(**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24864))" ( (pointer_expression "**(code **)(pcVar25 + 0x24864)" * (pointer_expression "*(code **)(pcVar25 + 0x24864)" * (cast_expression "(code **)(pcVar25 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24864)" ( (binary_expression "pcVar25 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStackY_17c,p_Var15,prime)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);" (call_expression "(**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13)" (parenthesized_expression "(**(code **)(pcVar25 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar25 + 0x248b4)" * (pointer_expression "*(code **)(pcVar25 + 0x248b4)" * (cast_expression "(code **)(pcVar25 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x248b4)" ( (binary_expression "pcVar25 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStackY_17c,auStackY_17c,p_Var13)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c);" (call_expression "(**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_17c)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24928))" ( (pointer_expression "**(code **)(pcVar25 + 0x24928)" * (pointer_expression "*(code **)(pcVar25 + 0x24928)" * (cast_expression "(code **)(pcVar25 + 0x24928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24928)" ( (binary_expression "pcVar25 + 0x24928" identifier + number_literal) ))))) )) (argument_list "(p_Var15,puVar16,auStackY_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15);" (call_expression "(**(code **)(pcVar25 + 0x24908))(puVar19,pcVar18,p_Var15)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24908))" ( (pointer_expression "**(code **)(pcVar25 + 0x24908)" * (pointer_expression "*(code **)(pcVar25 + 0x24908)" * (cast_expression "(code **)(pcVar25 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24908)" ( (binary_expression "pcVar25 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(puVar19,pcVar18,p_Var15)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime);" (call_expression "(**(code **)(pcVar25 + 0x24864))(pcVar18,puVar19,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24864))" ( (pointer_expression "**(code **)(pcVar25 + 0x24864)" * (pointer_expression "*(code **)(pcVar25 + 0x24864)" * (cast_expression "(code **)(pcVar25 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24864)" ( (binary_expression "pcVar25 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(pcVar18,puVar19,prime)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar10 & 0x1f) == 1) break;" if (parenthesized_expression "((uVar10 & 0x1f) == 1)" ( (binary_expression "(uVar10 & 0x1f) == 1" (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar27 = uVar10 - 1;" (assignment_expression "uVar27 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);" (assignment_expression "uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1)" identifier = (binary_expression "(uint)(uVar27 < uVar10) + (uVar17 - 1)" (call_expression "(uint)(uVar27 < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar27 < uVar10)" ( (binary_expression "uVar27 < uVar10" identifier < identifier) ))) + (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar17 == 0 && uVar27 == 0) {\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }" if (parenthesized_expression "(uVar17 == 0 && uVar27 == 0)" ( (binary_expression "uVar17 == 0 && uVar27 == 0" (binary_expression "uVar17 == 0" identifier == number_literal) && (binary_expression "uVar27 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_00014cb0:\n          uVar10 = uVar10 - 1;\n          (**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);\n          if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n          uVar17 = uStackY_1b0;\n          uVar27 = uStackY_1a8;\n          uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;\n          uStackY_1a8 = uStackY_1a8 << 1;\n        }" { (labeled_statement "LAB_00014cb0:\n          uVar10 = uVar10 - 1;" statement_identifier : (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;)) (expression_statement "(**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c);" (call_expression "(**(code **)(pcVar25 + 0x2490c))(puVar16,auStackY_17c)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2490c)" * (pointer_expression "*(code **)(pcVar25 + 0x2490c)" * (cast_expression "(code **)(pcVar25 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2490c)" ( (binary_expression "pcVar25 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(puVar16,auStackY_17c)" ( identifier , identifier ))) ;) (if_statement "if (uStackY_1b0 != 0 || uStackY_1a8 != 0) {\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }" if (parenthesized_expression "(uStackY_1b0 != 0 || uStackY_1a8 != 0)" ( (binary_expression "uStackY_1b0 != 0 || uStackY_1a8 != 0" (binary_expression "uStackY_1b0 != 0" identifier != number_literal) || (binary_expression "uStackY_1a8 != 0" identifier != number_literal)) )) (compound_statement "{\n            do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }" { (do_statement "do {\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            } while( true );" do (compound_statement "{\n              pcVar23 = *(code **)(pcVar25 + 0x24908);\n              uVar27 = uVar10;\n              while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }\n            }" { (expression_statement "pcVar23 = *(code **)(pcVar25 + 0x24908);" (assignment_expression "pcVar23 = *(code **)(pcVar25 + 0x24908)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x24908)" * (cast_expression "(code **)(pcVar25 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24908)" ( (binary_expression "pcVar25 + 0x24908" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = uVar10;" (assignment_expression "uVar27 = uVar10" identifier = identifier) ;) (while_statement "while( true ) {\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                (*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);\n                (**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);\n                (**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);\n                uVar10 = uVar27 + 1;\n                uVar17 = (uVar10 < uVar27) + uVar17;\n                if (uVar17 != uStackY_1b0) break;\n                pcVar23 = *(code **)(pcVar25 + 0x24908);\n                uVar27 = uVar10;\n                if (uVar10 == uStackY_1a8) goto LAB_00014d60;\n              }" { (expression_statement "(*pcVar23)(p_Var15,auStackY_17c,auStackY_17c);" (call_expression "(*pcVar23)(p_Var15,auStackY_17c,auStackY_17c)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(p_Var15,auStackY_17c,auStackY_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime);" (call_expression "(**(code **)(pcVar25 + 0x24864))(auStackY_17c,p_Var15,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24864))" ( (pointer_expression "**(code **)(pcVar25 + 0x24864)" * (pointer_expression "*(code **)(pcVar25 + 0x24864)" * (cast_expression "(code **)(pcVar25 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24864)" ( (binary_expression "pcVar25 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStackY_17c,p_Var15,prime)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13);" (call_expression "(**(code **)(pcVar25 + 0x248b4))(auStackY_17c,auStackY_17c,p_Var13)" (parenthesized_expression "(**(code **)(pcVar25 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar25 + 0x248b4)" * (pointer_expression "*(code **)(pcVar25 + 0x248b4)" * (cast_expression "(code **)(pcVar25 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x248b4)" ( (binary_expression "pcVar25 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStackY_17c,auStackY_17c,p_Var13)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = uVar27 + 1;" (assignment_expression "uVar10 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uVar10 < uVar27) + uVar17;" (assignment_expression "uVar17 = (uVar10 < uVar27) + uVar17" identifier = (binary_expression "(uVar10 < uVar27) + uVar17" (parenthesized_expression "(uVar10 < uVar27)" ( (binary_expression "uVar10 < uVar27" identifier < identifier) )) + identifier)) ;) (if_statement "if (uVar17 != uStackY_1b0) break;" if (parenthesized_expression "(uVar17 != uStackY_1b0)" ( (binary_expression "uVar17 != uStackY_1b0" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "pcVar23 = *(code **)(pcVar25 + 0x24908);" (assignment_expression "pcVar23 = *(code **)(pcVar25 + 0x24908)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x24908)" * (cast_expression "(code **)(pcVar25 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24908)" ( (binary_expression "pcVar25 + 0x24908" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = uVar10;" (assignment_expression "uVar27 = uVar10" identifier = identifier) ;) (if_statement "if (uVar10 == uStackY_1a8) goto LAB_00014d60;" if (parenthesized_expression "(uVar10 == uStackY_1a8)" ( (binary_expression "uVar10 == uStackY_1a8" identifier == identifier) )) (goto_statement "goto LAB_00014d60;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00014d60:\n          (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);" statement_identifier : (expression_statement "(**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);" (call_expression "(**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2490c)" * (pointer_expression "*(code **)(pcVar25 + 0x2490c)" * (cast_expression "(code **)(pcVar25 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2490c)" ( (binary_expression "pcVar25 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(auStackY_164,auStackY_17c)" ( identifier , identifier ))) ;)) (expression_statement "uVar17 = uStackY_1b0;" (assignment_expression "uVar17 = uStackY_1b0" identifier = identifier) ;) (expression_statement "uVar27 = uStackY_1a8;" (assignment_expression "uVar27 = uStackY_1a8" identifier = identifier) ;) (expression_statement "uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1;" (assignment_expression "uStackY_1b0 = uStackY_1a8 >> 0x1f | uStackY_1b0 << 1" identifier = (binary_expression "uStackY_1a8 >> 0x1f | uStackY_1b0 << 1" (binary_expression "uStackY_1a8 >> 0x1f" identifier >> number_literal) | (binary_expression "uStackY_1b0 << 1" identifier << number_literal))) ;) (expression_statement "uStackY_1a8 = uStackY_1a8 << 1;" (assignment_expression "uStackY_1a8 = uStackY_1a8 << 1" identifier = (binary_expression "uStackY_1a8 << 1" identifier << number_literal)) ;) })) })) (expression_statement "(**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime);" (call_expression "(**(code **)(pcVar25 + 0x24838))(p_Var15,pcVar18,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24838))" ( (pointer_expression "**(code **)(pcVar25 + 0x24838)" * (pointer_expression "*(code **)(pcVar25 + 0x24838)" * (cast_expression "(code **)(pcVar25 + 0x24838)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24838)" ( (binary_expression "pcVar25 + 0x24838" identifier + number_literal) ))))) )) (argument_list "(p_Var15,pcVar18,prime)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);" (assignment_expression "iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1)" identifier = (call_expression "(**(code **)(pcVar25 + 0x24820))(p_Var15,1)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24820))" ( (pointer_expression "**(code **)(pcVar25 + 0x24820)" * (pointer_expression "*(code **)(pcVar25 + 0x24820)" * (cast_expression "(code **)(pcVar25 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24820)" ( (binary_expression "pcVar25 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(p_Var15,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar9 == 0) {\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);\n        uVar27 = uVar10 - 1;\n        uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);\n        if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }" { (expression_statement "(**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c);" (call_expression "(**(code **)(pcVar25 + 0x2490c))(auStackY_164,auStackY_17c)" (parenthesized_expression "(**(code **)(pcVar25 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar25 + 0x2490c)" * (pointer_expression "*(code **)(pcVar25 + 0x2490c)" * (cast_expression "(code **)(pcVar25 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2490c)" ( (binary_expression "pcVar25 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(auStackY_164,auStackY_17c)" ( identifier , identifier ))) ;) (expression_statement "uVar27 = uVar10 - 1;" (assignment_expression "uVar27 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1);" (assignment_expression "uVar17 = (uint)(uVar27 < uVar10) + (uVar17 - 1)" identifier = (binary_expression "(uint)(uVar27 < uVar10) + (uVar17 - 1)" (call_expression "(uint)(uVar27 < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar27 < uVar10)" ( (binary_expression "uVar27 < uVar10" identifier < identifier) ))) + (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar17 == 0 && uVar27 == 0) goto LAB_00014cb0;" if (parenthesized_expression "(uVar17 == 0 && uVar27 == 0)" ( (binary_expression "uVar17 == 0 && uVar27 == 0" (binary_expression "uVar17 == 0" identifier == number_literal) && (binary_expression "uVar27 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00014cb0;" goto statement_identifier ;)) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;) })) (do_statement "do {\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      } while (iVar9 == 0);" do (compound_statement "{\n        (**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);\n        (**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);\n        (**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);\n        (**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);\n        (**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);\n        iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);\n      }" { (expression_statement "(**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164);" (call_expression "(**(code **)(pcVar25 + 0x24908))(p_Var15,auStackY_164,auStackY_164)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24908))" ( (pointer_expression "**(code **)(pcVar25 + 0x24908)" * (pointer_expression "*(code **)(pcVar25 + 0x24908)" * (cast_expression "(code **)(pcVar25 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24908)" ( (binary_expression "pcVar25 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(p_Var15,auStackY_164,auStackY_164)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime);" (call_expression "(**(code **)(pcVar25 + 0x24864))(auStackY_164,p_Var15,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24864))" ( (pointer_expression "**(code **)(pcVar25 + 0x24864)" * (pointer_expression "*(code **)(pcVar25 + 0x24864)" * (cast_expression "(code **)(pcVar25 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24864)" ( (binary_expression "pcVar25 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStackY_164,p_Var15,prime)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13);" (call_expression "(**(code **)(pcVar25 + 0x248b4))(auStackY_164,auStackY_164,p_Var13)" (parenthesized_expression "(**(code **)(pcVar25 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar25 + 0x248b4)" * (pointer_expression "*(code **)(pcVar25 + 0x248b4)" * (cast_expression "(code **)(pcVar25 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x248b4)" ( (binary_expression "pcVar25 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStackY_164,auStackY_164,p_Var13)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164);" (call_expression "(**(code **)(pcVar25 + 0x24928))(p_Var15,puVar16,auStackY_164)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24928))" ( (pointer_expression "**(code **)(pcVar25 + 0x24928)" * (pointer_expression "*(code **)(pcVar25 + 0x24928)" * (cast_expression "(code **)(pcVar25 + 0x24928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24928)" ( (binary_expression "pcVar25 + 0x24928" identifier + number_literal) ))))) )) (argument_list "(p_Var15,puVar16,auStackY_164)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime);" (call_expression "(**(code **)(pcVar25 + 0x24838))(p_Var15,p_Var15,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24838))" ( (pointer_expression "**(code **)(pcVar25 + 0x24838)" * (pointer_expression "*(code **)(pcVar25 + 0x24838)" * (cast_expression "(code **)(pcVar25 + 0x24838)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24838)" ( (binary_expression "pcVar25 + 0x24838" identifier + number_literal) ))))) )) (argument_list "(p_Var15,p_Var15,prime)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1);" (assignment_expression "iVar9 = (**(code **)(pcVar25 + 0x24820))(p_Var15,1)" identifier = (call_expression "(**(code **)(pcVar25 + 0x24820))(p_Var15,1)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24820))" ( (pointer_expression "**(code **)(pcVar25 + 0x24820)" * (pointer_expression "*(code **)(pcVar25 + 0x24820)" * (cast_expression "(code **)(pcVar25 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24820)" ( (binary_expression "pcVar25 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(p_Var15,1)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) ;) (expression_statement "(**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15);" (call_expression "(**(code **)(pcVar25 + 0x24914))(prime,prime,p_Var15)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24914))" ( (pointer_expression "**(code **)(pcVar25 + 0x24914)" * (pointer_expression "*(code **)(pcVar25 + 0x24914)" * (cast_expression "(code **)(pcVar25 + 0x24914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24914)" ( (binary_expression "pcVar25 + 0x24914" identifier + number_literal) ))))) )) (argument_list "(prime,prime,p_Var15)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (*pcVar26)(p_Var15);" (assignment_expression "iVar9 = (*pcVar26)(p_Var15)" identifier = (call_expression "(*pcVar26)(p_Var15)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(p_Var15)" ( identifier )))) ;) (if_statement "if (iVar9 == 0) {\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }\n      else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }\n        mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);\n        iVar9 = (*pcVar26)(prime);\n      }" { (if_statement "if (*(char *)(iVar5 + -0x6c28) != '\0') {\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }" if (parenthesized_expression "(*(char *)(iVar5 + -0x6c28) != '\0')" ( (binary_expression "*(char *)(iVar5 + -0x6c28) != '\0'" (pointer_expression "*(char *)(iVar5 + -0x6c28)" * (cast_expression "(char *)(iVar5 + -0x6c28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x6c28)" ( (binary_expression "iVar5 + -0x6c28" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));\n        }" { (expression_statement "(**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958));" (call_expression "(**(code **)(pcVar25 + 0x248f0))\n                    (iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958))" (parenthesized_expression "(**(code **)(pcVar25 + 0x248f0))" ( (pointer_expression "**(code **)(pcVar25 + 0x248f0)" * (pointer_expression "*(code **)(pcVar25 + 0x248f0)" * (cast_expression "(code **)(pcVar25 + 0x248f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x248f0)" ( (binary_expression "pcVar25 + 0x248f0" identifier + number_literal) ))))) )) (argument_list "(iVar7 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar25 + 0x24958))" ( (binary_expression "iVar7 + 0x4c94" identifier + number_literal) , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar25 + 0x24958)" * (pointer_expression "*(undefined4 **)(pcVar25 + 0x24958)" * (cast_expression "(undefined4 **)(pcVar25 + 0x24958)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24958)" ( (binary_expression "pcVar25 + 0x24958" identifier + number_literal) ))))) ))) ;) })) (expression_statement "mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2);" (call_expression "mp_factor_using_pollard_rho\n                  (p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2)" identifier (argument_list "(p_Var15,(ulong)((int)&p_Var13->_mp_alloc + 1),(mp_factors *)in_a2)" ( identifier , (call_expression "(ulong)((int)&p_Var13->_mp_alloc + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)&p_Var13->_mp_alloc + 1)" ( (binary_expression "(int)&p_Var13->_mp_alloc + 1" (cast_expression "(int)&p_Var13->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var13->_mp_alloc" & (field_expression "p_Var13->_mp_alloc" identifier -> field_identifier))) + number_literal) ))) , (cast_expression "(mp_factors *)in_a2" ( (type_descriptor "mp_factors *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar9 = (*pcVar26)(prime);" (assignment_expression "iVar9 = (*pcVar26)(prime)" identifier = (call_expression "(*pcVar26)(prime)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(prime)" ( identifier )))) ;) }) (else_clause "else {\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }" else (compound_statement "{\n        (*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);\n        iVar9 = (*pcVar26)(prime);\n      }" { (expression_statement "(*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15);" (call_expression "(*(code *)(&DAT_0000365c + iVar12))(in_a2,p_Var15)" (parenthesized_expression "(*(code *)(&DAT_0000365c + iVar12))" ( (pointer_expression "*(code *)(&DAT_0000365c + iVar12)" * (cast_expression "(code *)(&DAT_0000365c + iVar12)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0000365c + iVar12)" ( (binary_expression "&DAT_0000365c + iVar12" (pointer_expression "&DAT_0000365c" & identifier) + identifier) )))) )) (argument_list "(in_a2,p_Var15)" ( identifier , identifier ))) ;) (expression_statement "iVar9 = (*pcVar26)(prime);" (assignment_expression "iVar9 = (*pcVar26)(prime)" identifier = (call_expression "(*pcVar26)(prime)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(prime)" ( identifier )))) ;) }))) (if_statement "if (iVar9 != 0) {\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        mp_factor_insert((mp_factors *)in_a2,prime);\n        break;\n      }" { (expression_statement "mp_factor_insert((mp_factors *)in_a2,prime);" (call_expression "mp_factor_insert((mp_factors *)in_a2,prime)" identifier (argument_list "((mp_factors *)in_a2,prime)" ( (cast_expression "(mp_factors *)in_a2" ( (type_descriptor "mp_factors *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "(**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime);" (call_expression "(**(code **)(pcVar25 + 0x24864))(auStackY_17c,auStackY_17c,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24864))" ( (pointer_expression "**(code **)(pcVar25 + 0x24864)" * (pointer_expression "*(code **)(pcVar25 + 0x24864)" * (cast_expression "(code **)(pcVar25 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24864)" ( (binary_expression "pcVar25 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStackY_17c,auStackY_17c,prime)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime);" (call_expression "(**(code **)(pcVar25 + 0x24864))(puVar16,puVar16,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24864))" ( (pointer_expression "**(code **)(pcVar25 + 0x24864)" * (pointer_expression "*(code **)(pcVar25 + 0x24864)" * (cast_expression "(code **)(pcVar25 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24864)" ( (binary_expression "pcVar25 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(puVar16,puVar16,prime)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime);" (call_expression "(**(code **)(pcVar25 + 0x24864))(auStackY_164,auStackY_164,prime)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24864))" ( (pointer_expression "**(code **)(pcVar25 + 0x24864)" * (pointer_expression "*(code **)(pcVar25 + 0x24864)" * (cast_expression "(code **)(pcVar25 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24864)" ( (binary_expression "pcVar25 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStackY_164,auStackY_164,prime)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1);" (assignment_expression "iVar9 = (**(code **)(pcVar25 + 0x24820))(prime,1)" identifier = (call_expression "(**(code **)(pcVar25 + 0x24820))(prime,1)" (parenthesized_expression "(**(code **)(pcVar25 + 0x24820))" ( (pointer_expression "**(code **)(pcVar25 + 0x24820)" * (pointer_expression "*(code **)(pcVar25 + 0x24820)" * (cast_expression "(code **)(pcVar25 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24820)" ( (binary_expression "pcVar25 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(prime,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar27 = uVar10;" (assignment_expression "uVar27 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;)) (expression_statement "pcVar26 = *(code **)(pcVar25 + 0x2494c);" (assignment_expression "pcVar26 = *(code **)(pcVar25 + 0x2494c)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x2494c)" * (cast_expression "(code **)(pcVar25 + 0x2494c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x2494c)" ( (binary_expression "pcVar25 + 0x2494c" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iStackY_134 == *piVar6) {\n    return;\n  }" if (parenthesized_expression "(iStackY_134 == *piVar6)" ( (binary_expression "iStackY_134 == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar25 + 0x24918))();" (call_expression "(**(code **)(pcVar25 + 0x24918))()" (parenthesized_expression "(**(code **)(pcVar25 + 0x24918))" ( (pointer_expression "**(code **)(pcVar25 + 0x24918)" * (pointer_expression "*(code **)(pcVar25 + 0x24918)" * (cast_expression "(code **)(pcVar25 + 0x24918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x24918)" ( (binary_expression "pcVar25 + 0x24918" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar25 = pcVar25 + 0x2c698;" (assignment_expression "pcVar25 = pcVar25 + 0x2c698" identifier = (binary_expression "pcVar25 + 0x2c698" identifier + number_literal)) ;) (expression_statement "pcVar26 = pcVar18;" (assignment_expression "pcVar26 = pcVar18" identifier = identifier) ;) (expression_statement "puVar14 = puVar19;" (assignment_expression "puVar14 = puVar19" identifier = identifier) ;) (if_statement "if (((uint)puVar16 & 1) == 0) goto LAB_000152f0;" if (parenthesized_expression "(((uint)puVar16 & 1) == 0)" ( (binary_expression "((uint)puVar16 & 1) == 0" (parenthesized_expression "((uint)puVar16 & 1)" ( (binary_expression "(uint)puVar16 & 1" (cast_expression "(uint)puVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000152f0;" goto statement_identifier ;)) (do_statement "do {\n    uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n    puStackY_1bc = puVar19;\n    do {\n      while( true ) {\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);\n      uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);\n      puVar19 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n      puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));\n      uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n      uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n      lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n      puVar19 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar20 = puVar19 + (int)lVar3;\n      uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n      puStackY_1bc = puVar21 + -(int)puVar20;\n      pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));\n    } while ((uVar17 <= uVar27) &&\n            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))))\n    ;\n    puVar19 = puStackY_1bc + (int)auStackY_164;\n    pcVar18 = pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc);\n  } while( true );" do (compound_statement "{\n    uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n    puStackY_1bc = puVar19;\n    do {\n      while( true ) {\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);\n      uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);\n      puVar19 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n      puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));\n      uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n      uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n      lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n      puVar19 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar20 = puVar19 + (int)lVar3;\n      uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n      puStackY_1bc = puVar21 + -(int)puVar20;\n      pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));\n    } while ((uVar17 <= uVar27) &&\n            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))))\n    ;\n    puVar19 = puStackY_1bc + (int)auStackY_164;\n    pcVar18 = pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc);\n  }" { (expression_statement "uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);" (assignment_expression "uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14)" identifier = (binary_expression "ZEXT48(pcVar26) * ZEXT48(puVar14)" (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier ))))) ;) (expression_statement "puStackY_1bc = puVar19;" (assignment_expression "puStackY_1bc = puVar19" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);\n      uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);\n      puVar19 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n      puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));\n      uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n      uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n      lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n      puVar19 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar20 = puVar19 + (int)lVar3;\n      uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n      puStackY_1bc = puVar21 + -(int)puVar20;\n      pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));\n    } while ((uVar17 <= uVar27) &&\n            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))))\n    ;" do (compound_statement "{\n      while( true ) {\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);\n      uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);\n      puVar19 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n      puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));\n      uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n      uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n      lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n      puVar19 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar20 = puVar19 + (int)lVar3;\n      uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n      puStackY_1bc = puVar21 + -(int)puVar20;\n      pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));\n    }" { (while_statement "while( true ) {\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);\n        uVar17 = uVar27 + (uint)uVar1 * 2;\n        puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;\n        puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));\n        uVar27 = (uint)(puVar21 < puVar19) + iVar5;\n        uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);\n        lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);\n        puVar19 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar20 = puVar19 + (int)lVar3;\n        uVar17 = (uint)(puVar20 < puVar19) + iVar5;\n        puVar19 = puVar21 + -(int)puVar20;\n        pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));\n        if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }\n        uVar17 = (uint)puVar16 >> 1;\n        puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);\n        p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);\n        pcVar25 = pcVar18;\n        if ((uVar17 & 1) != 0) break;\nLAB_000152f0:\n        pcVar18 = pcVar25;\n        uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);\n        if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }\n      }" { (expression_statement "uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20);" (assignment_expression "uVar27 = (uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20)" identifier = (call_expression "(uint)(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20)" ( (binary_expression "ZEXT48(puVar14) * ZEXT48(puVar14) >> 0x20" (binary_expression "ZEXT48(puVar14) * ZEXT48(puVar14)" (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20);" (assignment_expression "iVar5 = (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20)" identifier = (cast_expression "(int)(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20)" ( (binary_expression "ZEXT48(pcVar26) * ZEXT48(pcVar26) >> 0x20" (binary_expression "ZEXT48(pcVar26) * ZEXT48(pcVar26)" (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) * (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "uVar17 = uVar27 + (uint)uVar1 * 2;" (assignment_expression "uVar17 = uVar27 + (uint)uVar1 * 2" identifier = (binary_expression "uVar27 + (uint)uVar1 * 2" identifier + (binary_expression "(uint)uVar1 * 2" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));" (assignment_expression "puVar19 = (undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" identifier = (cast_expression "(undefined1 *)\n                  ((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" ( (binary_expression "(uint)(uVar17 < uVar27) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1)" (call_expression "(uint)(uVar17 < uVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < uVar27)" ( (binary_expression "uVar17 < uVar27" identifier < identifier) ))) + (parenthesized_expression "((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1)" ( (binary_expression "(uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1" (binary_expression "(uint)uVar1 >> 0x1f" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)(uVar1 >> 0x20) << 1" (cast_expression "(int)(uVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))) << number_literal)) ))) )))) ;) (if_statement "if (CONCAT44(puVar19,uVar17) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }" if (parenthesized_expression "(CONCAT44(puVar19,uVar17) < uVar1)" ( (binary_expression "CONCAT44(puVar19,uVar17) < uVar1" (call_expression "CONCAT44(puVar19,uVar17)" identifier (argument_list "(puVar19,uVar17)" ( identifier , identifier ))) < identifier) )) (compound_statement "{\n          iVar5 = iVar5 + 1;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;" (assignment_expression "uVar1 = (ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4" identifier = (binary_expression "(ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4" (parenthesized_expression "(ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff)" ( (binary_expression "ZEXT48(puVar14) * ZEXT48(puVar14) & 0xffffffff" (binary_expression "ZEXT48(puVar14) * ZEXT48(puVar14)" (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) & number_literal) )) * (cast_expression "(ulonglong)uStackY_1c4" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26));" (assignment_expression "puVar21 = puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26))" identifier = (binary_expression "puVar19 + (int)(ZEXT48(pcVar26) * ZEXT48(pcVar26))" identifier + (cast_expression "(int)(ZEXT48(pcVar26) * ZEXT48(pcVar26))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar26) * ZEXT48(pcVar26))" ( (binary_expression "ZEXT48(pcVar26) * ZEXT48(pcVar26)" (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) * (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier )))) ))))) ;) (expression_statement "uVar27 = (uint)(puVar21 < puVar19) + iVar5;" (assignment_expression "uVar27 = (uint)(puVar21 < puVar19) + iVar5" identifier = (binary_expression "(uint)(puVar21 < puVar19) + iVar5" (call_expression "(uint)(puVar21 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar21 < puVar19)" ( (binary_expression "puVar21 < puVar19" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20);" (assignment_expression "uVar17 = uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20)" identifier = (binary_expression "uVar17 * uStackY_1c4 + (int)(uVar1 >> 0x20)" (binary_expression "uVar17 * uStackY_1c4" identifier * identifier) + (cast_expression "(int)(uVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164);" (assignment_expression "uVar2 = (ulonglong)uVar17 * ZEXT48(auStackY_164)" identifier = (binary_expression "(ulonglong)uVar17 * ZEXT48(auStackY_164)" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStackY_164)" identifier (argument_list "(auStackY_164)" ( identifier ))))) ;) (expression_statement "lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c);" (assignment_expression "lVar3 = (ulonglong)uVar17 * ZEXT48(auStackY_17c)" identifier = (binary_expression "(ulonglong)uVar17 * ZEXT48(auStackY_17c)" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStackY_17c)" identifier (argument_list "(auStackY_17c)" ( identifier ))))) ;) (expression_statement "iVar5 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);" (assignment_expression "uVar1 = ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20)" identifier = (binary_expression "ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20)" (binary_expression "ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff) + uVar2" (binary_expression "ZEXT48(auStackY_17c) * (uVar1 & 0xffffffff)" (call_expression "ZEXT48(auStackY_17c)" identifier (argument_list "(auStackY_17c)" ( identifier ))) * (parenthesized_expression "(uVar1 & 0xffffffff)" ( (binary_expression "uVar1 & 0xffffffff" identifier & number_literal) ))) + identifier) + (parenthesized_expression "((uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20)" ( (binary_expression "(uVar1 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20" (binary_expression "(uVar1 & 0xffffffff) * ZEXT48(auStackY_164)" (parenthesized_expression "(uVar1 & 0xffffffff)" ( (binary_expression "uVar1 & 0xffffffff" identifier & number_literal) )) * (call_expression "ZEXT48(auStackY_164)" identifier (argument_list "(auStackY_164)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar19 = (undefined1 *)(uVar1 >> 0x20);" (assignment_expression "puVar19 = (undefined1 *)(uVar1 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar1 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }" if (parenthesized_expression "(uVar1 < uVar2)" ( (binary_expression "uVar1 < uVar2" identifier < identifier) )) (compound_statement "{\n          iVar5 = iVar5 + 1;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar20 = puVar19 + (int)lVar3;" (assignment_expression "puVar20 = puVar19 + (int)lVar3" identifier = (binary_expression "puVar19 + (int)lVar3" identifier + (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar17 = (uint)(puVar20 < puVar19) + iVar5;" (assignment_expression "uVar17 = (uint)(puVar20 < puVar19) + iVar5" identifier = (binary_expression "(uint)(puVar20 < puVar19) + iVar5" (call_expression "(uint)(puVar20 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar20 < puVar19)" ( (binary_expression "puVar20 < puVar19" identifier < identifier) ))) + identifier)) ;) (expression_statement "puVar19 = puVar21 + -(int)puVar20;" (assignment_expression "puVar19 = puVar21 + -(int)puVar20" identifier = (binary_expression "puVar21 + -(int)puVar20" identifier + (unary_expression "-(int)puVar20" - (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19));" (assignment_expression "pcVar26 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19))" identifier = (cast_expression "(code *)((uVar27 - uVar17) - (uint)(puVar21 < puVar19))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar27 - uVar17) - (uint)(puVar21 < puVar19))" ( (binary_expression "(uVar27 - uVar17) - (uint)(puVar21 < puVar19)" (parenthesized_expression "(uVar27 - uVar17)" ( (binary_expression "uVar27 - uVar17" identifier - identifier) )) - (call_expression "(uint)(puVar21 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar21 < puVar19)" ( (binary_expression "puVar21 < puVar19" identifier < identifier) )))) )))) ;) (if_statement "if ((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))) {\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }" if (parenthesized_expression "((uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20))))" ( (binary_expression "(uVar27 < uVar17) || ((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))" (parenthesized_expression "(uVar27 < uVar17)" ( (binary_expression "uVar27 < uVar17" identifier < identifier) )) || (parenthesized_expression "((puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)))" ( (parenthesized_expression "(puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20))" ( (comma_expression "puVar14 = puVar19, uVar17 == uVar27 && (puVar21 < puVar20)" (assignment_expression "puVar14 = puVar19" identifier = identifier) , (binary_expression "uVar17 == uVar27 && (puVar21 < puVar20)" (binary_expression "uVar17 == uVar27" identifier == identifier) && (parenthesized_expression "(puVar21 < puVar20)" ( (binary_expression "puVar21 < puVar20" identifier < identifier) )))) )) ))) )) (compound_statement "{\n          puVar14 = puVar19 + (int)auStackY_164;\n          pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);\n        }" { (expression_statement "puVar14 = puVar19 + (int)auStackY_164;" (assignment_expression "puVar14 = puVar19 + (int)auStackY_164" identifier = (binary_expression "puVar19 + (int)auStackY_164" identifier + (cast_expression "(int)auStackY_164" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19);" (assignment_expression "pcVar26 = pcVar26 + (int)auStackY_17c + (puVar14 < puVar19)" identifier = (binary_expression "pcVar26 + (int)auStackY_17c + (puVar14 < puVar19)" (binary_expression "pcVar26 + (int)auStackY_17c" identifier + (cast_expression "(int)auStackY_17c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(puVar14 < puVar19)" ( (binary_expression "puVar14 < puVar19" identifier < identifier) )))) ;) })) (expression_statement "uVar17 = (uint)puVar16 >> 1;" (assignment_expression "uVar17 = (uint)puVar16 >> 1" identifier = (binary_expression "(uint)puVar16 >> 1" (cast_expression "(uint)puVar16" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17);" (assignment_expression "puVar16 = (undefined1 *)((int)p_Var15 << 0x1f | uVar17)" identifier = (cast_expression "(undefined1 *)((int)p_Var15 << 0x1f | uVar17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var15 << 0x1f | uVar17)" ( (binary_expression "(int)p_Var15 << 0x1f | uVar17" (binary_expression "(int)p_Var15 << 0x1f" (cast_expression "(int)p_Var15" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | identifier) )))) ;) (expression_statement "p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1);" (assignment_expression "p_Var15 = (__mpz_struct *)((uint)p_Var15 >> 1)" identifier = (cast_expression "(__mpz_struct *)((uint)p_Var15 >> 1)" ( (type_descriptor "__mpz_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)p_Var15 >> 1)" ( (binary_expression "(uint)p_Var15 >> 1" (cast_expression "(uint)p_Var15" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pcVar25 = pcVar18;" (assignment_expression "pcVar25 = pcVar18" identifier = identifier) ;) (if_statement "if ((uVar17 & 1) != 0) break;" if (parenthesized_expression "((uVar17 & 1) != 0)" ( (binary_expression "(uVar17 & 1) != 0" (parenthesized_expression "(uVar17 & 1)" ( (binary_expression "uVar17 & 1" identifier & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000152f0:\n        pcVar18 = pcVar25;" statement_identifier : (expression_statement "pcVar18 = pcVar25;" (assignment_expression "pcVar18 = pcVar25" identifier = identifier) ;)) (expression_statement "uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14);" (assignment_expression "uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14)" identifier = (binary_expression "ZEXT48(pcVar26) * ZEXT48(puVar14)" (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier ))))) ;) (if_statement "if (p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0) {\n          return;\n        }" if (parenthesized_expression "(p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0)" ( (binary_expression "p_Var15 == (__mpz_struct *)0x0 && puVar16 == (undefined1 *)0x0" (binary_expression "p_Var15 == (__mpz_struct *)0x0" identifier == (cast_expression "(__mpz_struct *)0x0" ( (type_descriptor "__mpz_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "puVar16 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20);" (assignment_expression "iVar5 = (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20)" identifier = (cast_expression "(int)(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20)" ( (binary_expression "ZEXT48(pcVar18) * ZEXT48(pcVar26) >> 0x20" (binary_expression "ZEXT48(pcVar18) * ZEXT48(pcVar26)" (call_expression "ZEXT48(pcVar18)" identifier (argument_list "(pcVar18)" ( identifier ))) * (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20);" (assignment_expression "uVar1 = ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20)" identifier = (binary_expression "ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc) +\n              (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20)" (binary_expression "ZEXT48(pcVar18) * ZEXT48(puVar14) + ZEXT48(pcVar26) * ZEXT48(puStackY_1bc)" (binary_expression "ZEXT48(pcVar18) * ZEXT48(puVar14)" (call_expression "ZEXT48(pcVar18)" identifier (argument_list "(pcVar18)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) + (binary_expression "ZEXT48(pcVar26) * ZEXT48(puStackY_1bc)" (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) * (call_expression "ZEXT48(puStackY_1bc)" identifier (argument_list "(puStackY_1bc)" ( identifier ))))) + (parenthesized_expression "(ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20)" ( (binary_expression "ZEXT48(puStackY_1bc) * ZEXT48(puVar14) >> 0x20" (binary_expression "ZEXT48(puStackY_1bc) * ZEXT48(puVar14)" (call_expression "ZEXT48(puStackY_1bc)" identifier (argument_list "(puStackY_1bc)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar19 = (undefined1 *)(uVar1 >> 0x20);" (assignment_expression "puVar19 = (undefined1 *)(uVar1 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar1 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)) {\n        iVar5 = iVar5 + 1;\n      }" if (parenthesized_expression "(uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14))" ( (binary_expression "uVar1 < ZEXT48(pcVar18) * ZEXT48(puVar14)" identifier < (binary_expression "ZEXT48(pcVar18) * ZEXT48(puVar14)" (call_expression "ZEXT48(pcVar18)" identifier (argument_list "(pcVar18)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier ))))) )) (compound_statement "{\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4;" (assignment_expression "uVar2 = (ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4" identifier = (binary_expression "(ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff) * (ulonglong)uStackY_1c4" (parenthesized_expression "(ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff)" ( (binary_expression "ZEXT48(puStackY_1bc) * ZEXT48(puVar14) & 0xffffffff" (binary_expression "ZEXT48(puStackY_1bc) * ZEXT48(puVar14)" (call_expression "ZEXT48(puStackY_1bc)" identifier (argument_list "(puStackY_1bc)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier )))) & number_literal) )) * (cast_expression "(ulonglong)uStackY_1c4" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26));" (assignment_expression "puVar21 = puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26))" identifier = (binary_expression "puVar19 + (int)(ZEXT48(pcVar18) * ZEXT48(pcVar26))" identifier + (cast_expression "(int)(ZEXT48(pcVar18) * ZEXT48(pcVar26))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar18) * ZEXT48(pcVar26))" ( (binary_expression "ZEXT48(pcVar18) * ZEXT48(pcVar26)" (call_expression "ZEXT48(pcVar18)" identifier (argument_list "(pcVar18)" ( identifier ))) * (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier )))) ))))) ;) (expression_statement "uVar27 = (uint)(puVar21 < puVar19) + iVar5;" (assignment_expression "uVar27 = (uint)(puVar21 < puVar19) + iVar5" identifier = (binary_expression "(uint)(puVar21 < puVar19) + iVar5" (call_expression "(uint)(puVar21 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar21 < puVar19)" ( (binary_expression "puVar21 < puVar19" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20);" (assignment_expression "uVar17 = (int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20)" identifier = (binary_expression "(int)uVar1 * uStackY_1c4 + (int)(uVar2 >> 0x20)" (binary_expression "(int)uVar1 * uStackY_1c4" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) + (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164);" (assignment_expression "uVar1 = (ulonglong)uVar17 * ZEXT48(auStackY_164)" identifier = (binary_expression "(ulonglong)uVar17 * ZEXT48(auStackY_164)" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStackY_164)" identifier (argument_list "(auStackY_164)" ( identifier ))))) ;) (expression_statement "lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17;" (assignment_expression "lVar3 = ZEXT48(auStackY_17c) * (ulonglong)uVar17" identifier = (binary_expression "ZEXT48(auStackY_17c) * (ulonglong)uVar17" (call_expression "ZEXT48(auStackY_17c)" identifier (argument_list "(auStackY_17c)" ( identifier ))) * (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "iVar5 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20);" (assignment_expression "uVar2 = ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20)" identifier = (binary_expression "ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20)" (binary_expression "ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff) + uVar1" (binary_expression "ZEXT48(auStackY_17c) * (uVar2 & 0xffffffff)" (call_expression "ZEXT48(auStackY_17c)" identifier (argument_list "(auStackY_17c)" ( identifier ))) * (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) ))) + identifier) + (parenthesized_expression "((uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20)" ( (binary_expression "(uVar2 & 0xffffffff) * ZEXT48(auStackY_164) >> 0x20" (binary_expression "(uVar2 & 0xffffffff) * ZEXT48(auStackY_164)" (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )) * (call_expression "ZEXT48(auStackY_164)" identifier (argument_list "(auStackY_164)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar19 = (undefined1 *)(uVar2 >> 0x20);" (assignment_expression "puVar19 = (undefined1 *)(uVar2 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar2 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }" if (parenthesized_expression "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) )) (compound_statement "{\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar20 = puVar19 + (int)lVar3;" (assignment_expression "puVar20 = puVar19 + (int)lVar3" identifier = (binary_expression "puVar19 + (int)lVar3" identifier + (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar17 = (uint)(puVar20 < puVar19) + iVar5;" (assignment_expression "uVar17 = (uint)(puVar20 < puVar19) + iVar5" identifier = (binary_expression "(uint)(puVar20 < puVar19) + iVar5" (call_expression "(uint)(puVar20 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar20 < puVar19)" ( (binary_expression "puVar20 < puVar19" identifier < identifier) ))) + identifier)) ;) (expression_statement "puStackY_1bc = puVar21 + -(int)puVar20;" (assignment_expression "puStackY_1bc = puVar21 + -(int)puVar20" identifier = (binary_expression "puVar21 + -(int)puVar20" identifier + (unary_expression "-(int)puVar20" - (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc));" (assignment_expression "pcVar18 = (code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc))" identifier = (cast_expression "(code *)((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc))" ( (binary_expression "(uVar27 - uVar17) - (uint)(puVar21 < puStackY_1bc)" (parenthesized_expression "(uVar27 - uVar17)" ( (binary_expression "uVar27 - uVar17" identifier - identifier) )) - (call_expression "(uint)(puVar21 < puStackY_1bc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar21 < puStackY_1bc)" ( (binary_expression "puVar21 < puStackY_1bc" identifier < identifier) )))) )))) ;) }) while (parenthesized_expression "((uVar17 <= uVar27) &&\n            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))))" ( (binary_expression "(uVar17 <= uVar27) &&\n            ((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21)))" (parenthesized_expression "(uVar17 <= uVar27)" ( (binary_expression "uVar17 <= uVar27" identifier <= identifier) )) && (parenthesized_expression "((uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21)))" ( (parenthesized_expression "(uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21))" ( (comma_expression "uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14), uVar17 != uVar27 || (puVar20 <= puVar21)" (assignment_expression "uVar1 = ZEXT48(pcVar26) * ZEXT48(puVar14)" identifier = (binary_expression "ZEXT48(pcVar26) * ZEXT48(puVar14)" (call_expression "ZEXT48(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) * (call_expression "ZEXT48(puVar14)" identifier (argument_list "(puVar14)" ( identifier ))))) , (binary_expression "uVar17 != uVar27 || (puVar20 <= puVar21)" (binary_expression "uVar17 != uVar27" identifier != identifier) || (parenthesized_expression "(puVar20 <= puVar21)" ( (binary_expression "puVar20 <= puVar21" identifier <= identifier) )))) )) ))) )) ;) (expression_statement "puVar19 = puStackY_1bc + (int)auStackY_164;" (assignment_expression "puVar19 = puStackY_1bc + (int)auStackY_164" identifier = (binary_expression "puStackY_1bc + (int)auStackY_164" identifier + (cast_expression "(int)auStackY_164" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar18 = pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc);" (assignment_expression "pcVar18 = pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc)" identifier = (binary_expression "pcVar18 + (int)auStackY_17c + (puVar19 < puStackY_1bc)" (binary_expression "pcVar18 + (int)auStackY_17c" identifier + (cast_expression "(int)auStackY_17c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(puVar19 < puStackY_1bc)" ( (binary_expression "puVar19 < puStackY_1bc" identifier < identifier) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "code * FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int iVar5;\n  byte *pbVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  code *pcVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  undefined4 *unaff_s0;\n  undefined4 *unaff_s1;\n  undefined4 *unaff_s2;\n  undefined1 *puVar23;\n  undefined4 *unaff_s3;\n  undefined *unaff_s5;\n  undefined *unaff_s6;\n  undefined1 *unaff_s7;\n  undefined *puVar24;\n  code *pcVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  uint uVar29;\n  uint uStack_1c4;\n  undefined1 *puStack_1bc;\n  uint uStack_1b0;\n  uint uStack_1a8;\n  undefined1 auStack_17c [12];\n  undefined1 auStack_170 [12];\n  undefined1 auStack_164 [12];\n  undefined1 auStack_158 [12];\n  undefined1 auStack_14c [12];\n  undefined1 auStack_140 [12];\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  undefined4 *puStack_12c;\n  undefined4 *puStack_128;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined *puStack_11c;\n  undefined *puStack_118;\n  undefined1 *puStack_114;\n  undefined *puStack_110;\n  code *pcStack_10c;\n  undefined *puStack_f8;\n  undefined *puStack_f4;\n  undefined *puStack_f0;\n  code *pcStack_e4;\n  undefined4 *puStack_e0;\n  code *pcStack_dc;\n  int *piStack_d8;\n  int *piStack_d4;\n  int aiStack_d0 [2];\n  undefined *puStack_c8;\n  undefined auStack_c4 [12];\n  undefined4 auStack_b8 [3];\n  undefined4 auStack_ac [3];\n  undefined4 auStack_a0 [3];\n  int iStack_94;\n  undefined4 *puStack_90;\n  undefined4 *puStack_8c;\n  undefined4 *puStack_88;\n  undefined4 *puStack_84;\n  undefined *puStack_80;\n  undefined *puStack_7c;\n  undefined *puStack_78;\n  undefined1 *puStack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  undefined1 auStack_44 [12];\n  undefined1 auStack_38 [12];\n  code *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = param_1[1];\n  param_2[1] = 0;\n  param_2[2] = 0;\n  local_2c = *(code **)puVar4;\n  *param_2 = 0;\n  puVar26 = PTR_DAT_000390f8;\n  puVar13 = param_1;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }\n  if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }\n  pcVar27 = FUN_00014704;\n  puVar24 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  puStack_f0 = puVar24 + 0x2c9cc;\n  piStack_d8 = *(int **)(puVar24 + 0x24c64);\n  puVar15 = (undefined4 *)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar26;\n  iStack_94 = *piStack_d8;\n  puStack_90 = unaff_s0;\n  puStack_8c = unaff_s1;\n  puStack_88 = unaff_s2;\n  puStack_84 = unaff_s3;\n  puStack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  pcStack_6c = pcVar27;\n  iVar5 = (**(code **)(puVar24 + 0x24b54))();\n  if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }\n  pcVar27 = *(code **)(puStack_f0 + -0x7d80);\n  pcVar28 = FUN_00014a38;\n  iVar5 = iStack_94;\n  (*pcVar27)();\n  piVar8 = *(int **)(pcVar27 + 0x24930);\n  iVar14 = *(int *)(pcVar27 + 0x246c0);\n  pcStack_134 = (code *)*piVar8;\n  puStack_130 = unaff_s0;\n  puStack_12c = unaff_s1;\n  puStack_128 = unaff_s2;\n  puStack_124 = unaff_s3;\n  puStack_120 = puVar13;\n  puStack_11c = unaff_s5;\n  puStack_118 = unaff_s6;\n  puStack_114 = unaff_s7;\n  puStack_110 = puVar26;\n  pcStack_10c = pcVar28;\n  if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }\n  puVar21 = auStack_140;\n  puVar17 = auStack_14c;\n  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);\n  puVar18 = auStack_170;\n  pcVar20 = (code *)auStack_158;\n  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);\n  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);\n  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);\n  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);\n  uStack_1a8 = 1;\n  uStack_1b0 = 0;\n  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);\n  iVar9 = *(int *)(pcVar27 + 0x246cc);\n  iVar10 = *(int *)(pcVar27 + 0x246d0);\n  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n  uVar19 = 0;\n  uVar29 = 1;\n  if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  (*pcVar28)();\n  pcVar28 = (code *)*piVar8;\n  if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }\n  (**(code **)(pcVar27 + 0x24918))();\n  pcVar27 = pcVar27 + 0x2c698;\n  pcVar28 = pcVar20;\n  puVar16 = puVar21;\n  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );\n}\n\n" (function_definition "code * FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int iVar5;\n  byte *pbVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  code *pcVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  undefined4 *unaff_s0;\n  undefined4 *unaff_s1;\n  undefined4 *unaff_s2;\n  undefined1 *puVar23;\n  undefined4 *unaff_s3;\n  undefined *unaff_s5;\n  undefined *unaff_s6;\n  undefined1 *unaff_s7;\n  undefined *puVar24;\n  code *pcVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  uint uVar29;\n  uint uStack_1c4;\n  undefined1 *puStack_1bc;\n  uint uStack_1b0;\n  uint uStack_1a8;\n  undefined1 auStack_17c [12];\n  undefined1 auStack_170 [12];\n  undefined1 auStack_164 [12];\n  undefined1 auStack_158 [12];\n  undefined1 auStack_14c [12];\n  undefined1 auStack_140 [12];\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  undefined4 *puStack_12c;\n  undefined4 *puStack_128;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined *puStack_11c;\n  undefined *puStack_118;\n  undefined1 *puStack_114;\n  undefined *puStack_110;\n  code *pcStack_10c;\n  undefined *puStack_f8;\n  undefined *puStack_f4;\n  undefined *puStack_f0;\n  code *pcStack_e4;\n  undefined4 *puStack_e0;\n  code *pcStack_dc;\n  int *piStack_d8;\n  int *piStack_d4;\n  int aiStack_d0 [2];\n  undefined *puStack_c8;\n  undefined auStack_c4 [12];\n  undefined4 auStack_b8 [3];\n  undefined4 auStack_ac [3];\n  undefined4 auStack_a0 [3];\n  int iStack_94;\n  undefined4 *puStack_90;\n  undefined4 *puStack_8c;\n  undefined4 *puStack_88;\n  undefined4 *puStack_84;\n  undefined *puStack_80;\n  undefined *puStack_7c;\n  undefined *puStack_78;\n  undefined1 *puStack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  undefined1 auStack_44 [12];\n  undefined1 auStack_38 [12];\n  code *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = param_1[1];\n  param_2[1] = 0;\n  param_2[2] = 0;\n  local_2c = *(code **)puVar4;\n  *param_2 = 0;\n  puVar26 = PTR_DAT_000390f8;\n  puVar13 = param_1;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }\n  if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }\n  pcVar27 = FUN_00014704;\n  puVar24 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  puStack_f0 = puVar24 + 0x2c9cc;\n  piStack_d8 = *(int **)(puVar24 + 0x24c64);\n  puVar15 = (undefined4 *)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar26;\n  iStack_94 = *piStack_d8;\n  puStack_90 = unaff_s0;\n  puStack_8c = unaff_s1;\n  puStack_88 = unaff_s2;\n  puStack_84 = unaff_s3;\n  puStack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  pcStack_6c = pcVar27;\n  iVar5 = (**(code **)(puVar24 + 0x24b54))();\n  if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }\n  pcVar27 = *(code **)(puStack_f0 + -0x7d80);\n  pcVar28 = FUN_00014a38;\n  iVar5 = iStack_94;\n  (*pcVar27)();\n  piVar8 = *(int **)(pcVar27 + 0x24930);\n  iVar14 = *(int *)(pcVar27 + 0x246c0);\n  pcStack_134 = (code *)*piVar8;\n  puStack_130 = unaff_s0;\n  puStack_12c = unaff_s1;\n  puStack_128 = unaff_s2;\n  puStack_124 = unaff_s3;\n  puStack_120 = puVar13;\n  puStack_11c = unaff_s5;\n  puStack_118 = unaff_s6;\n  puStack_114 = unaff_s7;\n  puStack_110 = puVar26;\n  pcStack_10c = pcVar28;\n  if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }\n  puVar21 = auStack_140;\n  puVar17 = auStack_14c;\n  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);\n  puVar18 = auStack_170;\n  pcVar20 = (code *)auStack_158;\n  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);\n  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);\n  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);\n  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);\n  uStack_1a8 = 1;\n  uStack_1b0 = 0;\n  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);\n  iVar9 = *(int *)(pcVar27 + 0x246cc);\n  iVar10 = *(int *)(pcVar27 + 0x246d0);\n  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n  uVar19 = 0;\n  uVar29 = 1;\n  if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  (*pcVar28)();\n  pcVar28 = (code *)*piVar8;\n  if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }\n  (**(code **)(pcVar27 + 0x24918))();\n  pcVar27 = pcVar27 + 0x2c698;\n  pcVar28 = pcVar20;\n  puVar16 = puVar21;\n  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );\n}" type_identifier (pointer_declarator "* FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" * (function_declarator "FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int iVar5;\n  byte *pbVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  code *pcVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  undefined4 *unaff_s0;\n  undefined4 *unaff_s1;\n  undefined4 *unaff_s2;\n  undefined1 *puVar23;\n  undefined4 *unaff_s3;\n  undefined *unaff_s5;\n  undefined *unaff_s6;\n  undefined1 *unaff_s7;\n  undefined *puVar24;\n  code *pcVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  uint uVar29;\n  uint uStack_1c4;\n  undefined1 *puStack_1bc;\n  uint uStack_1b0;\n  uint uStack_1a8;\n  undefined1 auStack_17c [12];\n  undefined1 auStack_170 [12];\n  undefined1 auStack_164 [12];\n  undefined1 auStack_158 [12];\n  undefined1 auStack_14c [12];\n  undefined1 auStack_140 [12];\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  undefined4 *puStack_12c;\n  undefined4 *puStack_128;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined *puStack_11c;\n  undefined *puStack_118;\n  undefined1 *puStack_114;\n  undefined *puStack_110;\n  code *pcStack_10c;\n  undefined *puStack_f8;\n  undefined *puStack_f4;\n  undefined *puStack_f0;\n  code *pcStack_e4;\n  undefined4 *puStack_e0;\n  code *pcStack_dc;\n  int *piStack_d8;\n  int *piStack_d4;\n  int aiStack_d0 [2];\n  undefined *puStack_c8;\n  undefined auStack_c4 [12];\n  undefined4 auStack_b8 [3];\n  undefined4 auStack_ac [3];\n  undefined4 auStack_a0 [3];\n  int iStack_94;\n  undefined4 *puStack_90;\n  undefined4 *puStack_8c;\n  undefined4 *puStack_88;\n  undefined4 *puStack_84;\n  undefined *puStack_80;\n  undefined *puStack_7c;\n  undefined *puStack_78;\n  undefined1 *puStack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  undefined1 auStack_44 [12];\n  undefined1 auStack_38 [12];\n  code *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = param_1[1];\n  param_2[1] = 0;\n  param_2[2] = 0;\n  local_2c = *(code **)puVar4;\n  *param_2 = 0;\n  puVar26 = PTR_DAT_000390f8;\n  puVar13 = param_1;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }\n  if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }\n  pcVar27 = FUN_00014704;\n  puVar24 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  puStack_f0 = puVar24 + 0x2c9cc;\n  piStack_d8 = *(int **)(puVar24 + 0x24c64);\n  puVar15 = (undefined4 *)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar26;\n  iStack_94 = *piStack_d8;\n  puStack_90 = unaff_s0;\n  puStack_8c = unaff_s1;\n  puStack_88 = unaff_s2;\n  puStack_84 = unaff_s3;\n  puStack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  pcStack_6c = pcVar27;\n  iVar5 = (**(code **)(puVar24 + 0x24b54))();\n  if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }\n  pcVar27 = *(code **)(puStack_f0 + -0x7d80);\n  pcVar28 = FUN_00014a38;\n  iVar5 = iStack_94;\n  (*pcVar27)();\n  piVar8 = *(int **)(pcVar27 + 0x24930);\n  iVar14 = *(int *)(pcVar27 + 0x246c0);\n  pcStack_134 = (code *)*piVar8;\n  puStack_130 = unaff_s0;\n  puStack_12c = unaff_s1;\n  puStack_128 = unaff_s2;\n  puStack_124 = unaff_s3;\n  puStack_120 = puVar13;\n  puStack_11c = unaff_s5;\n  puStack_118 = unaff_s6;\n  puStack_114 = unaff_s7;\n  puStack_110 = puVar26;\n  pcStack_10c = pcVar28;\n  if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }\n  puVar21 = auStack_140;\n  puVar17 = auStack_14c;\n  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);\n  puVar18 = auStack_170;\n  pcVar20 = (code *)auStack_158;\n  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);\n  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);\n  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);\n  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);\n  uStack_1a8 = 1;\n  uStack_1b0 = 0;\n  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);\n  iVar9 = *(int *)(pcVar27 + 0x246cc);\n  iVar10 = *(int *)(pcVar27 + 0x246d0);\n  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n  uVar19 = 0;\n  uVar29 = 1;\n  if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  (*pcVar28)();\n  pcVar28 = (code *)*piVar8;\n  if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }\n  (**(code **)(pcVar27 + 0x24918))();\n  pcVar27 = pcVar27 + 0x2c698;\n  pcVar28 = pcVar20;\n  puVar16 = puVar21;\n  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "undefined4 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined4 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "undefined *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined1 *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint uStack_1c4;" type_identifier identifier ;) (declaration "undefined1 *puStack_1bc;" type_identifier (pointer_declarator "*puStack_1bc" * identifier) ;) (declaration "uint uStack_1b0;" type_identifier identifier ;) (declaration "uint uStack_1a8;" type_identifier identifier ;) (declaration "undefined1 auStack_17c [12];" type_identifier (array_declarator "auStack_17c [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_170 [12];" type_identifier (array_declarator "auStack_170 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_164 [12];" type_identifier (array_declarator "auStack_164 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_158 [12];" type_identifier (array_declarator "auStack_158 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_14c [12];" type_identifier (array_declarator "auStack_14c [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_140 [12];" type_identifier (array_declarator "auStack_140 [12]" identifier [ number_literal ]) ;) (declaration "code *pcStack_134;" type_identifier (pointer_declarator "*pcStack_134" * identifier) ;) (declaration "undefined4 *puStack_130;" type_identifier (pointer_declarator "*puStack_130" * identifier) ;) (declaration "undefined4 *puStack_12c;" type_identifier (pointer_declarator "*puStack_12c" * identifier) ;) (declaration "undefined4 *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "undefined4 *puStack_124;" type_identifier (pointer_declarator "*puStack_124" * identifier) ;) (declaration "undefined4 *puStack_120;" type_identifier (pointer_declarator "*puStack_120" * identifier) ;) (declaration "undefined *puStack_11c;" type_identifier (pointer_declarator "*puStack_11c" * identifier) ;) (declaration "undefined *puStack_118;" type_identifier (pointer_declarator "*puStack_118" * identifier) ;) (declaration "undefined1 *puStack_114;" type_identifier (pointer_declarator "*puStack_114" * identifier) ;) (declaration "undefined *puStack_110;" type_identifier (pointer_declarator "*puStack_110" * identifier) ;) (declaration "code *pcStack_10c;" type_identifier (pointer_declarator "*pcStack_10c" * identifier) ;) (declaration "undefined *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "undefined *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "undefined *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "code *pcStack_e4;" type_identifier (pointer_declarator "*pcStack_e4" * identifier) ;) (declaration "undefined4 *puStack_e0;" type_identifier (pointer_declarator "*puStack_e0" * identifier) ;) (declaration "code *pcStack_dc;" type_identifier (pointer_declarator "*pcStack_dc" * identifier) ;) (declaration "int *piStack_d8;" primitive_type (pointer_declarator "*piStack_d8" * identifier) ;) (declaration "int *piStack_d4;" primitive_type (pointer_declarator "*piStack_d4" * identifier) ;) (declaration "int aiStack_d0 [2];" primitive_type (array_declarator "aiStack_d0 [2]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_c8;" type_identifier (pointer_declarator "*puStack_c8" * identifier) ;) (declaration "undefined auStack_c4 [12];" type_identifier (array_declarator "auStack_c4 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_b8 [3];" type_identifier (array_declarator "auStack_b8 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_ac [3];" type_identifier (array_declarator "auStack_ac [3]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_a0 [3];" type_identifier (array_declarator "auStack_a0 [3]" identifier [ number_literal ]) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "undefined4 *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "undefined4 *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "undefined4 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "undefined4 *puStack_84;" type_identifier (pointer_declarator "*puStack_84" * identifier) ;) (declaration "undefined *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "undefined *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "undefined1 *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "undefined *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "undefined1 auStack_44 [12];" type_identifier (array_declarator "auStack_44 [12]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_38 [12];" type_identifier (array_declarator "auStack_38 [12]" identifier [ number_literal ]) ;) (declaration "code *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00039368;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00039368" identifier = identifier) ;) (expression_statement "iVar5 = param_1[1];" (assignment_expression "iVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_2c = *(code **)puVar4;" (assignment_expression "local_2c = *(code **)puVar4" identifier = (pointer_expression "*(code **)puVar4" * (cast_expression "(code **)puVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "puVar26 = PTR_DAT_000390f8;" (assignment_expression "puVar26 = PTR_DAT_000390f8" identifier = identifier) ;) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }" { (if_statement "if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }" if (parenthesized_expression "(PTR_DAT_000390f8[-0x6c28] != '\0')" ( (binary_expression "PTR_DAT_000390f8[-0x6c28] != '\0'" (subscript_expression "PTR_DAT_000390f8[-0x6c28]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }" { (expression_statement "(*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);" (call_expression "(*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390)" (parenthesized_expression "(*(code *)PTR_fwrite_00039328)" ( (pointer_expression "*(code *)PTR_fwrite_00039328" * (cast_expression "(code *)PTR_fwrite_00039328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390)" ( (binary_expression "PTR_LAB_00039108 + 0x4c20" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_00039390" * (cast_expression "(undefined4 *)PTR_stderr_00039390" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "(*(code *)PTR___gmpz_init_0003924c)(auStack_44);" (call_expression "(*(code *)PTR___gmpz_init_0003924c)(auStack_44)" (parenthesized_expression "(*(code *)PTR___gmpz_init_0003924c)" ( (pointer_expression "*(code *)PTR___gmpz_init_0003924c" * (cast_expression "(code *)PTR___gmpz_init_0003924c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_44)" ( identifier ))) ;) (expression_statement "puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);" (assignment_expression "puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" (parenthesized_expression "(*(code *)PTR___gmpz_scan1_000393ac)" ( (pointer_expression "*(code *)PTR___gmpz_scan1_000393ac" * (cast_expression "(code *)PTR___gmpz_scan1_000393ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0)" ( identifier , number_literal ))))) ;) (expression_statement "param_3 = puVar15;" (assignment_expression "param_3 = puVar15" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);" (call_expression "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)" ( (pointer_expression "*(code *)PTR___gmpz_fdiv_q_2exp_00039320" * (cast_expression "(code *)PTR___gmpz_fdiv_q_2exp_00039320" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1)" ( identifier , identifier ))) ;) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }" { (do_statement "do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);" do (compound_statement "{\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      }" { (expression_statement "puVar15 = (undefined4 *)((int)puVar15 + -1);" (assignment_expression "puVar15 = (undefined4 *)((int)puVar15 + -1)" identifier = (cast_expression "(undefined4 *)((int)puVar15 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + -1)" ( (binary_expression "(int)puVar15 + -1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);" (call_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2)" (parenthesized_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)" ( (pointer_expression "*(code *)PTR___gmpz_init_set_ui_00039294" * (cast_expression "(code *)PTR___gmpz_init_set_ui_00039294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_38,2)" ( identifier , number_literal ))) ;) (expression_statement "FUN_0001365c(param_2,auStack_38);" (call_expression "FUN_0001365c(param_2,auStack_38)" identifier (argument_list "(param_2,auStack_38)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(auStack_38);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(auStack_38)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_38)" ( identifier ))) ;) }) while (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "unaff_s2 = (undefined4 *)0x1;" (assignment_expression "unaff_s2 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s1 = (undefined4 *)0x3;" (assignment_expression "unaff_s1 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s7 = auStack_38;" (assignment_expression "unaff_s7 = auStack_38" identifier = identifier) ;) (expression_statement "unaff_s6 = PTR_00039104 + 0x365c;" (assignment_expression "unaff_s6 = PTR_00039104 + 0x365c" identifier = (binary_expression "PTR_00039104 + 0x365c" identifier + number_literal)) ;) (expression_statement "unaff_s5 = PTR_LAB_00039108 + 0x7e4c;" (assignment_expression "unaff_s5 = PTR_LAB_00039108 + 0x7e4c" identifier = (binary_expression "PTR_LAB_00039108 + 0x7e4c" identifier + number_literal)) ;) (do_statement "do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);" do (compound_statement "{\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    }" { (while_statement "while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }" while (parenthesized_expression "(iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0)" ( (comma_expression "iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1)" identifier = (call_expression "(*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_divisible_ui_p_000392d8)" ( (pointer_expression "*(code *)PTR___gmpz_divisible_ui_p_000392d8" * (cast_expression "(code *)PTR___gmpz_divisible_ui_p_000392d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,unaff_s1)" ( identifier , identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) )) (compound_statement "{\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }" { (expression_statement "pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);" (assignment_expression "pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5)" identifier = (cast_expression "(byte *)((int)unaff_s2 + (int)unaff_s5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + (int)unaff_s5)" ( (binary_expression "(int)unaff_s2 + (int)unaff_s5" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (undefined4 *)((int)unaff_s2 + 1)" identifier = (cast_expression "(undefined4 *)((int)unaff_s2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 + 1)" ( (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);" (assignment_expression "unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6)" identifier = (cast_expression "(undefined4 *)((int)unaff_s1 + (uint)*pbVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s1 + (uint)*pbVar6)" ( (binary_expression "(int)unaff_s1 + (uint)*pbVar6" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar6" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) ;) (expression_statement "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1)" identifier = (call_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)" ( (pointer_expression "*(code *)PTR___gmpz_cmp_ui_00039258" * (cast_expression "(code *)PTR___gmpz_cmp_ui_00039258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,(int)unaff_s1 * (int)unaff_s1)" ( identifier , (binary_expression "(int)unaff_s1 * (int)unaff_s1" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) * (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;" if (parenthesized_expression "((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d))" ( (binary_expression "(iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)" (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) || (parenthesized_expression "(unaff_s2 == (undefined4 *)0x29d)" ( (binary_expression "unaff_s2 == (undefined4 *)0x29d" identifier == (cast_expression "(undefined4 *)0x29d" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00014628;" goto statement_identifier ;)) })) (expression_statement "param_3 = unaff_s1;" (assignment_expression "param_3 = unaff_s1" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);" (call_expression "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)" ( (pointer_expression "*(code *)PTR___gmpz_tdiv_q_ui_0003933c" * (cast_expression "(code *)PTR___gmpz_tdiv_q_ui_0003933c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);" (call_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)" ( (pointer_expression "*(code *)PTR___gmpz_init_set_ui_00039294" * (cast_expression "(code *)PTR___gmpz_init_set_ui_00039294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,unaff_s1)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001365c(param_2,unaff_s7);" (call_expression "FUN_0001365c(param_2,unaff_s7)" identifier (argument_list "(param_2,unaff_s7)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(unaff_s7)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7)" ( identifier ))) ;) }) while (parenthesized_expression "(unaff_s2 != (undefined4 *)0x29d)" ( (binary_expression "unaff_s2 != (undefined4 *)0x29d" identifier != (cast_expression "(undefined4 *)0x29d" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);" statement_identifier : (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(auStack_44);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(auStack_44)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" ( (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" * (cast_expression "(code *)PTR___gmpz_clear_000392c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_44)" ( identifier ))) ;)) (expression_statement "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1)" identifier = (call_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1)" (parenthesized_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)" ( (pointer_expression "*(code *)PTR___gmpz_cmp_ui_00039258" * (cast_expression "(code *)PTR___gmpz_cmp_ui_00039258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (expression_statement "unaff_s3 = param_2;" (assignment_expression "unaff_s3 = param_2" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }" { (if_statement "if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }" if (parenthesized_expression "(puVar26[-0x6c28] != '\0')" ( (binary_expression "puVar26[-0x6c28] != '\0'" (subscript_expression "puVar26[-0x6c28]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }" { (expression_statement "param_3 = (undefined4 *)0x13;" (assignment_expression "param_3 = (undefined4 *)0x13" identifier = (cast_expression "(undefined4 *)0x13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);" (call_expression "(*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390)" (parenthesized_expression "(*(code *)PTR_fwrite_00039328)" ( (pointer_expression "*(code *)PTR_fwrite_00039328" * (cast_expression "(code *)PTR_fwrite_00039328" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390)" ( (binary_expression "PTR_LAB_00039108 + 0x4c34" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*(undefined4 *)PTR_stderr_00039390" * (cast_expression "(undefined4 *)PTR_stderr_00039390" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (expression_statement "iVar5 = FUN_00014704(param_1);" (assignment_expression "iVar5 = FUN_00014704(param_1)" identifier = (call_expression "FUN_00014704(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }" { (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" identifier = identifier) ;) (expression_statement "param_3 = param_2;" (assignment_expression "param_3 = param_2" identifier = identifier) ;) (expression_statement "FUN_00014a38(param_1,1);" (call_expression "FUN_00014a38(param_1,1)" identifier (argument_list "(param_1,1)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" else (compound_statement "{\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" { (expression_statement "puVar13 = param_2;" (assignment_expression "puVar13 = param_2" identifier = identifier) ;) (expression_statement "FUN_0001365c(param_2,param_1);" (call_expression "FUN_0001365c(param_2,param_1)" identifier (argument_list "(param_2,param_1)" ( identifier , identifier ))) ;) }))) })) })) (if_statement "if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }" if (parenthesized_expression "(local_2c == *(code **)puVar4)" ( (binary_expression "local_2c == *(code **)puVar4" identifier == (pointer_expression "*(code **)puVar4" * (cast_expression "(code **)puVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return *(code **)puVar4;\n  }" { (return_statement "return *(code **)puVar4;" return (pointer_expression "*(code **)puVar4" * (cast_expression "(code **)puVar4" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "pcVar27 = FUN_00014704;" (assignment_expression "pcVar27 = FUN_00014704" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_00039350;" (assignment_expression "puVar24 = PTR___stack_chk_fail_00039350" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00039350)();" (call_expression "(*(code *)PTR___stack_chk_fail_00039350)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00039350)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00039350" * (cast_expression "(code *)PTR___stack_chk_fail_00039350" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_f0 = puVar24 + 0x2c9cc;" (assignment_expression "puStack_f0 = puVar24 + 0x2c9cc" identifier = (binary_expression "puVar24 + 0x2c9cc" identifier + number_literal)) ;) (expression_statement "piStack_d8 = *(int **)(puVar24 + 0x24c64);" (assignment_expression "piStack_d8 = *(int **)(puVar24 + 0x24c64)" identifier = (pointer_expression "*(int **)(puVar24 + 0x24c64)" * (cast_expression "(int **)(puVar24 + 0x24c64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x24c64)" ( (binary_expression "puVar24 + 0x24c64" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = (undefined4 *)0x1;" (assignment_expression "puVar15 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_80 = puVar4;" (assignment_expression "puStack_80 = puVar4" identifier = identifier) ;) (expression_statement "puStack_70 = puVar26;" (assignment_expression "puStack_70 = puVar26" identifier = identifier) ;) (expression_statement "iStack_94 = *piStack_d8;" (assignment_expression "iStack_94 = *piStack_d8" identifier = (pointer_expression "*piStack_d8" * identifier)) ;) (expression_statement "puStack_90 = unaff_s0;" (assignment_expression "puStack_90 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_8c = unaff_s1;" (assignment_expression "puStack_8c = unaff_s1" identifier = identifier) ;) (expression_statement "puStack_88 = unaff_s2;" (assignment_expression "puStack_88 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_84 = unaff_s3;" (assignment_expression "puStack_84 = unaff_s3" identifier = identifier) ;) (expression_statement "puStack_7c = unaff_s5;" (assignment_expression "puStack_7c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_78 = unaff_s6;" (assignment_expression "puStack_78 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_74 = unaff_s7;" (assignment_expression "puStack_74 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_6c = pcVar27;" (assignment_expression "pcStack_6c = pcVar27" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar24 + 0x24b54))();" (assignment_expression "iVar5 = (**(code **)(puVar24 + 0x24b54))()" identifier = (call_expression "(**(code **)(puVar24 + 0x24b54))()" (parenthesized_expression "(**(code **)(puVar24 + 0x24b54))" ( (pointer_expression "**(code **)(puVar24 + 0x24b54)" * (pointer_expression "*(code **)(puVar24 + 0x24b54)" * (cast_expression "(code **)(puVar24 + 0x24b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x24b54)" ( (binary_expression "puVar24 + 0x24b54" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (compound_statement "{\n    pcStack_dc = (code *)0x0;\n  }" { (expression_statement "pcStack_dc = (code *)0x0;" (assignment_expression "pcStack_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" else (compound_statement "{\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" { (expression_statement "puVar15 = (undefined4 *)0x17ded79;" (assignment_expression "puVar15 = (undefined4 *)0x17ded79" identifier = (cast_expression "(undefined4 *)0x17ded79" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);" (assignment_expression "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13)" identifier = (call_expression "(**(code **)(puStack_f0 + -0x7e78))(puVar13)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e78))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7e78)" * (pointer_expression "*(code **)(puStack_f0 + -0x7e78)" * (cast_expression "(code **)(puStack_f0 + -0x7e78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7e78)" ( (binary_expression "puStack_f0 + -0x7e78" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;) (if_statement "if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n      pcStack_dc = (code *)0x1;\n    }" { (expression_statement "pcStack_dc = (code *)0x1;" (assignment_expression "pcStack_dc = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" else (compound_statement "{\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" { (expression_statement "unaff_s2 = auStack_ac;" (assignment_expression "unaff_s2 = auStack_ac" identifier = identifier) ;) (expression_statement "unaff_s1 = auStack_b8;" (assignment_expression "unaff_s1 = auStack_b8" identifier = identifier) ;) (expression_statement "puStack_f8 = (undefined *)0x0;" (assignment_expression "puStack_f8 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = auStack_c4;" (assignment_expression "unaff_s5 = auStack_c4" identifier = identifier) ;) (expression_statement "unaff_s0 = auStack_a0;" (assignment_expression "unaff_s0 = auStack_a0" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);" (call_expression "(**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d88))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d88)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d88)" * (cast_expression "(code **)(puStack_f0 + -0x7d88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d88)" ( (binary_expression "puStack_f0 + -0x7d88" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);" (call_expression "(**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d48))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d48)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d48)" * (cast_expression "(code **)(puStack_f0 + -0x7d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d48)" ( (binary_expression "puStack_f0 + -0x7d48" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,puVar13,1)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);" (assignment_expression "unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" identifier = (cast_expression "(undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d24))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d24)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d24)" * (cast_expression "(code **)(puStack_f0 + -0x7d24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d24)" ( (binary_expression "puStack_f0 + -0x7d24" identifier + number_literal) ))))) )) (argument_list "(unaff_s2,0)" ( identifier , number_literal ))))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);" (call_expression "(**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e24))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7e24)" * (pointer_expression "*(code **)(puStack_f0 + -0x7e24)" * (cast_expression "(code **)(puStack_f0 + -0x7e24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7e24)" ( (binary_expression "puStack_f0 + -0x7e24" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s2,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);" (call_expression "(**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d58))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d58)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d58)" * (cast_expression "(code **)(puStack_f0 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d58)" ( (binary_expression "puStack_f0 + -0x7d58" identifier + number_literal) ))))) )) (argument_list "(unaff_s1,2)" ( identifier , number_literal ))) ;) (expression_statement "pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);" (assignment_expression "pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" identifier = (cast_expression "(code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" ( (binary_expression "*(int *)(puStack_f0 + -0x7fcc) + 0x42e0" (pointer_expression "*(int *)(puStack_f0 + -0x7fcc)" * (cast_expression "(int *)(puStack_f0 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_f0 + -0x7fcc)" ( (binary_expression "puStack_f0 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puStack_f8 = unaff_s5;" (assignment_expression "puStack_f8 = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_f4 = unaff_s6;" (assignment_expression "puStack_f4 = unaff_s6" identifier = identifier) ;) (expression_statement "pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);" (assignment_expression "pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" identifier = (cast_expression "(code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" identifier (argument_list "(puVar13,unaff_s2,unaff_s1,unaff_s0)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }" if (parenthesized_expression "(pcStack_dc != (code *)0x0)" ( (binary_expression "pcStack_dc != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }" { (expression_statement "piStack_d4 = aiStack_d0;" (assignment_expression "piStack_d4 = aiStack_d0" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);" (call_expression "(**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d8c))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d8c)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d8c)" * (cast_expression "(code **)(puStack_f0 + -0x7d8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d8c)" ( (binary_expression "puStack_f0 + -0x7d8c" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s2)" ( identifier , identifier ))) ;) (expression_statement "FUN_00014424(unaff_s0,aiStack_d0);" (call_expression "FUN_00014424(unaff_s0,aiStack_d0)" identifier (argument_list "(unaff_s0,aiStack_d0)" ( identifier , identifier ))) ;) (expression_statement "unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);" (assignment_expression "unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" identifier = (cast_expression "(undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" ( (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" * (cast_expression "(int *)(puStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_f0 + -0x7fc8)" ( (binary_expression "puStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);" (assignment_expression "puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000)" identifier = (cast_expression "(undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fc8) + 33000)" ( (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 33000" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" * (cast_expression "(int *)(puStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_f0 + -0x7fc8)" ( (binary_expression "puStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (while_statement "while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }" while (parenthesized_expression "(unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0)" ( (comma_expression "unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0" (assignment_expression "unaff_s7 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "puStack_c8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }" { (expression_statement "puVar26 = (undefined *)0x0;" (assignment_expression "puVar26 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);" do (compound_statement "{\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          }" { (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);" (call_expression "(**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0])" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d84))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d84)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d84)" * (cast_expression "(code **)(puStack_f0 + -0x7d84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d84)" ( (binary_expression "puStack_f0 + -0x7d84" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0])" ( identifier , identifier , (binary_expression "unaff_s7 + aiStack_d0[0]" identifier + (subscript_expression "aiStack_d0[0]" identifier [ number_literal ])) ))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);" (call_expression "(**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d78))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d78)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d78)" * (cast_expression "(code **)(puStack_f0 + -0x7d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d78)" ( (binary_expression "puStack_f0 + -0x7d78" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,unaff_s1,unaff_s0,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);" (assignment_expression "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1)" identifier = (call_expression "(**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e78))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7e78)" * (pointer_expression "*(code **)(puStack_f0 + -0x7e78)" * (cast_expression "(code **)(puStack_f0 + -0x7e78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7e78)" ( (binary_expression "puStack_f0 + -0x7e78" identifier + number_literal) ))))) )) (argument_list "(unaff_s0,1)" ( identifier , number_literal )))) ;) (if_statement "if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }" if (parenthesized_expression "(puStack_c8 <= puVar26)" ( (binary_expression "puStack_c8 <= puVar26" identifier <= identifier) )) (compound_statement "{\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }" { (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7de4);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7de4)" identifier = (pointer_expression "*(code **)(puStack_f0 + -0x7de4)" * (cast_expression "(code **)(puStack_f0 + -0x7de4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7de4)" ( (binary_expression "puStack_f0 + -0x7de4" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00014908;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00014908;" goto statement_identifier ;)) (goto_statement "goto LAB_000149e4;" goto statement_identifier ;) })) (expression_statement "unaff_s7 = unaff_s7 + 0xc;" (assignment_expression "unaff_s7 = unaff_s7 + 0xc" identifier = (binary_expression "unaff_s7 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7de4);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7de4)" identifier = (pointer_expression "*(code **)(puStack_f0 + -0x7de4)" * (cast_expression "(code **)(puStack_f0 + -0x7de4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7de4)" ( (binary_expression "puStack_f0 + -0x7de4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);" statement_identifier : (expression_statement "(*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);" (call_expression "(*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3)" ( identifier , identifier , (pointer_expression "*(undefined1 *)unaff_s3" * (cast_expression "(undefined1 *)unaff_s3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;)) (expression_statement "puStack_f8 = unaff_s5;" (assignment_expression "puStack_f8 = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_f4 = unaff_s6;" (assignment_expression "puStack_f4 = unaff_s6" identifier = identifier) ;) (expression_statement "iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);" (assignment_expression "iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0)" identifier = (call_expression "(*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0)" (parenthesized_expression "(*pcStack_e4)" ( (pointer_expression "*pcStack_e4" * identifier) )) (argument_list "(puVar13,unaff_s2,unaff_s1,unaff_s0)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            pcStack_dc = (code *)0x0;\n            break;\n          }" { (expression_statement "pcStack_dc = (code *)0x0;" (assignment_expression "pcStack_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;) })) (expression_statement "unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (undefined4 *)((int)unaff_s3 + 1)" identifier = (cast_expression "(undefined4 *)((int)unaff_s3 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 1)" ( (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }" if (parenthesized_expression "(puStack_e0 == unaff_s3)" ( (binary_expression "puStack_e0 == unaff_s3" identifier == identifier) )) (compound_statement "{\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }" { (expression_statement "uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;" (assignment_expression "uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" identifier = (call_expression "(**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d7c))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d7c)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d7c)" * (cast_expression "(code **)(puStack_f0 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d7c)" ( (binary_expression "puStack_f0 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" ( number_literal , (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 0x4c48" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" * (cast_expression "(int *)(puStack_f0 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_f0 + -0x7fc8)" ( (binary_expression "puStack_f0 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);" (call_expression "(**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7dc0))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7dc0)" * (pointer_expression "*(code **)(puStack_f0 + -0x7dc0)" * (cast_expression "(code **)(puStack_f0 + -0x7dc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7dc0)" ( (binary_expression "puStack_f0 + -0x7dc0" identifier + number_literal) ))))) )) (argument_list "(0,0,uVar7)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();" (assignment_expression "pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))()" identifier = (cast_expression "(code *)(**(code **)(puStack_f0 + -0x7e94))()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_f0 + -0x7e94))()" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e94))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7e94)" * (pointer_expression "*(code **)(puStack_f0 + -0x7e94)" * (cast_expression "(code **)(puStack_f0 + -0x7e94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7e94)" ( (binary_expression "puStack_f0 + -0x7e94" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (return_statement "return pcVar27;" return identifier ;) })) })) (labeled_statement "LAB_000149e4:\n        FUN_00012488(piStack_d4);" statement_identifier : (expression_statement "FUN_00012488(piStack_d4);" (call_expression "FUN_00012488(piStack_d4)" identifier (argument_list "(piStack_d4)" ( identifier ))) ;)) })) (expression_statement "puStack_f8 = (undefined *)0x0;" (assignment_expression "puStack_f8 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = unaff_s1;" (assignment_expression "puVar15 = unaff_s1" identifier = identifier) ;) (expression_statement "param_3 = unaff_s2;" (assignment_expression "param_3 = unaff_s2" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);" (call_expression "(**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d4c))" ( (pointer_expression "**(code **)(puStack_f0 + -0x7d4c)" * (pointer_expression "*(code **)(puStack_f0 + -0x7d4c)" * (cast_expression "(code **)(puStack_f0 + -0x7d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d4c)" ( (binary_expression "puStack_f0 + -0x7d4c" identifier + number_literal) ))))) )) (argument_list "(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" ( identifier , identifier , identifier , identifier ))) ;) }))) }))) (if_statement "if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }" if (parenthesized_expression "(iStack_94 == *piStack_d8)" ( (binary_expression "iStack_94 == *piStack_d8" identifier == (pointer_expression "*piStack_d8" * identifier)) )) (compound_statement "{\n    return pcStack_dc;\n  }" { (return_statement "return pcStack_dc;" return identifier ;) })) (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7d80);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7d80)" identifier = (pointer_expression "*(code **)(puStack_f0 + -0x7d80)" * (cast_expression "(code **)(puStack_f0 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_f0 + -0x7d80)" ( (binary_expression "puStack_f0 + -0x7d80" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = FUN_00014a38;" (assignment_expression "pcVar28 = FUN_00014a38" identifier = identifier) ;) (expression_statement "iVar5 = iStack_94;" (assignment_expression "iVar5 = iStack_94" identifier = identifier) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar8 = *(int **)(pcVar27 + 0x24930);" (assignment_expression "piVar8 = *(int **)(pcVar27 + 0x24930)" identifier = (pointer_expression "*(int **)(pcVar27 + 0x24930)" * (cast_expression "(int **)(pcVar27 + 0x24930)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24930)" ( (binary_expression "pcVar27 + 0x24930" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(pcVar27 + 0x246c0);" (assignment_expression "iVar14 = *(int *)(pcVar27 + 0x246c0)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x246c0)" * (cast_expression "(int *)(pcVar27 + 0x246c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246c0)" ( (binary_expression "pcVar27 + 0x246c0" identifier + number_literal) ))))) ;) (expression_statement "pcStack_134 = (code *)*piVar8;" (assignment_expression "pcStack_134 = (code *)*piVar8" identifier = (cast_expression "(code *)*piVar8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "puStack_130 = unaff_s0;" (assignment_expression "puStack_130 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_12c = unaff_s1;" (assignment_expression "puStack_12c = unaff_s1" identifier = identifier) ;) (expression_statement "puStack_128 = unaff_s2;" (assignment_expression "puStack_128 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_124 = unaff_s3;" (assignment_expression "puStack_124 = unaff_s3" identifier = identifier) ;) (expression_statement "puStack_120 = puVar13;" (assignment_expression "puStack_120 = puVar13" identifier = identifier) ;) (expression_statement "puStack_11c = unaff_s5;" (assignment_expression "puStack_11c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_118 = unaff_s6;" (assignment_expression "puStack_118 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_114 = unaff_s7;" (assignment_expression "puStack_114 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_110 = puVar26;" (assignment_expression "puStack_110 = puVar26" identifier = identifier) ;) (expression_statement "pcStack_10c = pcVar28;" (assignment_expression "pcStack_10c = pcVar28" identifier = identifier) ;) (if_statement "if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }" if (parenthesized_expression "(*(char *)(iVar14 + -0x6c28) != '\0')" ( (binary_expression "*(char *)(iVar14 + -0x6c28) != '\0'" (pointer_expression "*(char *)(iVar14 + -0x6c28)" * (cast_expression "(char *)(iVar14 + -0x6c28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x6c28)" ( (binary_expression "iVar14 + -0x6c28" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }" { (expression_statement "(**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24824))" ( (pointer_expression "**(code **)(pcVar27 + 0x24824)" * (pointer_expression "*(code **)(pcVar27 + 0x24824)" * (cast_expression "(code **)(pcVar27 + 0x24824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24824)" ( (binary_expression "pcVar27 + 0x24824" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15)" ( (pointer_expression "**(undefined4 **)(pcVar27 + 0x24958)" * (pointer_expression "*(undefined4 **)(pcVar27 + 0x24958)" * (cast_expression "(undefined4 **)(pcVar27 + 0x24958)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24958)" ( (binary_expression "pcVar27 + 0x24958" identifier + number_literal) ))))) , number_literal , (binary_expression "*(int *)(pcVar27 + 0x246d0) + 0x4c7c" (pointer_expression "*(int *)(pcVar27 + 0x246d0)" * (cast_expression "(int *)(pcVar27 + 0x246d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246d0)" ( (binary_expression "pcVar27 + 0x246d0" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "puVar21 = auStack_140;" (assignment_expression "puVar21 = auStack_140" identifier = identifier) ;) (expression_statement "puVar17 = auStack_14c;" (assignment_expression "puVar17 = auStack_14c" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);" (call_expression "(**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24910))" ( (pointer_expression "**(code **)(pcVar27 + 0x24910)" * (pointer_expression "*(code **)(pcVar27 + 0x24910)" * (cast_expression "(code **)(pcVar27 + 0x24910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24910)" ( (binary_expression "pcVar27 + 0x24910" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar21,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar18 = auStack_170;" (assignment_expression "puVar18 = auStack_170" identifier = identifier) ;) (expression_statement "pcVar20 = (code *)auStack_158;" (assignment_expression "pcVar20 = (code *)auStack_158" identifier = (cast_expression "(code *)auStack_158" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(auStack_164,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(auStack_164,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar27 + 0x248bc)" * (pointer_expression "*(code **)(pcVar27 + 0x248bc)" * (cast_expression "(code **)(pcVar27 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248bc)" ( (binary_expression "pcVar27 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(auStack_164,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(auStack_17c,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar27 + 0x248bc)" * (pointer_expression "*(code **)(pcVar27 + 0x248bc)" * (cast_expression "(code **)(pcVar27 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248bc)" ( (binary_expression "pcVar27 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(puVar18,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(puVar18,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" ( (pointer_expression "**(code **)(pcVar27 + 0x248bc)" * (pointer_expression "*(code **)(pcVar27 + 0x248bc)" * (cast_expression "(code **)(pcVar27 + 0x248bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248bc)" ( (binary_expression "pcVar27 + 0x248bc" identifier + number_literal) ))))) )) (argument_list "(puVar18,2)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x2485c))(pcVar20,1);" (call_expression "(**(code **)(pcVar27 + 0x2485c))(pcVar20,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2485c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2485c)" * (pointer_expression "*(code **)(pcVar27 + 0x2485c)" * (cast_expression "(code **)(pcVar27 + 0x2485c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2485c)" ( (binary_expression "pcVar27 + 0x2485c" identifier + number_literal) ))))) )) (argument_list "(pcVar20,1)" ( identifier , number_literal ))) ;) (expression_statement "uStack_1a8 = 1;" (assignment_expression "uStack_1a8 = 1" identifier = number_literal) ;) (expression_statement "uStack_1b0 = 0;" (assignment_expression "uStack_1b0 = 0" identifier = number_literal) ;) (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704)" identifier = (cast_expression "(code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x246cc) + 0x4704)" ( (binary_expression "*(int *)(pcVar27 + 0x246cc) + 0x4704" (pointer_expression "*(int *)(pcVar27 + 0x246cc)" * (cast_expression "(int *)(pcVar27 + 0x246cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246cc)" ( (binary_expression "pcVar27 + 0x246cc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar9 = *(int *)(pcVar27 + 0x246cc);" (assignment_expression "iVar9 = *(int *)(pcVar27 + 0x246cc)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x246cc)" * (cast_expression "(int *)(pcVar27 + 0x246cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246cc)" ( (binary_expression "pcVar27 + 0x246cc" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar27 + 0x246d0);" (assignment_expression "iVar10 = *(int *)(pcVar27 + 0x246d0)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x246d0)" * (cast_expression "(int *)(pcVar27 + 0x246d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x246d0)" ( (binary_expression "pcVar27 + 0x246d0" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x24820))(iVar5,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" ( (pointer_expression "**(code **)(pcVar27 + 0x24820)" * (pointer_expression "*(code **)(pcVar27 + 0x24820)" * (cast_expression "(code **)(pcVar27 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24820)" ( (binary_expression "pcVar27 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(iVar5,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = 1;" (assignment_expression "uVar29 = 1" identifier = number_literal) ;) (if_statement "if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" { (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x2494c);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x2494c)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x2494c)" * (cast_expression "(code **)(pcVar27 + 0x2494c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2494c)" ( (binary_expression "pcVar27 + 0x2494c" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" else (compound_statement "{\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" { (labeled_statement "LAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);" do (compound_statement "{\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    }" { (while_statement "while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }" { (expression_statement "uVar12 = uVar29;" (assignment_expression "uVar12 = uVar29" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" ( (pointer_expression "**(code **)(pcVar27 + 0x24908)" * (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(puVar17,auStack_17c,auStack_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,puVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar27 + 0x248b4)" * (pointer_expression "*(code **)(pcVar27 + 0x248b4)" * (cast_expression "(code **)(pcVar27 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248b4)" ( (binary_expression "pcVar27 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,auStack_17c,puVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24928))" ( (pointer_expression "**(code **)(pcVar27 + 0x24928)" * (pointer_expression "*(code **)(pcVar27 + 0x24928)" * (cast_expression "(code **)(pcVar27 + 0x24928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24928)" ( (binary_expression "pcVar27 + 0x24928" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar18,auStack_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" ( (pointer_expression "**(code **)(pcVar27 + 0x24908)" * (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(puVar21,pcVar20,puVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(pcVar20,puVar21,iVar5)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar12 & 0x1f) == 1) break;" if (parenthesized_expression "((uVar12 & 0x1f) == 1)" ( (binary_expression "(uVar12 & 0x1f) == 1" (parenthesized_expression "(uVar12 & 0x1f)" ( (binary_expression "uVar12 & 0x1f" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = uVar12 - 1;" (assignment_expression "uVar29 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);" (assignment_expression "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1)" identifier = (binary_expression "(uint)(uVar29 < uVar12) + (uVar19 - 1)" (call_expression "(uint)(uVar29 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 < uVar12)" ( (binary_expression "uVar29 < uVar12" identifier < identifier) ))) + (parenthesized_expression "(uVar19 - 1)" ( (binary_expression "uVar19 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }" if (parenthesized_expression "(uVar19 == 0 && uVar29 == 0)" ( (binary_expression "uVar19 == 0 && uVar29 == 0" (binary_expression "uVar19 == 0" identifier == number_literal) && (binary_expression "uVar29 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }" { (labeled_statement "LAB_00014cb0:\n          uVar12 = uVar12 - 1;" statement_identifier : (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;)) (expression_statement "(**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2490c)" * (pointer_expression "*(code **)(pcVar27 + 0x2490c)" * (cast_expression "(code **)(pcVar27 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2490c)" ( (binary_expression "pcVar27 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(puVar18,auStack_17c)" ( identifier , identifier ))) ;) (if_statement "if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }" if (parenthesized_expression "(uStack_1b0 != 0 || uStack_1a8 != 0)" ( (binary_expression "uStack_1b0 != 0 || uStack_1a8 != 0" (binary_expression "uStack_1b0 != 0" identifier != number_literal) || (binary_expression "uStack_1a8 != 0" identifier != number_literal)) )) (compound_statement "{\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }" { (do_statement "do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );" do (compound_statement "{\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            }" { (expression_statement "pcVar25 = *(code **)(pcVar27 + 0x24908);" (assignment_expression "pcVar25 = *(code **)(pcVar27 + 0x24908)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" identifier = identifier) ;) (while_statement "while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }" { (expression_statement "(*pcVar25)(puVar17,auStack_17c,auStack_17c);" (call_expression "(*pcVar25)(puVar17,auStack_17c,auStack_17c)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puVar17,auStack_17c,auStack_17c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,puVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar27 + 0x248b4)" * (pointer_expression "*(code **)(pcVar27 + 0x248b4)" * (cast_expression "(code **)(pcVar27 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248b4)" ( (binary_expression "pcVar27 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,auStack_17c,puVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = uVar29 + 1;" (assignment_expression "uVar12 = uVar29 + 1" identifier = (binary_expression "uVar29 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = (uVar12 < uVar29) + uVar19;" (assignment_expression "uVar19 = (uVar12 < uVar29) + uVar19" identifier = (binary_expression "(uVar12 < uVar29) + uVar19" (parenthesized_expression "(uVar12 < uVar29)" ( (binary_expression "uVar12 < uVar29" identifier < identifier) )) + identifier)) ;) (if_statement "if (uVar19 != uStack_1b0) break;" if (parenthesized_expression "(uVar19 != uStack_1b0)" ( (binary_expression "uVar19 != uStack_1b0" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "pcVar25 = *(code **)(pcVar27 + 0x24908);" (assignment_expression "pcVar25 = *(code **)(pcVar27 + 0x24908)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" identifier = identifier) ;) (if_statement "if (uVar12 == uStack_1a8) goto LAB_00014d60;" if (parenthesized_expression "(uVar12 == uStack_1a8)" ( (binary_expression "uVar12 == uStack_1a8" identifier == identifier) )) (goto_statement "goto LAB_00014d60;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" statement_identifier : (expression_statement "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2490c)" * (pointer_expression "*(code **)(pcVar27 + 0x2490c)" * (cast_expression "(code **)(pcVar27 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2490c)" ( (binary_expression "pcVar27 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(auStack_164,auStack_17c)" ( identifier , identifier ))) ;)) (expression_statement "uVar19 = uStack_1b0;" (assignment_expression "uVar19 = uStack_1b0" identifier = identifier) ;) (expression_statement "uVar29 = uStack_1a8;" (assignment_expression "uVar29 = uStack_1a8" identifier = identifier) ;) (expression_statement "uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;" (assignment_expression "uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1" identifier = (binary_expression "uStack_1a8 >> 0x1f | uStack_1b0 << 1" (binary_expression "uStack_1a8 >> 0x1f" identifier >> number_literal) | (binary_expression "uStack_1b0 << 1" identifier << number_literal))) ;) (expression_statement "uStack_1a8 = uStack_1a8 << 1;" (assignment_expression "uStack_1a8 = uStack_1a8 << 1" identifier = (binary_expression "uStack_1a8 << 1" identifier << number_literal)) ;) })) })) (expression_statement "(**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24838))" ( (pointer_expression "**(code **)(pcVar27 + 0x24838)" * (pointer_expression "*(code **)(pcVar27 + 0x24838)" * (cast_expression "(code **)(pcVar27 + 0x24838)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24838)" ( (binary_expression "pcVar27 + 0x24838" identifier + number_literal) ))))) )) (argument_list "(puVar17,pcVar20,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x24820))(puVar17,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" ( (pointer_expression "**(code **)(pcVar27 + 0x24820)" * (pointer_expression "*(code **)(pcVar27 + 0x24820)" * (cast_expression "(code **)(pcVar27 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24820)" ( (binary_expression "pcVar27 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(puVar17,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }" { (expression_statement "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2490c)" * (pointer_expression "*(code **)(pcVar27 + 0x2490c)" * (cast_expression "(code **)(pcVar27 + 0x2490c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2490c)" ( (binary_expression "pcVar27 + 0x2490c" identifier + number_literal) ))))) )) (argument_list "(auStack_164,auStack_17c)" ( identifier , identifier ))) ;) (expression_statement "uVar29 = uVar12 - 1;" (assignment_expression "uVar29 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);" (assignment_expression "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1)" identifier = (binary_expression "(uint)(uVar29 < uVar12) + (uVar19 - 1)" (call_expression "(uint)(uVar29 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 < uVar12)" ( (binary_expression "uVar29 < uVar12" identifier < identifier) ))) + (parenthesized_expression "(uVar19 - 1)" ( (binary_expression "uVar19 - 1" identifier - number_literal) )))) ;) (if_statement "if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;" if (parenthesized_expression "(uVar19 == 0 && uVar29 == 0)" ( (binary_expression "uVar19 == 0 && uVar29 == 0" (binary_expression "uVar19 == 0" identifier == number_literal) && (binary_expression "uVar29 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00014cb0;" goto statement_identifier ;)) (goto_statement "goto LAB_00014bb0;" goto statement_identifier ;) })) (do_statement "do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);" do (compound_statement "{\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      }" { (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" ( (pointer_expression "**(code **)(pcVar27 + 0x24908)" * (pointer_expression "*(code **)(pcVar27 + 0x24908)" * (cast_expression "(code **)(pcVar27 + 0x24908)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24908)" ( (binary_expression "pcVar27 + 0x24908" identifier + number_literal) ))))) )) (argument_list "(puVar17,auStack_164,auStack_164)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_164,puVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" ( (pointer_expression "**(code **)(pcVar27 + 0x248b4)" * (pointer_expression "*(code **)(pcVar27 + 0x248b4)" * (cast_expression "(code **)(pcVar27 + 0x248b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248b4)" ( (binary_expression "pcVar27 + 0x248b4" identifier + number_literal) ))))) )) (argument_list "(auStack_164,auStack_164,puVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);" (call_expression "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24928))" ( (pointer_expression "**(code **)(pcVar27 + 0x24928)" * (pointer_expression "*(code **)(pcVar27 + 0x24928)" * (cast_expression "(code **)(pcVar27 + 0x24928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24928)" ( (binary_expression "pcVar27 + 0x24928" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar18,auStack_164)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24838))" ( (pointer_expression "**(code **)(pcVar27 + 0x24838)" * (pointer_expression "*(code **)(pcVar27 + 0x24838)" * (cast_expression "(code **)(pcVar27 + 0x24838)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24838)" ( (binary_expression "pcVar27 + 0x24838" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar17,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x24820))(puVar17,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" ( (pointer_expression "**(code **)(pcVar27 + 0x24820)" * (pointer_expression "*(code **)(pcVar27 + 0x24820)" * (cast_expression "(code **)(pcVar27 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24820)" ( (binary_expression "pcVar27 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(puVar17,1)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) ;) (expression_statement "(**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);" (call_expression "(**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24914))" ( (pointer_expression "**(code **)(pcVar27 + 0x24914)" * (pointer_expression "*(code **)(pcVar27 + 0x24914)" * (cast_expression "(code **)(pcVar27 + 0x24914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24914)" ( (binary_expression "pcVar27 + 0x24914" identifier + number_literal) ))))) )) (argument_list "(iVar5,iVar5,puVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (*pcVar28)(puVar17);" (assignment_expression "iVar11 = (*pcVar28)(puVar17)" identifier = (call_expression "(*pcVar28)(puVar17)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(puVar17)" ( identifier )))) ;) (if_statement "if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }" { (if_statement "if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }" if (parenthesized_expression "(*(char *)(iVar14 + -0x6c28) != '\0')" ( (binary_expression "*(char *)(iVar14 + -0x6c28) != '\0'" (pointer_expression "*(char *)(iVar14 + -0x6c28)" * (cast_expression "(char *)(iVar14 + -0x6c28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x6c28)" ( (binary_expression "iVar14 + -0x6c28" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }" { (expression_statement "(**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));" (call_expression "(**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958))" (parenthesized_expression "(**(code **)(pcVar27 + 0x248f0))" ( (pointer_expression "**(code **)(pcVar27 + 0x248f0)" * (pointer_expression "*(code **)(pcVar27 + 0x248f0)" * (cast_expression "(code **)(pcVar27 + 0x248f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x248f0)" ( (binary_expression "pcVar27 + 0x248f0" identifier + number_literal) ))))) )) (argument_list "(iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958))" ( (binary_expression "iVar10 + 0x4c94" identifier + number_literal) , number_literal , number_literal , (pointer_expression "**(undefined4 **)(pcVar27 + 0x24958)" * (pointer_expression "*(undefined4 **)(pcVar27 + 0x24958)" * (cast_expression "(undefined4 **)(pcVar27 + 0x24958)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24958)" ( (binary_expression "pcVar27 + 0x24958" identifier + number_literal) ))))) ))) ;) })) (expression_statement "FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);" (call_expression "FUN_00014a38(puVar17,(int)puVar15 + 1,param_3)" identifier (argument_list "(puVar17,(int)puVar15 + 1,param_3)" ( identifier , (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier ))) ;) (expression_statement "iVar11 = (*pcVar28)(iVar5);" (assignment_expression "iVar11 = (*pcVar28)(iVar5)" identifier = (call_expression "(*pcVar28)(iVar5)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar5)" ( identifier )))) ;) }) (else_clause "else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" else (compound_statement "{\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" { (expression_statement "(*(code *)(iVar9 + 0x365c))(param_3,puVar17);" (call_expression "(*(code *)(iVar9 + 0x365c))(param_3,puVar17)" (parenthesized_expression "(*(code *)(iVar9 + 0x365c))" ( (pointer_expression "*(code *)(iVar9 + 0x365c)" * (cast_expression "(code *)(iVar9 + 0x365c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x365c)" ( (binary_expression "iVar9 + 0x365c" identifier + number_literal) )))) )) (argument_list "(param_3,puVar17)" ( identifier , identifier ))) ;) (expression_statement "iVar11 = (*pcVar28)(iVar5);" (assignment_expression "iVar11 = (*pcVar28)(iVar5)" identifier = (call_expression "(*pcVar28)(iVar5)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar5)" ( identifier )))) ;) }))) (if_statement "if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }" { (expression_statement "FUN_0001365c(param_3,iVar5);" (call_expression "FUN_0001365c(param_3,iVar5)" identifier (argument_list "(param_3,iVar5)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_17c,auStack_17c,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(puVar18,puVar18,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" ( (pointer_expression "**(code **)(pcVar27 + 0x24864)" * (pointer_expression "*(code **)(pcVar27 + 0x24864)" * (cast_expression "(code **)(pcVar27 + 0x24864)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24864)" ( (binary_expression "pcVar27 + 0x24864" identifier + number_literal) ))))) )) (argument_list "(auStack_164,auStack_164,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x24820))(iVar5,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" ( (pointer_expression "**(code **)(pcVar27 + 0x24820)" * (pointer_expression "*(code **)(pcVar27 + 0x24820)" * (cast_expression "(code **)(pcVar27 + 0x24820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24820)" ( (binary_expression "pcVar27 + 0x24820" identifier + number_literal) ))))) )) (argument_list "(iVar5,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" identifier = identifier) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;)) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x2494c);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x2494c)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x2494c)" * (cast_expression "(code **)(pcVar27 + 0x2494c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2494c)" ( (binary_expression "pcVar27 + 0x2494c" identifier + number_literal) ))))) ;) }))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar28 = (code *)*piVar8;" (assignment_expression "pcVar28 = (code *)*piVar8" identifier = (cast_expression "(code *)*piVar8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }" if (parenthesized_expression "(pcStack_134 == pcVar28)" ( (binary_expression "pcStack_134 == pcVar28" identifier == identifier) )) (compound_statement "{\n    return pcVar28;\n  }" { (return_statement "return pcVar28;" return identifier ;) })) (expression_statement "(**(code **)(pcVar27 + 0x24918))();" (call_expression "(**(code **)(pcVar27 + 0x24918))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x24918))" ( (pointer_expression "**(code **)(pcVar27 + 0x24918)" * (pointer_expression "*(code **)(pcVar27 + 0x24918)" * (cast_expression "(code **)(pcVar27 + 0x24918)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x24918)" ( (binary_expression "pcVar27 + 0x24918" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar27 = pcVar27 + 0x2c698;" (assignment_expression "pcVar27 = pcVar27 + 0x2c698" identifier = (binary_expression "pcVar27 + 0x2c698" identifier + number_literal)) ;) (expression_statement "pcVar28 = pcVar20;" (assignment_expression "pcVar28 = pcVar20" identifier = identifier) ;) (expression_statement "puVar16 = puVar21;" (assignment_expression "puVar16 = puVar21" identifier = identifier) ;) (if_statement "if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;" if (parenthesized_expression "(((uint)puVar18 & 1) == 0)" ( (binary_expression "((uint)puVar18 & 1) == 0" (parenthesized_expression "((uint)puVar18 & 1)" ( (binary_expression "(uint)puVar18 & 1" (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000152f0;" goto statement_identifier ;)) (do_statement "do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );" do (compound_statement "{\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  }" { (expression_statement "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" identifier = (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) ;) (expression_statement "puStack_1bc = puVar21;" (assignment_expression "puStack_1bc = puVar21" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;" do (compound_statement "{\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    }" { (while_statement "while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }" { (expression_statement "uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);" (assignment_expression "uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" identifier = (call_expression "(uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" ( (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20" (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16)" (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);" (assignment_expression "iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" identifier = (cast_expression "(int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" ( (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20" (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "uVar19 = uVar29 + (uint)uVar1 * 2;" (assignment_expression "uVar19 = uVar29 + (uint)uVar1 * 2" identifier = (binary_expression "uVar29 + (uint)uVar1 * 2" identifier + (binary_expression "(uint)uVar1 * 2" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));" (assignment_expression "puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" identifier = (cast_expression "(undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" ( (binary_expression "(uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1)" (call_expression "(uint)(uVar19 < uVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar29)" ( (binary_expression "uVar19 < uVar29" identifier < identifier) ))) + (parenthesized_expression "((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1)" ( (binary_expression "(uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1" (binary_expression "(uint)uVar1 >> 0x1f" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(int)(uVar1 >> 0x20) << 1" (cast_expression "(int)(uVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))) << number_literal)) ))) )))) ;) (if_statement "if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }" if (parenthesized_expression "(CONCAT44(puVar21,uVar19) < uVar1)" ( (binary_expression "CONCAT44(puVar21,uVar19) < uVar1" (call_expression "CONCAT44(puVar21,uVar19)" identifier (argument_list "(puVar21,uVar19)" ( identifier , identifier ))) < identifier) )) (compound_statement "{\n          iVar5 = iVar5 + 1;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;" (assignment_expression "uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" identifier = (binary_expression "(ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" (parenthesized_expression "(ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff)" ( (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff" (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16)" (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) & number_literal) )) * (cast_expression "(ulonglong)uStack_1c4" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));" (assignment_expression "puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" identifier = (binary_expression "puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" identifier + (cast_expression "(int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar28) * ZEXT48(pcVar28))" ( (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) ))))) ;) (expression_statement "uVar29 = (uint)(puVar23 < puVar21) + iVar5;" (assignment_expression "uVar29 = (uint)(puVar23 < puVar21) + iVar5" identifier = (binary_expression "(uint)(puVar23 < puVar21) + iVar5" (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar21)" ( (binary_expression "puVar23 < puVar21" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);" (assignment_expression "uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20)" identifier = (binary_expression "uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20)" (binary_expression "uVar19 * uStack_1c4" identifier * identifier) + (cast_expression "(int)(uVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);" (assignment_expression "uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164)" identifier = (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_164)" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStack_164)" identifier (argument_list "(auStack_164)" ( identifier ))))) ;) (expression_statement "lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);" (assignment_expression "lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c)" identifier = (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_17c)" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStack_17c)" identifier (argument_list "(auStack_17c)" ( identifier ))))) ;) (expression_statement "iVar5 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);" (assignment_expression "uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" identifier = (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2" (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff)" (call_expression "ZEXT48(auStack_17c)" identifier (argument_list "(auStack_17c)" ( identifier ))) * (parenthesized_expression "(uVar1 & 0xffffffff)" ( (binary_expression "uVar1 & 0xffffffff" identifier & number_literal) ))) + identifier) + (parenthesized_expression "((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" ( (binary_expression "(uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20" (binary_expression "(uVar1 & 0xffffffff) * ZEXT48(auStack_164)" (parenthesized_expression "(uVar1 & 0xffffffff)" ( (binary_expression "uVar1 & 0xffffffff" identifier & number_literal) )) * (call_expression "ZEXT48(auStack_164)" identifier (argument_list "(auStack_164)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar21 = (undefined1 *)(uVar1 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar1 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar1 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }" if (parenthesized_expression "(uVar1 < uVar2)" ( (binary_expression "uVar1 < uVar2" identifier < identifier) )) (compound_statement "{\n          iVar5 = iVar5 + 1;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar22 = puVar21 + (int)lVar3;" (assignment_expression "puVar22 = puVar21 + (int)lVar3" identifier = (binary_expression "puVar21 + (int)lVar3" identifier + (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar19 = (uint)(puVar22 < puVar21) + iVar5;" (assignment_expression "uVar19 = (uint)(puVar22 < puVar21) + iVar5" identifier = (binary_expression "(uint)(puVar22 < puVar21) + iVar5" (call_expression "(uint)(puVar22 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar22 < puVar21)" ( (binary_expression "puVar22 < puVar21" identifier < identifier) ))) + identifier)) ;) (expression_statement "puVar21 = puVar23 + -(int)puVar22;" (assignment_expression "puVar21 = puVar23 + -(int)puVar22" identifier = (binary_expression "puVar23 + -(int)puVar22" identifier + (unary_expression "-(int)puVar22" - (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));" (assignment_expression "pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" identifier = (cast_expression "(code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" ( (binary_expression "(uVar29 - uVar19) - (uint)(puVar23 < puVar21)" (parenthesized_expression "(uVar29 - uVar19)" ( (binary_expression "uVar29 - uVar19" identifier - identifier) )) - (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar21)" ( (binary_expression "puVar23 < puVar21" identifier < identifier) )))) )))) ;) (if_statement "if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }" if (parenthesized_expression "((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22))))" ( (binary_expression "(uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))" (parenthesized_expression "(uVar29 < uVar19)" ( (binary_expression "uVar29 < uVar19" identifier < identifier) )) || (parenthesized_expression "((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))" ( (parenthesized_expression "(puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22))" ( (comma_expression "puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)" (assignment_expression "puVar16 = puVar21" identifier = identifier) , (binary_expression "uVar19 == uVar29 && (puVar23 < puVar22)" (binary_expression "uVar19 == uVar29" identifier == identifier) && (parenthesized_expression "(puVar23 < puVar22)" ( (binary_expression "puVar23 < puVar22" identifier < identifier) )))) )) ))) )) (compound_statement "{\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }" { (expression_statement "puVar16 = puVar21 + (int)auStack_164;" (assignment_expression "puVar16 = puVar21 + (int)auStack_164" identifier = (binary_expression "puVar21 + (int)auStack_164" identifier + (cast_expression "(int)auStack_164" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);" (assignment_expression "pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21)" identifier = (binary_expression "pcVar28 + (int)auStack_17c + (puVar16 < puVar21)" (binary_expression "pcVar28 + (int)auStack_17c" identifier + (cast_expression "(int)auStack_17c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(puVar16 < puVar21)" ( (binary_expression "puVar16 < puVar21" identifier < identifier) )))) ;) })) (expression_statement "uVar19 = (uint)puVar18 >> 1;" (assignment_expression "uVar19 = (uint)puVar18 >> 1" identifier = (binary_expression "(uint)puVar18 >> 1" (cast_expression "(uint)puVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);" (assignment_expression "puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19)" identifier = (cast_expression "(undefined1 *)((int)puVar17 << 0x1f | uVar19)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 << 0x1f | uVar19)" ( (binary_expression "(int)puVar17 << 0x1f | uVar19" (binary_expression "(int)puVar17 << 0x1f" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) | identifier) )))) ;) (expression_statement "puVar17 = (undefined1 *)((uint)puVar17 >> 1);" (assignment_expression "puVar17 = (undefined1 *)((uint)puVar17 >> 1)" identifier = (cast_expression "(undefined1 *)((uint)puVar17 >> 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar17 >> 1)" ( (binary_expression "(uint)puVar17 >> 1" (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "pcVar27 = pcVar20;" (assignment_expression "pcVar27 = pcVar20" identifier = identifier) ;) (if_statement "if ((uVar19 & 1) != 0) break;" if (parenthesized_expression "((uVar19 & 1) != 0)" ( (binary_expression "(uVar19 & 1) != 0" (parenthesized_expression "(uVar19 & 1)" ( (binary_expression "uVar19 & 1" identifier & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000152f0:\n        pcVar20 = pcVar27;" statement_identifier : (expression_statement "pcVar20 = pcVar27;" (assignment_expression "pcVar20 = pcVar27" identifier = identifier) ;)) (expression_statement "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" identifier = (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) ;) (if_statement "if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }" if (parenthesized_expression "(puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0)" ( (binary_expression "puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0" (binary_expression "puVar17 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "puVar18 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          return pcVar20;\n        }" { (return_statement "return pcVar20;" return identifier ;) })) })) (expression_statement "iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);" (assignment_expression "iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" identifier = (cast_expression "(int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" ( (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20" (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) * (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);" (assignment_expression "uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" identifier = (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc)" (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) + (binary_expression "ZEXT48(pcVar28) * ZEXT48(puStack_1bc)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(puStack_1bc)" identifier (argument_list "(puStack_1bc)" ( identifier ))))) + (parenthesized_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" ( (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20" (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16)" (call_expression "ZEXT48(puStack_1bc)" identifier (argument_list "(puStack_1bc)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar21 = (undefined1 *)(uVar1 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar1 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar1 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }" if (parenthesized_expression "(uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16))" ( (binary_expression "uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)" identifier < (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) )) (compound_statement "{\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;" (assignment_expression "uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" identifier = (binary_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" (parenthesized_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff)" ( (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff" (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16)" (call_expression "ZEXT48(puStack_1bc)" identifier (argument_list "(puStack_1bc)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier )))) & number_literal) )) * (cast_expression "(ulonglong)uStack_1c4" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));" (assignment_expression "puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" identifier = (binary_expression "puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" identifier + (cast_expression "(int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pcVar20) * ZEXT48(pcVar28))" ( (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) * (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier )))) ))))) ;) (expression_statement "uVar29 = (uint)(puVar23 < puVar21) + iVar5;" (assignment_expression "uVar29 = (uint)(puVar23 < puVar21) + iVar5" identifier = (binary_expression "(uint)(puVar23 < puVar21) + iVar5" (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar21)" ( (binary_expression "puVar23 < puVar21" identifier < identifier) ))) + identifier)) ;) (expression_statement "uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);" (assignment_expression "uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20)" identifier = (binary_expression "(int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20)" (binary_expression "(int)uVar1 * uStack_1c4" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) + (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);" (assignment_expression "uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164)" identifier = (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_164)" (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (call_expression "ZEXT48(auStack_164)" identifier (argument_list "(auStack_164)" ( identifier ))))) ;) (expression_statement "lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;" (assignment_expression "lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19" identifier = (binary_expression "ZEXT48(auStack_17c) * (ulonglong)uVar19" (call_expression "ZEXT48(auStack_17c)" identifier (argument_list "(auStack_17c)" ( identifier ))) * (cast_expression "(ulonglong)uVar19" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "iVar5 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);" (assignment_expression "uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" identifier = (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1" (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff)" (call_expression "ZEXT48(auStack_17c)" identifier (argument_list "(auStack_17c)" ( identifier ))) * (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) ))) + identifier) + (parenthesized_expression "((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" ( (binary_expression "(uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20" (binary_expression "(uVar2 & 0xffffffff) * ZEXT48(auStack_164)" (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )) * (call_expression "ZEXT48(auStack_164)" identifier (argument_list "(auStack_164)" ( identifier )))) >> number_literal) )))) ;) (expression_statement "puVar21 = (undefined1 *)(uVar2 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar2 >> 0x20)" identifier = (cast_expression "(undefined1 *)(uVar2 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }" if (parenthesized_expression "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) )) (compound_statement "{\n        iVar5 = iVar5 + 1;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar22 = puVar21 + (int)lVar3;" (assignment_expression "puVar22 = puVar21 + (int)lVar3" identifier = (binary_expression "puVar21 + (int)lVar3" identifier + (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar19 = (uint)(puVar22 < puVar21) + iVar5;" (assignment_expression "uVar19 = (uint)(puVar22 < puVar21) + iVar5" identifier = (binary_expression "(uint)(puVar22 < puVar21) + iVar5" (call_expression "(uint)(puVar22 < puVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar22 < puVar21)" ( (binary_expression "puVar22 < puVar21" identifier < identifier) ))) + identifier)) ;) (expression_statement "puStack_1bc = puVar23 + -(int)puVar22;" (assignment_expression "puStack_1bc = puVar23 + -(int)puVar22" identifier = (binary_expression "puVar23 + -(int)puVar22" identifier + (unary_expression "-(int)puVar22" - (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));" (assignment_expression "pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" identifier = (cast_expression "(code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" ( (binary_expression "(uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc)" (parenthesized_expression "(uVar29 - uVar19)" ( (binary_expression "uVar29 - uVar19" identifier - identifier) )) - (call_expression "(uint)(puVar23 < puStack_1bc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puStack_1bc)" ( (binary_expression "puVar23 < puStack_1bc" identifier < identifier) )))) )))) ;) }) while (parenthesized_expression "((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))" ( (binary_expression "(uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)))" (parenthesized_expression "(uVar19 <= uVar29)" ( (binary_expression "uVar19 <= uVar29" identifier <= identifier) )) && (parenthesized_expression "((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)))" ( (parenthesized_expression "(uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))" ( (comma_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" identifier = (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) * (call_expression "ZEXT48(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) , (binary_expression "uVar19 != uVar29 || (puVar22 <= puVar23)" (binary_expression "uVar19 != uVar29" identifier != identifier) || (parenthesized_expression "(puVar22 <= puVar23)" ( (binary_expression "puVar22 <= puVar23" identifier <= identifier) )))) )) ))) )) ;) (expression_statement "puVar21 = puStack_1bc + (int)auStack_164;" (assignment_expression "puVar21 = puStack_1bc + (int)auStack_164" identifier = (binary_expression "puStack_1bc + (int)auStack_164" identifier + (cast_expression "(int)auStack_164" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);" (assignment_expression "pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc)" identifier = (binary_expression "pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc)" (binary_expression "pcVar20 + (int)auStack_17c" identifier + (cast_expression "(int)auStack_17c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(puVar21 < puStack_1bc)" ( (binary_expression "puVar21 < puStack_1bc" identifier < identifier) )))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) }) while (parenthesized_expression ( BOOL )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) })) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (break_statement break ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) << LIT)) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) & LIT) )) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * (call_expression IDENT (argument_list ( IDENT )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression IDENT < IDENT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression IDENT < IDENT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (return_statement return IDENT ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) + (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT ))))) + (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) & LIT) )) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * (call_expression IDENT (argument_list ( IDENT )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) )))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) )))) )) ))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression IDENT < IDENT) )))) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "code * FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int iVar5;\n  byte *pbVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  code *pcVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  undefined4 *unaff_s0;\n  undefined4 *unaff_s1;\n  undefined4 *unaff_s2;\n  undefined1 *puVar23;\n  undefined4 *unaff_s3;\n  undefined *unaff_s5;\n  undefined *unaff_s6;\n  undefined1 *unaff_s7;\n  undefined *puVar24;\n  code *pcVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  uint uVar29;\n  uint uStack_1c4;\n  undefined1 *puStack_1bc;\n  uint uStack_1b0;\n  uint uStack_1a8;\n  undefined1 auStack_17c [12];\n  undefined1 auStack_170 [12];\n  undefined1 auStack_164 [12];\n  undefined1 auStack_158 [12];\n  undefined1 auStack_14c [12];\n  undefined1 auStack_140 [12];\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  undefined4 *puStack_12c;\n  undefined4 *puStack_128;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined *puStack_11c;\n  undefined *puStack_118;\n  undefined1 *puStack_114;\n  undefined *puStack_110;\n  code *pcStack_10c;\n  undefined *puStack_f8;\n  undefined *puStack_f4;\n  undefined *puStack_f0;\n  code *pcStack_e4;\n  undefined4 *puStack_e0;\n  code *pcStack_dc;\n  int *piStack_d8;\n  int *piStack_d4;\n  int aiStack_d0 [2];\n  undefined *puStack_c8;\n  undefined auStack_c4 [12];\n  undefined4 auStack_b8 [3];\n  undefined4 auStack_ac [3];\n  undefined4 auStack_a0 [3];\n  int iStack_94;\n  undefined4 *puStack_90;\n  undefined4 *puStack_8c;\n  undefined4 *puStack_88;\n  undefined4 *puStack_84;\n  undefined *puStack_80;\n  undefined *puStack_7c;\n  undefined *puStack_78;\n  undefined1 *puStack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  undefined1 auStack_44 [12];\n  undefined1 auStack_38 [12];\n  code *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = param_1[1];\n  param_2[1] = 0;\n  param_2[2] = 0;\n  local_2c = *(code **)puVar4;\n  *param_2 = 0;\n  puVar26 = PTR_DAT_000390f8;\n  puVar13 = param_1;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }\n  if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }\n  pcVar27 = FUN_00014704;\n  puVar24 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  puStack_f0 = puVar24 + 0x2c9cc;\n  piStack_d8 = *(int **)(puVar24 + 0x24c64);\n  puVar15 = (undefined4 *)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar26;\n  iStack_94 = *piStack_d8;\n  puStack_90 = unaff_s0;\n  puStack_8c = unaff_s1;\n  puStack_88 = unaff_s2;\n  puStack_84 = unaff_s3;\n  puStack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  pcStack_6c = pcVar27;\n  iVar5 = (**(code **)(puVar24 + 0x24b54))();\n  if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }\n  pcVar27 = *(code **)(puStack_f0 + -0x7d80);\n  pcVar28 = FUN_00014a38;\n  iVar5 = iStack_94;\n  (*pcVar27)();\n  piVar8 = *(int **)(pcVar27 + 0x24930);\n  iVar14 = *(int *)(pcVar27 + 0x246c0);\n  pcStack_134 = (code *)*piVar8;\n  puStack_130 = unaff_s0;\n  puStack_12c = unaff_s1;\n  puStack_128 = unaff_s2;\n  puStack_124 = unaff_s3;\n  puStack_120 = puVar13;\n  puStack_11c = unaff_s5;\n  puStack_118 = unaff_s6;\n  puStack_114 = unaff_s7;\n  puStack_110 = puVar26;\n  pcStack_10c = pcVar28;\n  if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }\n  puVar21 = auStack_140;\n  puVar17 = auStack_14c;\n  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);\n  puVar18 = auStack_170;\n  pcVar20 = (code *)auStack_158;\n  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);\n  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);\n  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);\n  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);\n  uStack_1a8 = 1;\n  uStack_1b0 = 0;\n  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);\n  iVar9 = *(int *)(pcVar27 + 0x246cc);\n  iVar10 = *(int *)(pcVar27 + 0x246d0);\n  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n  uVar19 = 0;\n  uVar29 = 1;\n  if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  (*pcVar28)();\n  pcVar28 = (code *)*piVar8;\n  if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }\n  (**(code **)(pcVar27 + 0x24918))();\n  pcVar27 = pcVar27 + 0x2c698;\n  pcVar28 = pcVar20;\n  puVar16 = puVar21;\n  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );\n}" (type_identifier "code") (pointer_declarator "* FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" (* "*") (function_declarator "FUN_00014424(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" (identifier "FUN_00014424") (parameter_list "(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  int iVar5;\n  byte *pbVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  code *pcVar20;\n  undefined1 *puVar21;\n  undefined1 *puVar22;\n  undefined4 *unaff_s0;\n  undefined4 *unaff_s1;\n  undefined4 *unaff_s2;\n  undefined1 *puVar23;\n  undefined4 *unaff_s3;\n  undefined *unaff_s5;\n  undefined *unaff_s6;\n  undefined1 *unaff_s7;\n  undefined *puVar24;\n  code *pcVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  code *pcVar28;\n  uint uVar29;\n  uint uStack_1c4;\n  undefined1 *puStack_1bc;\n  uint uStack_1b0;\n  uint uStack_1a8;\n  undefined1 auStack_17c [12];\n  undefined1 auStack_170 [12];\n  undefined1 auStack_164 [12];\n  undefined1 auStack_158 [12];\n  undefined1 auStack_14c [12];\n  undefined1 auStack_140 [12];\n  code *pcStack_134;\n  undefined4 *puStack_130;\n  undefined4 *puStack_12c;\n  undefined4 *puStack_128;\n  undefined4 *puStack_124;\n  undefined4 *puStack_120;\n  undefined *puStack_11c;\n  undefined *puStack_118;\n  undefined1 *puStack_114;\n  undefined *puStack_110;\n  code *pcStack_10c;\n  undefined *puStack_f8;\n  undefined *puStack_f4;\n  undefined *puStack_f0;\n  code *pcStack_e4;\n  undefined4 *puStack_e0;\n  code *pcStack_dc;\n  int *piStack_d8;\n  int *piStack_d4;\n  int aiStack_d0 [2];\n  undefined *puStack_c8;\n  undefined auStack_c4 [12];\n  undefined4 auStack_b8 [3];\n  undefined4 auStack_ac [3];\n  undefined4 auStack_a0 [3];\n  int iStack_94;\n  undefined4 *puStack_90;\n  undefined4 *puStack_8c;\n  undefined4 *puStack_88;\n  undefined4 *puStack_84;\n  undefined *puStack_80;\n  undefined *puStack_7c;\n  undefined *puStack_78;\n  undefined1 *puStack_74;\n  undefined *puStack_70;\n  code *pcStack_6c;\n  undefined1 auStack_44 [12];\n  undefined1 auStack_38 [12];\n  code *local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_00039368;\n  iVar5 = param_1[1];\n  param_2[1] = 0;\n  param_2[2] = 0;\n  local_2c = *(code **)puVar4;\n  *param_2 = 0;\n  puVar26 = PTR_DAT_000390f8;\n  puVar13 = param_1;\n  if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }\n  if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }\n  pcVar27 = FUN_00014704;\n  puVar24 = PTR___stack_chk_fail_00039350;\n  (*(code *)PTR___stack_chk_fail_00039350)();\n  puStack_f0 = puVar24 + 0x2c9cc;\n  piStack_d8 = *(int **)(puVar24 + 0x24c64);\n  puVar15 = (undefined4 *)0x1;\n  puStack_80 = puVar4;\n  puStack_70 = puVar26;\n  iStack_94 = *piStack_d8;\n  puStack_90 = unaff_s0;\n  puStack_8c = unaff_s1;\n  puStack_88 = unaff_s2;\n  puStack_84 = unaff_s3;\n  puStack_7c = unaff_s5;\n  puStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  pcStack_6c = pcVar27;\n  iVar5 = (**(code **)(puVar24 + 0x24b54))();\n  if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }\n  if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }\n  pcVar27 = *(code **)(puStack_f0 + -0x7d80);\n  pcVar28 = FUN_00014a38;\n  iVar5 = iStack_94;\n  (*pcVar27)();\n  piVar8 = *(int **)(pcVar27 + 0x24930);\n  iVar14 = *(int *)(pcVar27 + 0x246c0);\n  pcStack_134 = (code *)*piVar8;\n  puStack_130 = unaff_s0;\n  puStack_12c = unaff_s1;\n  puStack_128 = unaff_s2;\n  puStack_124 = unaff_s3;\n  puStack_120 = puVar13;\n  puStack_11c = unaff_s5;\n  puStack_118 = unaff_s6;\n  puStack_114 = unaff_s7;\n  puStack_110 = puVar26;\n  pcStack_10c = pcVar28;\n  if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }\n  puVar21 = auStack_140;\n  puVar17 = auStack_14c;\n  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);\n  puVar18 = auStack_170;\n  pcVar20 = (code *)auStack_158;\n  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);\n  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);\n  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);\n  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);\n  uStack_1a8 = 1;\n  uStack_1b0 = 0;\n  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);\n  iVar9 = *(int *)(pcVar27 + 0x246cc);\n  iVar10 = *(int *)(pcVar27 + 0x246d0);\n  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n  uVar19 = 0;\n  uVar29 = 1;\n  if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  (*pcVar28)();\n  pcVar28 = (code *)*piVar8;\n  if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }\n  (**(code **)(pcVar27 + 0x24918))();\n  pcVar27 = pcVar27 + 0x2c698;\n  pcVar28 = pcVar20;\n  puVar16 = puVar21;\n  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;\n  do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );\n}" ({ "{") (declaration "ulonglong uVar1;" (type_identifier "ulonglong") (identifier "uVar1") (; ";")) (declaration "ulonglong uVar2;" (type_identifier "ulonglong") (identifier "uVar2") (; ";")) (declaration "longlong lVar3;" (type_identifier "longlong") (identifier "lVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined1 *puVar22;" (type_identifier "undefined1") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined4 *unaff_s0;" (type_identifier "undefined4") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "undefined4 *unaff_s1;" (type_identifier "undefined4") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "undefined4 *unaff_s2;" (type_identifier "undefined4") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "undefined1 *puVar23;" (type_identifier "undefined1") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined4 *unaff_s3;" (type_identifier "undefined4") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "undefined *unaff_s5;" (type_identifier "undefined") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined *unaff_s6;" (type_identifier "undefined") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "undefined1 *unaff_s7;" (type_identifier "undefined1") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "undefined *puVar26;" (type_identifier "undefined") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "code *pcVar27;" (type_identifier "code") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "uint uStack_1c4;" (type_identifier "uint") (identifier "uStack_1c4") (; ";")) (declaration "undefined1 *puStack_1bc;" (type_identifier "undefined1") (pointer_declarator "*puStack_1bc" (* "*") (identifier "puStack_1bc")) (; ";")) (declaration "uint uStack_1b0;" (type_identifier "uint") (identifier "uStack_1b0") (; ";")) (declaration "uint uStack_1a8;" (type_identifier "uint") (identifier "uStack_1a8") (; ";")) (declaration "undefined1 auStack_17c [12];" (type_identifier "undefined1") (array_declarator "auStack_17c [12]" (identifier "auStack_17c") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined1 auStack_170 [12];" (type_identifier "undefined1") (array_declarator "auStack_170 [12]" (identifier "auStack_170") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined1 auStack_164 [12];" (type_identifier "undefined1") (array_declarator "auStack_164 [12]" (identifier "auStack_164") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined1 auStack_158 [12];" (type_identifier "undefined1") (array_declarator "auStack_158 [12]" (identifier "auStack_158") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined1 auStack_14c [12];" (type_identifier "undefined1") (array_declarator "auStack_14c [12]" (identifier "auStack_14c") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined1 auStack_140 [12];" (type_identifier "undefined1") (array_declarator "auStack_140 [12]" (identifier "auStack_140") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "code *pcStack_134;" (type_identifier "code") (pointer_declarator "*pcStack_134" (* "*") (identifier "pcStack_134")) (; ";")) (declaration "undefined4 *puStack_130;" (type_identifier "undefined4") (pointer_declarator "*puStack_130" (* "*") (identifier "puStack_130")) (; ";")) (declaration "undefined4 *puStack_12c;" (type_identifier "undefined4") (pointer_declarator "*puStack_12c" (* "*") (identifier "puStack_12c")) (; ";")) (declaration "undefined4 *puStack_128;" (type_identifier "undefined4") (pointer_declarator "*puStack_128" (* "*") (identifier "puStack_128")) (; ";")) (declaration "undefined4 *puStack_124;" (type_identifier "undefined4") (pointer_declarator "*puStack_124" (* "*") (identifier "puStack_124")) (; ";")) (declaration "undefined4 *puStack_120;" (type_identifier "undefined4") (pointer_declarator "*puStack_120" (* "*") (identifier "puStack_120")) (; ";")) (declaration "undefined *puStack_11c;" (type_identifier "undefined") (pointer_declarator "*puStack_11c" (* "*") (identifier "puStack_11c")) (; ";")) (declaration "undefined *puStack_118;" (type_identifier "undefined") (pointer_declarator "*puStack_118" (* "*") (identifier "puStack_118")) (; ";")) (declaration "undefined1 *puStack_114;" (type_identifier "undefined1") (pointer_declarator "*puStack_114" (* "*") (identifier "puStack_114")) (; ";")) (declaration "undefined *puStack_110;" (type_identifier "undefined") (pointer_declarator "*puStack_110" (* "*") (identifier "puStack_110")) (; ";")) (declaration "code *pcStack_10c;" (type_identifier "code") (pointer_declarator "*pcStack_10c" (* "*") (identifier "pcStack_10c")) (; ";")) (declaration "undefined *puStack_f8;" (type_identifier "undefined") (pointer_declarator "*puStack_f8" (* "*") (identifier "puStack_f8")) (; ";")) (declaration "undefined *puStack_f4;" (type_identifier "undefined") (pointer_declarator "*puStack_f4" (* "*") (identifier "puStack_f4")) (; ";")) (declaration "undefined *puStack_f0;" (type_identifier "undefined") (pointer_declarator "*puStack_f0" (* "*") (identifier "puStack_f0")) (; ";")) (declaration "code *pcStack_e4;" (type_identifier "code") (pointer_declarator "*pcStack_e4" (* "*") (identifier "pcStack_e4")) (; ";")) (declaration "undefined4 *puStack_e0;" (type_identifier "undefined4") (pointer_declarator "*puStack_e0" (* "*") (identifier "puStack_e0")) (; ";")) (declaration "code *pcStack_dc;" (type_identifier "code") (pointer_declarator "*pcStack_dc" (* "*") (identifier "pcStack_dc")) (; ";")) (declaration "int *piStack_d8;" (primitive_type "int") (pointer_declarator "*piStack_d8" (* "*") (identifier "piStack_d8")) (; ";")) (declaration "int *piStack_d4;" (primitive_type "int") (pointer_declarator "*piStack_d4" (* "*") (identifier "piStack_d4")) (; ";")) (declaration "int aiStack_d0 [2];" (primitive_type "int") (array_declarator "aiStack_d0 [2]" (identifier "aiStack_d0") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined *puStack_c8;" (type_identifier "undefined") (pointer_declarator "*puStack_c8" (* "*") (identifier "puStack_c8")) (; ";")) (declaration "undefined auStack_c4 [12];" (type_identifier "undefined") (array_declarator "auStack_c4 [12]" (identifier "auStack_c4") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined4 auStack_b8 [3];" (type_identifier "undefined4") (array_declarator "auStack_b8 [3]" (identifier "auStack_b8") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 auStack_ac [3];" (type_identifier "undefined4") (array_declarator "auStack_ac [3]" (identifier "auStack_ac") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 auStack_a0 [3];" (type_identifier "undefined4") (array_declarator "auStack_a0 [3]" (identifier "auStack_a0") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "int iStack_94;" (primitive_type "int") (identifier "iStack_94") (; ";")) (declaration "undefined4 *puStack_90;" (type_identifier "undefined4") (pointer_declarator "*puStack_90" (* "*") (identifier "puStack_90")) (; ";")) (declaration "undefined4 *puStack_8c;" (type_identifier "undefined4") (pointer_declarator "*puStack_8c" (* "*") (identifier "puStack_8c")) (; ";")) (declaration "undefined4 *puStack_88;" (type_identifier "undefined4") (pointer_declarator "*puStack_88" (* "*") (identifier "puStack_88")) (; ";")) (declaration "undefined4 *puStack_84;" (type_identifier "undefined4") (pointer_declarator "*puStack_84" (* "*") (identifier "puStack_84")) (; ";")) (declaration "undefined *puStack_80;" (type_identifier "undefined") (pointer_declarator "*puStack_80" (* "*") (identifier "puStack_80")) (; ";")) (declaration "undefined *puStack_7c;" (type_identifier "undefined") (pointer_declarator "*puStack_7c" (* "*") (identifier "puStack_7c")) (; ";")) (declaration "undefined *puStack_78;" (type_identifier "undefined") (pointer_declarator "*puStack_78" (* "*") (identifier "puStack_78")) (; ";")) (declaration "undefined1 *puStack_74;" (type_identifier "undefined1") (pointer_declarator "*puStack_74" (* "*") (identifier "puStack_74")) (; ";")) (declaration "undefined *puStack_70;" (type_identifier "undefined") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "code *pcStack_6c;" (type_identifier "code") (pointer_declarator "*pcStack_6c" (* "*") (identifier "pcStack_6c")) (; ";")) (declaration "undefined1 auStack_44 [12];" (type_identifier "undefined1") (array_declarator "auStack_44 [12]" (identifier "auStack_44") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined1 auStack_38 [12];" (type_identifier "undefined1") (array_declarator "auStack_38 [12]" (identifier "auStack_38") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "code *local_2c;" (type_identifier "code") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_00039368;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00039368" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_00039368")) (; ";")) (expression_statement "iVar5 = param_1[1];" (assignment_expression "iVar5 = param_1[1]" (identifier "iVar5") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = *(code **)puVar4;" (assignment_expression "local_2c = *(code **)puVar4" (identifier "local_2c") (= "=") (pointer_expression "*(code **)puVar4" (* "*") (cast_expression "(code **)puVar4" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26 = PTR_DAT_000390f8;" (assignment_expression "puVar26 = PTR_DAT_000390f8" (identifier "puVar26") (= "=") (identifier "PTR_DAT_000390f8")) (; ";")) (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" (identifier "puVar13") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (iVar5 != 0) {\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }\n    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);\n    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);\n    param_3 = puVar15;\n    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    unaff_s2 = (undefined4 *)0x1;\n    unaff_s1 = (undefined4 *)0x3;\n    unaff_s7 = auStack_38;\n    unaff_s6 = PTR_00039104 + 0x365c;\n    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;\n    do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);\nLAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);\n    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);\n    unaff_s0 = param_1;\n    unaff_s3 = param_2;\n    if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }\n  }" ({ "{") (if_statement "if (PTR_DAT_000390f8[-0x6c28] != '\0') {\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }" (if "if") (parenthesized_expression "(PTR_DAT_000390f8[-0x6c28] != '\0')" (( "(") (binary_expression "PTR_DAT_000390f8[-0x6c28] != '\0'" (subscript_expression "PTR_DAT_000390f8[-0x6c28]" (identifier "PTR_DAT_000390f8") ([ "[") (number_literal "-0x6c28") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      (*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);\n    }" ({ "{") (expression_statement "(*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);" (call_expression "(*(code *)PTR_fwrite_00039328)\n                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390)" (parenthesized_expression "(*(code *)PTR_fwrite_00039328)" (( "(") (pointer_expression "*(code *)PTR_fwrite_00039328" (* "*") (cast_expression "(code *)PTR_fwrite_00039328" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_00039328"))) () ")")) (argument_list "(PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390)" (( "(") (binary_expression "PTR_LAB_00039108 + 0x4c20" (identifier "PTR_LAB_00039108") (+ "+") (number_literal "0x4c20")) (, ",") (number_literal "1") (, ",") (number_literal "0x11") (, ",") (pointer_expression "*(undefined4 *)PTR_stderr_00039390" (* "*") (cast_expression "(undefined4 *)PTR_stderr_00039390" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_00039390"))) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___gmpz_init_0003924c)(auStack_44);" (call_expression "(*(code *)PTR___gmpz_init_0003924c)(auStack_44)" (parenthesized_expression "(*(code *)PTR___gmpz_init_0003924c)" (( "(") (pointer_expression "*(code *)PTR___gmpz_init_0003924c" (* "*") (cast_expression "(code *)PTR___gmpz_init_0003924c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_init_0003924c"))) () ")")) (argument_list "(auStack_44)" (( "(") (identifier "auStack_44") () ")"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);" (assignment_expression "puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0)" (parenthesized_expression "(*(code *)PTR___gmpz_scan1_000393ac)" (( "(") (pointer_expression "*(code *)PTR___gmpz_scan1_000393ac" (* "*") (cast_expression "(code *)PTR___gmpz_scan1_000393ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_scan1_000393ac"))) () ")")) (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "param_3 = puVar15;" (assignment_expression "param_3 = puVar15" (identifier "param_3") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);" (call_expression "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_fdiv_q_2exp_00039320)" (( "(") (pointer_expression "*(code *)PTR___gmpz_fdiv_q_2exp_00039320" (* "*") (cast_expression "(code *)PTR___gmpz_fdiv_q_2exp_00039320" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_fdiv_q_2exp_00039320"))) () ")")) (argument_list "(param_1,param_1)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }" (if "if") (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);\n    }" ({ "{") (do_statement "do {\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      } while (puVar15 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n        puVar15 = (undefined4 *)((int)puVar15 + -1);\n        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);\n        FUN_0001365c(param_2,auStack_38);\n        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);\n      }" ({ "{") (expression_statement "puVar15 = (undefined4 *)((int)puVar15 + -1);" (assignment_expression "puVar15 = (undefined4 *)((int)puVar15 + -1)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)((int)puVar15 + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + -1)" (( "(") (binary_expression "(int)puVar15 + -1" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);" (call_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2)" (parenthesized_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)" (( "(") (pointer_expression "*(code *)PTR___gmpz_init_set_ui_00039294" (* "*") (cast_expression "(code *)PTR___gmpz_init_set_ui_00039294" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_init_set_ui_00039294"))) () ")")) (argument_list "(auStack_38,2)" (( "(") (identifier "auStack_38") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_0001365c(param_2,auStack_38);" (call_expression "FUN_0001365c(param_2,auStack_38)" (identifier "FUN_0001365c") (argument_list "(param_2,auStack_38)" (( "(") (identifier "param_2") (, ",") (identifier "auStack_38") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(auStack_38);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(auStack_38)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" (( "(") (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" (* "*") (cast_expression "(code *)PTR___gmpz_clear_000392c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_clear_000392c8"))) () ")")) (argument_list "(auStack_38)" (( "(") (identifier "auStack_38") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "unaff_s2 = (undefined4 *)0x1;" (assignment_expression "unaff_s2 = (undefined4 *)0x1" (identifier "unaff_s2") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "unaff_s1 = (undefined4 *)0x3;" (assignment_expression "unaff_s1 = (undefined4 *)0x3" (identifier "unaff_s1") (= "=") (cast_expression "(undefined4 *)0x3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (expression_statement "unaff_s7 = auStack_38;" (assignment_expression "unaff_s7 = auStack_38" (identifier "unaff_s7") (= "=") (identifier "auStack_38")) (; ";")) (expression_statement "unaff_s6 = PTR_00039104 + 0x365c;" (assignment_expression "unaff_s6 = PTR_00039104 + 0x365c" (identifier "unaff_s6") (= "=") (binary_expression "PTR_00039104 + 0x365c" (identifier "PTR_00039104") (+ "+") (number_literal "0x365c"))) (; ";")) (expression_statement "unaff_s5 = PTR_LAB_00039108 + 0x7e4c;" (assignment_expression "unaff_s5 = PTR_LAB_00039108 + 0x7e4c" (identifier "unaff_s5") (= "=") (binary_expression "PTR_LAB_00039108 + 0x7e4c" (identifier "PTR_LAB_00039108") (+ "+") (number_literal "0x7e4c"))) (; ";")) (do_statement "do {\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    } while (unaff_s2 != (undefined4 *)0x29d);" (do "do") (compound_statement "{\n      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }\n      param_3 = unaff_s1;\n      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);\n      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);\n      FUN_0001365c(param_2,unaff_s7);\n      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);\n    }" ({ "{") (while_statement "while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }" (while "while") (parenthesized_expression "(iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0)" (( "(") (comma_expression "iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_divisible_ui_p_000392d8)" (( "(") (pointer_expression "*(code *)PTR___gmpz_divisible_ui_p_000392d8" (* "*") (cast_expression "(code *)PTR___gmpz_divisible_ui_p_000392d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_divisible_ui_p_000392d8"))) () ")")) (argument_list "(param_1,unaff_s1)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s1") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);\n        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);\n        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);\n        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);\n        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;\n      }" ({ "{") (expression_statement "pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);" (assignment_expression "pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)((int)unaff_s2 + (int)unaff_s5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s2 + (int)unaff_s5)" (( "(") (binary_expression "(int)unaff_s2 + (int)unaff_s5" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (+ "+") (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5"))) () ")")))) (; ";")) (expression_statement "unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);" (assignment_expression "unaff_s2 = (undefined4 *)((int)unaff_s2 + 1)" (identifier "unaff_s2") (= "=") (cast_expression "(undefined4 *)((int)unaff_s2 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s2 + 1)" (( "(") (binary_expression "(int)unaff_s2 + 1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);" (assignment_expression "unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6)" (identifier "unaff_s1") (= "=") (cast_expression "(undefined4 *)((int)unaff_s1 + (uint)*pbVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s1 + (uint)*pbVar6)" (( "(") (binary_expression "(int)unaff_s1 + (uint)*pbVar6" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (+ "+") (binary_expression "(uint)*pbVar6" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar6"))) () ")")))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)" (( "(") (pointer_expression "*(code *)PTR___gmpz_cmp_ui_00039258" (* "*") (cast_expression "(code *)PTR___gmpz_cmp_ui_00039258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_cmp_ui_00039258"))) () ")")) (argument_list "(param_1,(int)unaff_s1 * (int)unaff_s1)" (( "(") (identifier "param_1") (, ",") (binary_expression "(int)unaff_s1 * (int)unaff_s1" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (* "*") (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1"))) () ")")))) (; ";")) (if_statement "if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;" (if "if") (parenthesized_expression "((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d))" (( "(") (binary_expression "(iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)" (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(unaff_s2 == (undefined4 *)0x29d)" (( "(") (binary_expression "unaff_s2 == (undefined4 *)0x29d" (identifier "unaff_s2") (== "==") (cast_expression "(undefined4 *)0x29d" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x29d"))) () ")"))) () ")")) (goto_statement "goto LAB_00014628;" (goto "goto") (statement_identifier "LAB_00014628") (; ";"))) (} "}"))) (expression_statement "param_3 = unaff_s1;" (assignment_expression "param_3 = unaff_s1" (identifier "param_3") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);" (call_expression "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1)" (parenthesized_expression "(*(code *)PTR___gmpz_tdiv_q_ui_0003933c)" (( "(") (pointer_expression "*(code *)PTR___gmpz_tdiv_q_ui_0003933c" (* "*") (cast_expression "(code *)PTR___gmpz_tdiv_q_ui_0003933c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_tdiv_q_ui_0003933c"))) () ")")) (argument_list "(param_1,param_1)" (( "(") (identifier "param_1") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);" (call_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1)" (parenthesized_expression "(*(code *)PTR___gmpz_init_set_ui_00039294)" (( "(") (pointer_expression "*(code *)PTR___gmpz_init_set_ui_00039294" (* "*") (cast_expression "(code *)PTR___gmpz_init_set_ui_00039294" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_init_set_ui_00039294"))) () ")")) (argument_list "(unaff_s7,unaff_s1)" (( "(") (identifier "unaff_s7") (, ",") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "FUN_0001365c(param_2,unaff_s7);" (call_expression "FUN_0001365c(param_2,unaff_s7)" (identifier "FUN_0001365c") (argument_list "(param_2,unaff_s7)" (( "(") (identifier "param_2") (, ",") (identifier "unaff_s7") () ")"))) (; ";")) (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(unaff_s7)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" (( "(") (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" (* "*") (cast_expression "(code *)PTR___gmpz_clear_000392c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_clear_000392c8"))) () ")")) (argument_list "(unaff_s7)" (( "(") (identifier "unaff_s7") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s2 != (undefined4 *)0x29d)" (( "(") (binary_expression "unaff_s2 != (undefined4 *)0x29d" (identifier "unaff_s2") (!= "!=") (cast_expression "(undefined4 *)0x29d" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x29d"))) () ")")) (; ";")) (labeled_statement "LAB_00014628:\n    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);" (statement_identifier "LAB_00014628") (: ":") (expression_statement "(*(code *)PTR___gmpz_clear_000392c8)(auStack_44);" (call_expression "(*(code *)PTR___gmpz_clear_000392c8)(auStack_44)" (parenthesized_expression "(*(code *)PTR___gmpz_clear_000392c8)" (( "(") (pointer_expression "*(code *)PTR___gmpz_clear_000392c8" (* "*") (cast_expression "(code *)PTR___gmpz_clear_000392c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_clear_000392c8"))) () ")")) (argument_list "(auStack_44)" (( "(") (identifier "auStack_44") () ")"))) (; ";"))) (expression_statement "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);" (assignment_expression "iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1)" (parenthesized_expression "(*(code *)PTR___gmpz_cmp_ui_00039258)" (( "(") (pointer_expression "*(code *)PTR___gmpz_cmp_ui_00039258" (* "*") (cast_expression "(code *)PTR___gmpz_cmp_ui_00039258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpz_cmp_ui_00039258"))) () ")")) (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" (identifier "unaff_s0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "unaff_s3 = param_2;" (assignment_expression "unaff_s3 = param_2" (identifier "unaff_s3") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar5 != 0) {\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }\n      iVar5 = FUN_00014704(param_1);\n      if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }\n    }" ({ "{") (if_statement "if (puVar26[-0x6c28] != '\0') {\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }" (if "if") (parenthesized_expression "(puVar26[-0x6c28] != '\0')" (( "(") (binary_expression "puVar26[-0x6c28] != '\0'" (subscript_expression "puVar26[-0x6c28]" (identifier "puVar26") ([ "[") (number_literal "-0x6c28") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        param_3 = (undefined4 *)0x13;\n        (*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);\n      }" ({ "{") (expression_statement "param_3 = (undefined4 *)0x13;" (assignment_expression "param_3 = (undefined4 *)0x13" (identifier "param_3") (= "=") (cast_expression "(undefined4 *)0x13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x13"))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);" (call_expression "(*(code *)PTR_fwrite_00039328)\n                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390)" (parenthesized_expression "(*(code *)PTR_fwrite_00039328)" (( "(") (pointer_expression "*(code *)PTR_fwrite_00039328" (* "*") (cast_expression "(code *)PTR_fwrite_00039328" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_00039328"))) () ")")) (argument_list "(PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390)" (( "(") (binary_expression "PTR_LAB_00039108 + 0x4c34" (identifier "PTR_LAB_00039108") (+ "+") (number_literal "0x4c34")) (, ",") (number_literal "1") (, ",") (number_literal "0x13") (, ",") (pointer_expression "*(undefined4 *)PTR_stderr_00039390" (* "*") (cast_expression "(undefined4 *)PTR_stderr_00039390" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_00039390"))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00014704(param_1);" (assignment_expression "iVar5 = FUN_00014704(param_1)" (identifier "iVar5") (= "=") (call_expression "FUN_00014704(param_1)" (identifier "FUN_00014704") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }\n      else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar13 = param_1;\n        param_3 = param_2;\n        FUN_00014a38(param_1,1);\n      }" ({ "{") (expression_statement "puVar13 = param_1;" (assignment_expression "puVar13 = param_1" (identifier "puVar13") (= "=") (identifier "param_1")) (; ";")) (expression_statement "param_3 = param_2;" (assignment_expression "param_3 = param_2" (identifier "param_3") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_00014a38(param_1,1);" (call_expression "FUN_00014a38(param_1,1)" (identifier "FUN_00014a38") (argument_list "(param_1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" (else "else") (compound_statement "{\n        puVar13 = param_2;\n        FUN_0001365c(param_2,param_1);\n      }" ({ "{") (expression_statement "puVar13 = param_2;" (assignment_expression "puVar13 = param_2" (identifier "puVar13") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_0001365c(param_2,param_1);" (call_expression "FUN_0001365c(param_2,param_1)" (identifier "FUN_0001365c") (argument_list "(param_2,param_1)" (( "(") (identifier "param_2") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (if_statement "if (local_2c == *(code **)puVar4) {\n    return *(code **)puVar4;\n  }" (if "if") (parenthesized_expression "(local_2c == *(code **)puVar4)" (( "(") (binary_expression "local_2c == *(code **)puVar4" (identifier "local_2c") (== "==") (pointer_expression "*(code **)puVar4" (* "*") (cast_expression "(code **)puVar4" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n    return *(code **)puVar4;\n  }" ({ "{") (return_statement "return *(code **)puVar4;" (return "return") (pointer_expression "*(code **)puVar4" (* "*") (cast_expression "(code **)puVar4" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar4"))) (; ";")) (} "}"))) (expression_statement "pcVar27 = FUN_00014704;" (assignment_expression "pcVar27 = FUN_00014704" (identifier "pcVar27") (= "=") (identifier "FUN_00014704")) (; ";")) (expression_statement "puVar24 = PTR___stack_chk_fail_00039350;" (assignment_expression "puVar24 = PTR___stack_chk_fail_00039350" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_fail_00039350")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00039350)();" (call_expression "(*(code *)PTR___stack_chk_fail_00039350)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00039350)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00039350" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00039350" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00039350"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_f0 = puVar24 + 0x2c9cc;" (assignment_expression "puStack_f0 = puVar24 + 0x2c9cc" (identifier "puStack_f0") (= "=") (binary_expression "puVar24 + 0x2c9cc" (identifier "puVar24") (+ "+") (number_literal "0x2c9cc"))) (; ";")) (expression_statement "piStack_d8 = *(int **)(puVar24 + 0x24c64);" (assignment_expression "piStack_d8 = *(int **)(puVar24 + 0x24c64)" (identifier "piStack_d8") (= "=") (pointer_expression "*(int **)(puVar24 + 0x24c64)" (* "*") (cast_expression "(int **)(puVar24 + 0x24c64)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x24c64)" (( "(") (binary_expression "puVar24 + 0x24c64" (identifier "puVar24") (+ "+") (number_literal "0x24c64")) () ")"))))) (; ";")) (expression_statement "puVar15 = (undefined4 *)0x1;" (assignment_expression "puVar15 = (undefined4 *)0x1" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puStack_80 = puVar4;" (assignment_expression "puStack_80 = puVar4" (identifier "puStack_80") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puStack_70 = puVar26;" (assignment_expression "puStack_70 = puVar26" (identifier "puStack_70") (= "=") (identifier "puVar26")) (; ";")) (expression_statement "iStack_94 = *piStack_d8;" (assignment_expression "iStack_94 = *piStack_d8" (identifier "iStack_94") (= "=") (pointer_expression "*piStack_d8" (* "*") (identifier "piStack_d8"))) (; ";")) (expression_statement "puStack_90 = unaff_s0;" (assignment_expression "puStack_90 = unaff_s0" (identifier "puStack_90") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "puStack_8c = unaff_s1;" (assignment_expression "puStack_8c = unaff_s1" (identifier "puStack_8c") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "puStack_88 = unaff_s2;" (assignment_expression "puStack_88 = unaff_s2" (identifier "puStack_88") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_84 = unaff_s3;" (assignment_expression "puStack_84 = unaff_s3" (identifier "puStack_84") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "puStack_7c = unaff_s5;" (assignment_expression "puStack_7c = unaff_s5" (identifier "puStack_7c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "puStack_78 = unaff_s6;" (assignment_expression "puStack_78 = unaff_s6" (identifier "puStack_78") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "puStack_74 = unaff_s7;" (assignment_expression "puStack_74 = unaff_s7" (identifier "puStack_74") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pcStack_6c = pcVar27;" (assignment_expression "pcStack_6c = pcVar27" (identifier "pcStack_6c") (= "=") (identifier "pcVar27")) (; ";")) (expression_statement "iVar5 = (**(code **)(puVar24 + 0x24b54))();" (assignment_expression "iVar5 = (**(code **)(puVar24 + 0x24b54))()" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar24 + 0x24b54))()" (parenthesized_expression "(**(code **)(puVar24 + 0x24b54))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x24b54)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x24b54)" (* "*") (cast_expression "(code **)(puVar24 + 0x24b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x24b54)" (( "(") (binary_expression "puVar24 + 0x24b54" (identifier "puVar24") (+ "+") (number_literal "0x24b54")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 < 1) {\n    pcStack_dc = (code *)0x0;\n  }\n  else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" (if "if") (parenthesized_expression "(iVar5 < 1)" (( "(") (binary_expression "iVar5 < 1" (identifier "iVar5") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    pcStack_dc = (code *)0x0;\n  }" ({ "{") (expression_statement "pcStack_dc = (code *)0x0;" (assignment_expression "pcStack_dc = (code *)0x0" (identifier "pcStack_dc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" (else "else") (compound_statement "{\n    puVar15 = (undefined4 *)0x17ded79;\n    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);\n    if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }\n  }" ({ "{") (expression_statement "puVar15 = (undefined4 *)0x17ded79;" (assignment_expression "puVar15 = (undefined4 *)0x17ded79" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)0x17ded79" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x17ded79"))) (; ";")) (expression_statement "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);" (assignment_expression "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puStack_f0 + -0x7e78))(puVar13)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e78))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7e78)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7e78)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7e78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7e78)" (( "(") (binary_expression "puStack_f0 + -0x7e78" (identifier "puStack_f0") (+ "+") (number_literal "-0x7e78")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n      pcStack_dc = (code *)0x1;\n    }\n    else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pcStack_dc = (code *)0x1;\n    }" ({ "{") (expression_statement "pcStack_dc = (code *)0x1;" (assignment_expression "pcStack_dc = (code *)0x1" (identifier "pcStack_dc") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" (else "else") (compound_statement "{\n      unaff_s2 = auStack_ac;\n      unaff_s1 = auStack_b8;\n      puStack_f8 = (undefined *)0x0;\n      unaff_s5 = auStack_c4;\n      unaff_s0 = auStack_a0;\n      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);\n      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);\n      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);\n      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);\n      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);\n      puStack_f8 = unaff_s5;\n      puStack_f4 = unaff_s6;\n      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);\n      if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }\n      puStack_f8 = (undefined *)0x0;\n      puVar15 = unaff_s1;\n      param_3 = unaff_s2;\n      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);\n    }" ({ "{") (expression_statement "unaff_s2 = auStack_ac;" (assignment_expression "unaff_s2 = auStack_ac" (identifier "unaff_s2") (= "=") (identifier "auStack_ac")) (; ";")) (expression_statement "unaff_s1 = auStack_b8;" (assignment_expression "unaff_s1 = auStack_b8" (identifier "unaff_s1") (= "=") (identifier "auStack_b8")) (; ";")) (expression_statement "puStack_f8 = (undefined *)0x0;" (assignment_expression "puStack_f8 = (undefined *)0x0" (identifier "puStack_f8") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s5 = auStack_c4;" (assignment_expression "unaff_s5 = auStack_c4" (identifier "unaff_s5") (= "=") (identifier "auStack_c4")) (; ";")) (expression_statement "unaff_s0 = auStack_a0;" (assignment_expression "unaff_s0 = auStack_a0" (identifier "unaff_s0") (= "=") (identifier "auStack_a0")) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);" (call_expression "(**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d88))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d88)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d88)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d88)" (( "(") (binary_expression "puStack_f0 + -0x7d88" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d88")) () ")"))))) () ")")) (argument_list "(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (( "(") (identifier "unaff_s5") (, ",") (identifier "unaff_s1") (, ",") (identifier "unaff_s2") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);" (call_expression "(**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d48))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d48)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d48)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d48)" (( "(") (binary_expression "puStack_f0 + -0x7d48" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d48")) () ")"))))) () ")")) (argument_list "(unaff_s2,puVar13,1)" (( "(") (identifier "unaff_s2") (, ",") (identifier "puVar13") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);" (assignment_expression "unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" (identifier "unaff_s6") (= "=") (cast_expression "(undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d24))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d24)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d24)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d24)" (( "(") (binary_expression "puStack_f0 + -0x7d24" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d24")) () ")"))))) () ")")) (argument_list "(unaff_s2,0)" (( "(") (identifier "unaff_s2") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);" (call_expression "(**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e24))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7e24)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7e24)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7e24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7e24)" (( "(") (binary_expression "puStack_f0 + -0x7e24" (identifier "puStack_f0") (+ "+") (number_literal "-0x7e24")) () ")"))))) () ")")) (argument_list "(unaff_s5,unaff_s2,unaff_s6)" (( "(") (identifier "unaff_s5") (, ",") (identifier "unaff_s2") (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);" (call_expression "(**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d58))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d58)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d58)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d58)" (( "(") (binary_expression "puStack_f0 + -0x7d58" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d58")) () ")"))))) () ")")) (argument_list "(unaff_s1,2)" (( "(") (identifier "unaff_s1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);" (assignment_expression "pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" (identifier "pcStack_e4") (= "=") (cast_expression "(code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0)" (( "(") (binary_expression "*(int *)(puStack_f0 + -0x7fcc) + 0x42e0" (pointer_expression "*(int *)(puStack_f0 + -0x7fcc)" (* "*") (cast_expression "(int *)(puStack_f0 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_f0 + -0x7fcc)" (( "(") (binary_expression "puStack_f0 + -0x7fcc" (identifier "puStack_f0") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x42e0")) () ")")))) (; ";")) (expression_statement "puStack_f8 = unaff_s5;" (assignment_expression "puStack_f8 = unaff_s5" (identifier "puStack_f8") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "puStack_f4 = unaff_s6;" (assignment_expression "puStack_f4 = unaff_s6" (identifier "puStack_f4") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);" (assignment_expression "pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" (identifier "pcStack_dc") (= "=") (cast_expression "(code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0)" (identifier "FUN_000142e0") (argument_list "(puVar13,unaff_s2,unaff_s1,unaff_s0)" (( "(") (identifier "puVar13") (, ",") (identifier "unaff_s2") (, ",") (identifier "unaff_s1") (, ",") (identifier "unaff_s0") () ")"))))) (; ";")) (if_statement "if (pcStack_dc != (code *)0x0) {\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }" (if "if") (parenthesized_expression "(pcStack_dc != (code *)0x0)" (( "(") (binary_expression "pcStack_dc != (code *)0x0" (identifier "pcStack_dc") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piStack_d4 = aiStack_d0;\n        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);\n        FUN_00014424(unaff_s0,aiStack_d0);\n        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);\n        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);\n        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }\nLAB_000149e4:\n        FUN_00012488(piStack_d4);\n      }" ({ "{") (expression_statement "piStack_d4 = aiStack_d0;" (assignment_expression "piStack_d4 = aiStack_d0" (identifier "piStack_d4") (= "=") (identifier "aiStack_d0")) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);" (call_expression "(**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d8c))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d8c)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d8c)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d8c)" (( "(") (binary_expression "puStack_f0 + -0x7d8c" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d8c")) () ")"))))) () ")")) (argument_list "(unaff_s0,unaff_s2)" (( "(") (identifier "unaff_s0") (, ",") (identifier "unaff_s2") () ")"))) (; ";")) (expression_statement "FUN_00014424(unaff_s0,aiStack_d0);" (call_expression "FUN_00014424(unaff_s0,aiStack_d0)" (identifier "FUN_00014424") (argument_list "(unaff_s0,aiStack_d0)" (( "(") (identifier "unaff_s0") (, ",") (identifier "aiStack_d0") () ")"))) (; ";")) (expression_statement "unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);" (assignment_expression "unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" (identifier "unaff_s3") (= "=") (cast_expression "(undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c)" (( "(") (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_f0 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_f0 + -0x7fc8)" (( "(") (binary_expression "puStack_f0 + -0x7fc8" (identifier "puStack_f0") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7e4c")) () ")")))) (; ";")) (expression_statement "puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);" (assignment_expression "puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000)" (identifier "puStack_e0") (= "=") (cast_expression "(undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_f0 + -0x7fc8) + 33000)" (( "(") (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 33000" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_f0 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_f0 + -0x7fc8)" (( "(") (binary_expression "puStack_f0 + -0x7fc8" (identifier "puStack_f0") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "33000")) () ")")))) (; ";")) (while_statement "while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }" (while "while") (parenthesized_expression "(unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0)" (( "(") (comma_expression "unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0" (assignment_expression "unaff_s7 = (undefined1 *)0x0" (identifier "unaff_s7") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (, ",") (binary_expression "puStack_c8 != (undefined *)0x0" (identifier "puStack_c8") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          puVar26 = (undefined *)0x0;\n          do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);\n          pcVar27 = *(code **)(puStack_f0 + -0x7de4);\nLAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);\n          puStack_f8 = unaff_s5;\n          puStack_f4 = unaff_s6;\n          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);\n          if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }\n          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);\n          if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }\n        }" ({ "{") (expression_statement "puVar26 = (undefined *)0x0;" (assignment_expression "puVar26 = (undefined *)0x0" (identifier "puVar26") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          } while (iVar5 != 0);" (do "do") (compound_statement "{\n            puVar26 = puVar26 + 1;\n            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);\n            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);\n            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);\n            if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }\n            unaff_s7 = unaff_s7 + 0xc;\n          }" ({ "{") (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" (identifier "puVar26") (= "=") (binary_expression "puVar26 + 1" (identifier "puVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);" (call_expression "(**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0])" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d84))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d84)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d84)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d84)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d84)" (( "(") (binary_expression "puStack_f0 + -0x7d84" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d84")) () ")"))))) () ")")) (argument_list "(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0])" (( "(") (identifier "unaff_s0") (, ",") (identifier "unaff_s2") (, ",") (binary_expression "unaff_s7 + aiStack_d0[0]" (identifier "unaff_s7") (+ "+") (subscript_expression "aiStack_d0[0]" (identifier "aiStack_d0") ([ "[") (number_literal "0") (] "]"))) () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);" (call_expression "(**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d78))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d78)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d78)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d78)" (( "(") (binary_expression "puStack_f0 + -0x7d78" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d78")) () ")"))))) () ")")) (argument_list "(unaff_s0,unaff_s1,unaff_s0,puVar13)" (( "(") (identifier "unaff_s0") (, ",") (identifier "unaff_s1") (, ",") (identifier "unaff_s0") (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);" (assignment_expression "iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e78))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7e78)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7e78)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7e78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7e78)" (( "(") (binary_expression "puStack_f0 + -0x7e78" (identifier "puStack_f0") (+ "+") (number_literal "-0x7e78")) () ")"))))) () ")")) (argument_list "(unaff_s0,1)" (( "(") (identifier "unaff_s0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (puStack_c8 <= puVar26) {\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }" (if "if") (parenthesized_expression "(puStack_c8 <= puVar26)" (( "(") (binary_expression "puStack_c8 <= puVar26" (identifier "puStack_c8") (<= "<=") (identifier "puVar26")) () ")")) (compound_statement "{\n              pcVar27 = *(code **)(puStack_f0 + -0x7de4);\n              if (iVar5 == 0) goto LAB_00014908;\n              goto LAB_000149e4;\n            }" ({ "{") (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7de4);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7de4)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puStack_f0 + -0x7de4)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7de4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7de4)" (( "(") (binary_expression "puStack_f0 + -0x7de4" (identifier "puStack_f0") (+ "+") (number_literal "-0x7de4")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00014908;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00014908;" (goto "goto") (statement_identifier "LAB_00014908") (; ";"))) (goto_statement "goto LAB_000149e4;" (goto "goto") (statement_identifier "LAB_000149e4") (; ";")) (} "}"))) (expression_statement "unaff_s7 = unaff_s7 + 0xc;" (assignment_expression "unaff_s7 = unaff_s7 + 0xc" (identifier "unaff_s7") (= "=") (binary_expression "unaff_s7 + 0xc" (identifier "unaff_s7") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7de4);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7de4)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puStack_f0 + -0x7de4)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7de4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7de4)" (( "(") (binary_expression "puStack_f0 + -0x7de4" (identifier "puStack_f0") (+ "+") (number_literal "-0x7de4")) () ")"))))) (; ";")) (labeled_statement "LAB_00014908:\n          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);" (statement_identifier "LAB_00014908") (: ":") (expression_statement "(*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);" (call_expression "(*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3)" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3)" (( "(") (identifier "unaff_s1") (, ",") (identifier "unaff_s1") (, ",") (pointer_expression "*(undefined1 *)unaff_s3" (* "*") (cast_expression "(undefined1 *)unaff_s3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s3"))) () ")"))) (; ";"))) (expression_statement "puStack_f8 = unaff_s5;" (assignment_expression "puStack_f8 = unaff_s5" (identifier "puStack_f8") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "puStack_f4 = unaff_s6;" (assignment_expression "puStack_f4 = unaff_s6" (identifier "puStack_f4") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);" (assignment_expression "iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0)" (identifier "iVar5") (= "=") (call_expression "(*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0)" (parenthesized_expression "(*pcStack_e4)" (( "(") (pointer_expression "*pcStack_e4" (* "*") (identifier "pcStack_e4")) () ")")) (argument_list "(puVar13,unaff_s2,unaff_s1,unaff_s0)" (( "(") (identifier "puVar13") (, ",") (identifier "unaff_s2") (, ",") (identifier "unaff_s1") (, ",") (identifier "unaff_s0") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n            pcStack_dc = (code *)0x0;\n            break;\n          }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pcStack_dc = (code *)0x0;\n            break;\n          }" ({ "{") (expression_statement "pcStack_dc = (code *)0x0;" (assignment_expression "pcStack_dc = (code *)0x0" (identifier "pcStack_dc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);" (assignment_expression "unaff_s3 = (undefined4 *)((int)unaff_s3 + 1)" (identifier "unaff_s3") (= "=") (cast_expression "(undefined4 *)((int)unaff_s3 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s3 + 1)" (( "(") (binary_expression "(int)unaff_s3 + 1" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (puStack_e0 == unaff_s3) {\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }" (if "if") (parenthesized_expression "(puStack_e0 == unaff_s3)" (( "(") (binary_expression "puStack_e0 == unaff_s3" (identifier "puStack_e0") (== "==") (identifier "unaff_s3")) () ")")) (compound_statement "{\n            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;\n            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);\n            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();\n            return pcVar27;\n          }" ({ "{") (expression_statement "uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)\n            ;" (assignment_expression "uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d7c))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d7c)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d7c)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d7c)" (( "(") (binary_expression "puStack_f0 + -0x7d7c" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d7c")) () ")"))))) () ")")) (argument_list "(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(puStack_f0 + -0x7fc8) + 0x4c48" (pointer_expression "*(int *)(puStack_f0 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_f0 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_f0 + -0x7fc8)" (( "(") (binary_expression "puStack_f0 + -0x7fc8" (identifier "puStack_f0") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x4c48")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);" (call_expression "(**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7dc0))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7dc0)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7dc0)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7dc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7dc0)" (( "(") (binary_expression "puStack_f0 + -0x7dc0" (identifier "puStack_f0") (+ "+") (number_literal "-0x7dc0")) () ")"))))) () ")")) (argument_list "(0,0,uVar7)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();" (assignment_expression "pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))()" (identifier "pcVar27") (= "=") (cast_expression "(code *)(**(code **)(puStack_f0 + -0x7e94))()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puStack_f0 + -0x7e94))()" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7e94))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7e94)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7e94)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7e94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7e94)" (( "(") (binary_expression "puStack_f0 + -0x7e94" (identifier "puStack_f0") (+ "+") (number_literal "-0x7e94")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pcVar27;" (return "return") (identifier "pcVar27") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000149e4:\n        FUN_00012488(piStack_d4);" (statement_identifier "LAB_000149e4") (: ":") (expression_statement "FUN_00012488(piStack_d4);" (call_expression "FUN_00012488(piStack_d4)" (identifier "FUN_00012488") (argument_list "(piStack_d4)" (( "(") (identifier "piStack_d4") () ")"))) (; ";"))) (} "}"))) (expression_statement "puStack_f8 = (undefined *)0x0;" (assignment_expression "puStack_f8 = (undefined *)0x0" (identifier "puStack_f8") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar15 = unaff_s1;" (assignment_expression "puVar15 = unaff_s1" (identifier "puVar15") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "param_3 = unaff_s2;" (assignment_expression "param_3 = unaff_s2" (identifier "param_3") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "(**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);" (call_expression "(**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_f0 + -0x7d4c))" (( "(") (pointer_expression "**(code **)(puStack_f0 + -0x7d4c)" (* "*") (pointer_expression "*(code **)(puStack_f0 + -0x7d4c)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d4c)" (( "(") (binary_expression "puStack_f0 + -0x7d4c" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d4c")) () ")"))))) () ")")) (argument_list "(unaff_s5,unaff_s1,unaff_s2,unaff_s0)" (( "(") (identifier "unaff_s5") (, ",") (identifier "unaff_s1") (, ",") (identifier "unaff_s2") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (iStack_94 == *piStack_d8) {\n    return pcStack_dc;\n  }" (if "if") (parenthesized_expression "(iStack_94 == *piStack_d8)" (( "(") (binary_expression "iStack_94 == *piStack_d8" (identifier "iStack_94") (== "==") (pointer_expression "*piStack_d8" (* "*") (identifier "piStack_d8"))) () ")")) (compound_statement "{\n    return pcStack_dc;\n  }" ({ "{") (return_statement "return pcStack_dc;" (return "return") (identifier "pcStack_dc") (; ";")) (} "}"))) (expression_statement "pcVar27 = *(code **)(puStack_f0 + -0x7d80);" (assignment_expression "pcVar27 = *(code **)(puStack_f0 + -0x7d80)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puStack_f0 + -0x7d80)" (* "*") (cast_expression "(code **)(puStack_f0 + -0x7d80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_f0 + -0x7d80)" (( "(") (binary_expression "puStack_f0 + -0x7d80" (identifier "puStack_f0") (+ "+") (number_literal "-0x7d80")) () ")"))))) (; ";")) (expression_statement "pcVar28 = FUN_00014a38;" (assignment_expression "pcVar28 = FUN_00014a38" (identifier "pcVar28") (= "=") (identifier "FUN_00014a38")) (; ";")) (expression_statement "iVar5 = iStack_94;" (assignment_expression "iVar5 = iStack_94" (identifier "iVar5") (= "=") (identifier "iStack_94")) (; ";")) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8 = *(int **)(pcVar27 + 0x24930);" (assignment_expression "piVar8 = *(int **)(pcVar27 + 0x24930)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(pcVar27 + 0x24930)" (* "*") (cast_expression "(int **)(pcVar27 + 0x24930)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24930)" (( "(") (binary_expression "pcVar27 + 0x24930" (identifier "pcVar27") (+ "+") (number_literal "0x24930")) () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(pcVar27 + 0x246c0);" (assignment_expression "iVar14 = *(int *)(pcVar27 + 0x246c0)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x246c0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x246c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x246c0)" (( "(") (binary_expression "pcVar27 + 0x246c0" (identifier "pcVar27") (+ "+") (number_literal "0x246c0")) () ")"))))) (; ";")) (expression_statement "pcStack_134 = (code *)*piVar8;" (assignment_expression "pcStack_134 = (code *)*piVar8" (identifier "pcStack_134") (= "=") (cast_expression "(code *)*piVar8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (expression_statement "puStack_130 = unaff_s0;" (assignment_expression "puStack_130 = unaff_s0" (identifier "puStack_130") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "puStack_12c = unaff_s1;" (assignment_expression "puStack_12c = unaff_s1" (identifier "puStack_12c") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "puStack_128 = unaff_s2;" (assignment_expression "puStack_128 = unaff_s2" (identifier "puStack_128") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_124 = unaff_s3;" (assignment_expression "puStack_124 = unaff_s3" (identifier "puStack_124") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "puStack_120 = puVar13;" (assignment_expression "puStack_120 = puVar13" (identifier "puStack_120") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puStack_11c = unaff_s5;" (assignment_expression "puStack_11c = unaff_s5" (identifier "puStack_11c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "puStack_118 = unaff_s6;" (assignment_expression "puStack_118 = unaff_s6" (identifier "puStack_118") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "puStack_114 = unaff_s7;" (assignment_expression "puStack_114 = unaff_s7" (identifier "puStack_114") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "puStack_110 = puVar26;" (assignment_expression "puStack_110 = puVar26" (identifier "puStack_110") (= "=") (identifier "puVar26")) (; ";")) (expression_statement "pcStack_10c = pcVar28;" (assignment_expression "pcStack_10c = pcVar28" (identifier "pcStack_10c") (= "=") (identifier "pcVar28")) (; ";")) (if_statement "if (*(char *)(iVar14 + -0x6c28) != '\0') {\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + -0x6c28) != '\0')" (( "(") (binary_expression "*(char *)(iVar14 + -0x6c28) != '\0'" (pointer_expression "*(char *)(iVar14 + -0x6c28)" (* "*") (cast_expression "(char *)(iVar14 + -0x6c28)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + -0x6c28)" (( "(") (binary_expression "iVar14 + -0x6c28" (identifier "iVar14") (+ "+") (number_literal "-0x6c28")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x24824))\n              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24824))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24824)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24824)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24824)" (( "(") (binary_expression "pcVar27 + 0x24824" (identifier "pcVar27") (+ "+") (number_literal "0x24824")) () ")"))))) () ")")) (argument_list "(**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15)" (( "(") (pointer_expression "**(undefined4 **)(pcVar27 + 0x24958)" (* "*") (pointer_expression "*(undefined4 **)(pcVar27 + 0x24958)" (* "*") (cast_expression "(undefined4 **)(pcVar27 + 0x24958)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24958)" (( "(") (binary_expression "pcVar27 + 0x24958" (identifier "pcVar27") (+ "+") (number_literal "0x24958")) () ")"))))) (, ",") (number_literal "1") (, ",") (binary_expression "*(int *)(pcVar27 + 0x246d0) + 0x4c7c" (pointer_expression "*(int *)(pcVar27 + 0x246d0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x246d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x246d0)" (( "(") (binary_expression "pcVar27 + 0x246d0" (identifier "pcVar27") (+ "+") (number_literal "0x246d0")) () ")")))) (+ "+") (number_literal "0x4c7c")) (, ",") (identifier "puVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar21 = auStack_140;" (assignment_expression "puVar21 = auStack_140" (identifier "puVar21") (= "=") (identifier "auStack_140")) (; ";")) (expression_statement "puVar17 = auStack_14c;" (assignment_expression "puVar17 = auStack_14c" (identifier "puVar17") (= "=") (identifier "auStack_14c")) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);" (call_expression "(**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24910))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24910)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24910)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24910)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24910)" (( "(") (binary_expression "pcVar27 + 0x24910" (identifier "pcVar27") (+ "+") (number_literal "0x24910")) () ")"))))) () ")")) (argument_list "(puVar17,puVar21,0)" (( "(") (identifier "puVar17") (, ",") (identifier "puVar21") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar18 = auStack_170;" (assignment_expression "puVar18 = auStack_170" (identifier "puVar18") (= "=") (identifier "auStack_170")) (; ";")) (expression_statement "pcVar20 = (code *)auStack_158;" (assignment_expression "pcVar20 = (code *)auStack_158" (identifier "pcVar20") (= "=") (cast_expression "(code *)auStack_158" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_158"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(auStack_164,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(auStack_164,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x248bc)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x248bc)" (* "*") (cast_expression "(code **)(pcVar27 + 0x248bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x248bc)" (( "(") (binary_expression "pcVar27 + 0x248bc" (identifier "pcVar27") (+ "+") (number_literal "0x248bc")) () ")"))))) () ")")) (argument_list "(auStack_164,2)" (( "(") (identifier "auStack_164") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(auStack_17c,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x248bc)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x248bc)" (* "*") (cast_expression "(code **)(pcVar27 + 0x248bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x248bc)" (( "(") (binary_expression "pcVar27 + 0x248bc" (identifier "pcVar27") (+ "+") (number_literal "0x248bc")) () ")"))))) () ")")) (argument_list "(auStack_17c,2)" (( "(") (identifier "auStack_17c") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x248bc))(puVar18,2);" (call_expression "(**(code **)(pcVar27 + 0x248bc))(puVar18,2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248bc))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x248bc)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x248bc)" (* "*") (cast_expression "(code **)(pcVar27 + 0x248bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x248bc)" (( "(") (binary_expression "pcVar27 + 0x248bc" (identifier "pcVar27") (+ "+") (number_literal "0x248bc")) () ")"))))) () ")")) (argument_list "(puVar18,2)" (( "(") (identifier "puVar18") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x2485c))(pcVar20,1);" (call_expression "(**(code **)(pcVar27 + 0x2485c))(pcVar20,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2485c))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x2485c)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x2485c)" (* "*") (cast_expression "(code **)(pcVar27 + 0x2485c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x2485c)" (( "(") (binary_expression "pcVar27 + 0x2485c" (identifier "pcVar27") (+ "+") (number_literal "0x2485c")) () ")"))))) () ")")) (argument_list "(pcVar20,1)" (( "(") (identifier "pcVar20") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uStack_1a8 = 1;" (assignment_expression "uStack_1a8 = 1" (identifier "uStack_1a8") (= "=") (number_literal "1")) (; ";")) (expression_statement "uStack_1b0 = 0;" (assignment_expression "uStack_1b0 = 0" (identifier "uStack_1b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);" (assignment_expression "pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704)" (identifier "pcVar28") (= "=") (cast_expression "(code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0x246cc) + 0x4704)" (( "(") (binary_expression "*(int *)(pcVar27 + 0x246cc) + 0x4704" (pointer_expression "*(int *)(pcVar27 + 0x246cc)" (* "*") (cast_expression "(int *)(pcVar27 + 0x246cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x246cc)" (( "(") (binary_expression "pcVar27 + 0x246cc" (identifier "pcVar27") (+ "+") (number_literal "0x246cc")) () ")")))) (+ "+") (number_literal "0x4704")) () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(pcVar27 + 0x246cc);" (assignment_expression "iVar9 = *(int *)(pcVar27 + 0x246cc)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x246cc)" (* "*") (cast_expression "(int *)(pcVar27 + 0x246cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x246cc)" (( "(") (binary_expression "pcVar27 + 0x246cc" (identifier "pcVar27") (+ "+") (number_literal "0x246cc")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(pcVar27 + 0x246d0);" (assignment_expression "iVar10 = *(int *)(pcVar27 + 0x246d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x246d0)" (* "*") (cast_expression "(int *)(pcVar27 + 0x246d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x246d0)" (( "(") (binary_expression "pcVar27 + 0x246d0" (identifier "pcVar27") (+ "+") (number_literal "0x246d0")) () ")"))))) (; ";")) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar27 + 0x24820))(iVar5,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24820)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24820)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24820)" (( "(") (binary_expression "pcVar27 + 0x24820" (identifier "pcVar27") (+ "+") (number_literal "0x24820")) () ")"))))) () ")")) (argument_list "(iVar5,1)" (( "(") (identifier "iVar5") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar29 = 1;" (assignment_expression "uVar29 = 1" (identifier "uVar29") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar11 == 0) {\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }\n  else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" ({ "{") (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x2494c);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x2494c)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x2494c)" (* "*") (cast_expression "(code **)(pcVar27 + 0x2494c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x2494c)" (( "(") (binary_expression "pcVar27 + 0x2494c" (identifier "pcVar27") (+ "+") (number_literal "0x2494c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" (else "else") (compound_statement "{\nLAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);\n    pcVar28 = *(code **)(pcVar27 + 0x2494c);\n  }" ({ "{") (labeled_statement "LAB_00014bb0:\n    do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);" (statement_identifier "LAB_00014bb0") (: ":") (do_statement "do {\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    } while (iVar11 != 0);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }\n      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }\n      do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);\n      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);\n      iVar11 = (*pcVar28)(puVar17);\n      if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }\n      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);\n      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);\n      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);\n      uVar29 = uVar12;\n    }" ({ "{") (while_statement "while( true ) {\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar12 = uVar29;\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);\n        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);\n        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);\n        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);\n        if ((uVar12 & 0x1f) == 1) break;\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }\n      }" ({ "{") (expression_statement "uVar12 = uVar29;" (assignment_expression "uVar12 = uVar29" (identifier "uVar12") (= "=") (identifier "uVar29")) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24908)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24908)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24908)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24908)" (( "(") (binary_expression "pcVar27 + 0x24908" (identifier "pcVar27") (+ "+") (number_literal "0x24908")) () ")"))))) () ")")) (argument_list "(puVar17,auStack_17c,auStack_17c)" (( "(") (identifier "puVar17") (, ",") (identifier "auStack_17c") (, ",") (identifier "auStack_17c") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24864)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24864)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24864)" (( "(") (binary_expression "pcVar27 + 0x24864" (identifier "pcVar27") (+ "+") (number_literal "0x24864")) () ")"))))) () ")")) (argument_list "(auStack_17c,puVar17,iVar5)" (( "(") (identifier "auStack_17c") (, ",") (identifier "puVar17") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x248b4)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x248b4)" (* "*") (cast_expression "(code **)(pcVar27 + 0x248b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x248b4)" (( "(") (binary_expression "pcVar27 + 0x248b4" (identifier "pcVar27") (+ "+") (number_literal "0x248b4")) () ")"))))) () ")")) (argument_list "(auStack_17c,auStack_17c,puVar15)" (( "(") (identifier "auStack_17c") (, ",") (identifier "auStack_17c") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24928))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24928)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24928)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24928)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24928)" (( "(") (binary_expression "pcVar27 + 0x24928" (identifier "pcVar27") (+ "+") (number_literal "0x24928")) () ")"))))) () ")")) (argument_list "(puVar17,puVar18,auStack_17c)" (( "(") (identifier "puVar17") (, ",") (identifier "puVar18") (, ",") (identifier "auStack_17c") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24908)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24908)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24908)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24908)" (( "(") (binary_expression "pcVar27 + 0x24908" (identifier "pcVar27") (+ "+") (number_literal "0x24908")) () ")"))))) () ")")) (argument_list "(puVar21,pcVar20,puVar17)" (( "(") (identifier "puVar21") (, ",") (identifier "pcVar20") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24864)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24864)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24864)" (( "(") (binary_expression "pcVar27 + 0x24864" (identifier "pcVar27") (+ "+") (number_literal "0x24864")) () ")"))))) () ")")) (argument_list "(pcVar20,puVar21,iVar5)" (( "(") (identifier "pcVar20") (, ",") (identifier "puVar21") (, ",") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if ((uVar12 & 0x1f) == 1) break;" (if "if") (parenthesized_expression "((uVar12 & 0x1f) == 1)" (( "(") (binary_expression "(uVar12 & 0x1f) == 1" (parenthesized_expression "(uVar12 & 0x1f)" (( "(") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f")) () ")")) (== "==") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar29 = uVar12 - 1;" (assignment_expression "uVar29 = uVar12 - 1" (identifier "uVar29") (= "=") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);" (assignment_expression "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1)" (identifier "uVar19") (= "=") (binary_expression "(uint)(uVar29 < uVar12) + (uVar19 - 1)" (call_expression "(uint)(uVar29 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar29 < uVar12)" (( "(") (binary_expression "uVar29 < uVar12" (identifier "uVar29") (< "<") (identifier "uVar12")) () ")"))) (+ "+") (parenthesized_expression "(uVar19 - 1)" (( "(") (binary_expression "uVar19 - 1" (identifier "uVar19") (- "-") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar19 == 0 && uVar29 == 0) {\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }" (if "if") (parenthesized_expression "(uVar19 == 0 && uVar29 == 0)" (( "(") (binary_expression "uVar19 == 0 && uVar29 == 0" (binary_expression "uVar19 == 0" (identifier "uVar19") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\nLAB_00014cb0:\n          uVar12 = uVar12 - 1;\n          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);\n          if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }\nLAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n          uVar19 = uStack_1b0;\n          uVar29 = uStack_1a8;\n          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;\n          uStack_1a8 = uStack_1a8 << 1;\n        }" ({ "{") (labeled_statement "LAB_00014cb0:\n          uVar12 = uVar12 - 1;" (statement_identifier "LAB_00014cb0") (: ":") (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) (; ";"))) (expression_statement "(**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x2490c)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x2490c)" (* "*") (cast_expression "(code **)(pcVar27 + 0x2490c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x2490c)" (( "(") (binary_expression "pcVar27 + 0x2490c" (identifier "pcVar27") (+ "+") (number_literal "0x2490c")) () ")"))))) () ")")) (argument_list "(puVar18,auStack_17c)" (( "(") (identifier "puVar18") (, ",") (identifier "auStack_17c") () ")"))) (; ";")) (if_statement "if (uStack_1b0 != 0 || uStack_1a8 != 0) {\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }" (if "if") (parenthesized_expression "(uStack_1b0 != 0 || uStack_1a8 != 0)" (( "(") (binary_expression "uStack_1b0 != 0 || uStack_1a8 != 0" (binary_expression "uStack_1b0 != 0" (identifier "uStack_1b0") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uStack_1a8 != 0" (identifier "uStack_1a8") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n            do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );\n          }" ({ "{") (do_statement "do {\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            } while( true );" (do "do") (compound_statement "{\n              pcVar25 = *(code **)(pcVar27 + 0x24908);\n              uVar29 = uVar12;\n              while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }\n            }" ({ "{") (expression_statement "pcVar25 = *(code **)(pcVar27 + 0x24908);" (assignment_expression "pcVar25 = *(code **)(pcVar27 + 0x24908)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x24908)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24908)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24908)" (( "(") (binary_expression "pcVar27 + 0x24908" (identifier "pcVar27") (+ "+") (number_literal "0x24908")) () ")"))))) (; ";")) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" (identifier "uVar29") (= "=") (identifier "uVar12")) (; ";")) (while_statement "while( true ) {\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                (*pcVar25)(puVar17,auStack_17c,auStack_17c);\n                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);\n                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);\n                uVar12 = uVar29 + 1;\n                uVar19 = (uVar12 < uVar29) + uVar19;\n                if (uVar19 != uStack_1b0) break;\n                pcVar25 = *(code **)(pcVar27 + 0x24908);\n                uVar29 = uVar12;\n                if (uVar12 == uStack_1a8) goto LAB_00014d60;\n              }" ({ "{") (expression_statement "(*pcVar25)(puVar17,auStack_17c,auStack_17c);" (call_expression "(*pcVar25)(puVar17,auStack_17c,auStack_17c)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(puVar17,auStack_17c,auStack_17c)" (( "(") (identifier "puVar17") (, ",") (identifier "auStack_17c") (, ",") (identifier "auStack_17c") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24864)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24864)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24864)" (( "(") (binary_expression "pcVar27 + 0x24864" (identifier "pcVar27") (+ "+") (number_literal "0x24864")) () ")"))))) () ")")) (argument_list "(auStack_17c,puVar17,iVar5)" (( "(") (identifier "auStack_17c") (, ",") (identifier "puVar17") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x248b4)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x248b4)" (* "*") (cast_expression "(code **)(pcVar27 + 0x248b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x248b4)" (( "(") (binary_expression "pcVar27 + 0x248b4" (identifier "pcVar27") (+ "+") (number_literal "0x248b4")) () ")"))))) () ")")) (argument_list "(auStack_17c,auStack_17c,puVar15)" (( "(") (identifier "auStack_17c") (, ",") (identifier "auStack_17c") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "uVar12 = uVar29 + 1;" (assignment_expression "uVar12 = uVar29 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar29 + 1" (identifier "uVar29") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar19 = (uVar12 < uVar29) + uVar19;" (assignment_expression "uVar19 = (uVar12 < uVar29) + uVar19" (identifier "uVar19") (= "=") (binary_expression "(uVar12 < uVar29) + uVar19" (parenthesized_expression "(uVar12 < uVar29)" (( "(") (binary_expression "uVar12 < uVar29" (identifier "uVar12") (< "<") (identifier "uVar29")) () ")")) (+ "+") (identifier "uVar19"))) (; ";")) (if_statement "if (uVar19 != uStack_1b0) break;" (if "if") (parenthesized_expression "(uVar19 != uStack_1b0)" (( "(") (binary_expression "uVar19 != uStack_1b0" (identifier "uVar19") (!= "!=") (identifier "uStack_1b0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar25 = *(code **)(pcVar27 + 0x24908);" (assignment_expression "pcVar25 = *(code **)(pcVar27 + 0x24908)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x24908)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24908)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24908)" (( "(") (binary_expression "pcVar27 + 0x24908" (identifier "pcVar27") (+ "+") (number_literal "0x24908")) () ")"))))) (; ";")) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" (identifier "uVar29") (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (uVar12 == uStack_1a8) goto LAB_00014d60;" (if "if") (parenthesized_expression "(uVar12 == uStack_1a8)" (( "(") (binary_expression "uVar12 == uStack_1a8" (identifier "uVar12") (== "==") (identifier "uStack_1a8")) () ")")) (goto_statement "goto LAB_00014d60;" (goto "goto") (statement_identifier "LAB_00014d60") (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00014d60:\n          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" (statement_identifier "LAB_00014d60") (: ":") (expression_statement "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x2490c)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x2490c)" (* "*") (cast_expression "(code **)(pcVar27 + 0x2490c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x2490c)" (( "(") (binary_expression "pcVar27 + 0x2490c" (identifier "pcVar27") (+ "+") (number_literal "0x2490c")) () ")"))))) () ")")) (argument_list "(auStack_164,auStack_17c)" (( "(") (identifier "auStack_164") (, ",") (identifier "auStack_17c") () ")"))) (; ";"))) (expression_statement "uVar19 = uStack_1b0;" (assignment_expression "uVar19 = uStack_1b0" (identifier "uVar19") (= "=") (identifier "uStack_1b0")) (; ";")) (expression_statement "uVar29 = uStack_1a8;" (assignment_expression "uVar29 = uStack_1a8" (identifier "uVar29") (= "=") (identifier "uStack_1a8")) (; ";")) (expression_statement "uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;" (assignment_expression "uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1" (identifier "uStack_1b0") (= "=") (binary_expression "uStack_1a8 >> 0x1f | uStack_1b0 << 1" (binary_expression "uStack_1a8 >> 0x1f" (identifier "uStack_1a8") (>> ">>") (number_literal "0x1f")) (| "|") (binary_expression "uStack_1b0 << 1" (identifier "uStack_1b0") (<< "<<") (number_literal "1")))) (; ";")) (expression_statement "uStack_1a8 = uStack_1a8 << 1;" (assignment_expression "uStack_1a8 = uStack_1a8 << 1" (identifier "uStack_1a8") (= "=") (binary_expression "uStack_1a8 << 1" (identifier "uStack_1a8") (<< "<<") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "(**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24838))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24838)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24838)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24838)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24838)" (( "(") (binary_expression "pcVar27 + 0x24838" (identifier "pcVar27") (+ "+") (number_literal "0x24838")) () ")"))))) () ")")) (argument_list "(puVar17,pcVar20,iVar5)" (( "(") (identifier "puVar17") (, ",") (identifier "pcVar20") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar27 + 0x24820))(puVar17,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24820)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24820)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24820)" (( "(") (binary_expression "pcVar27 + 0x24820" (identifier "pcVar27") (+ "+") (number_literal "0x24820")) () ")"))))) () ")")) (argument_list "(puVar17,1)" (( "(") (identifier "puVar17") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);\n        uVar29 = uVar12 - 1;\n        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);\n        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;\n        goto LAB_00014bb0;\n      }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);" (call_expression "(**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2490c))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x2490c)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x2490c)" (* "*") (cast_expression "(code **)(pcVar27 + 0x2490c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x2490c)" (( "(") (binary_expression "pcVar27 + 0x2490c" (identifier "pcVar27") (+ "+") (number_literal "0x2490c")) () ")"))))) () ")")) (argument_list "(auStack_164,auStack_17c)" (( "(") (identifier "auStack_164") (, ",") (identifier "auStack_17c") () ")"))) (; ";")) (expression_statement "uVar29 = uVar12 - 1;" (assignment_expression "uVar29 = uVar12 - 1" (identifier "uVar29") (= "=") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);" (assignment_expression "uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1)" (identifier "uVar19") (= "=") (binary_expression "(uint)(uVar29 < uVar12) + (uVar19 - 1)" (call_expression "(uint)(uVar29 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar29 < uVar12)" (( "(") (binary_expression "uVar29 < uVar12" (identifier "uVar29") (< "<") (identifier "uVar12")) () ")"))) (+ "+") (parenthesized_expression "(uVar19 - 1)" (( "(") (binary_expression "uVar19 - 1" (identifier "uVar19") (- "-") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;" (if "if") (parenthesized_expression "(uVar19 == 0 && uVar29 == 0)" (( "(") (binary_expression "uVar19 == 0 && uVar29 == 0" (binary_expression "uVar19 == 0" (identifier "uVar19") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00014cb0;" (goto "goto") (statement_identifier "LAB_00014cb0") (; ";"))) (goto_statement "goto LAB_00014bb0;" (goto "goto") (statement_identifier "LAB_00014bb0") (; ";")) (} "}"))) (do_statement "do {\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      } while (iVar11 == 0);" (do "do") (compound_statement "{\n        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);\n        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);\n        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);\n        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);\n        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);\n        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);\n      }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);" (call_expression "(**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24908))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24908)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24908)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24908)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24908)" (( "(") (binary_expression "pcVar27 + 0x24908" (identifier "pcVar27") (+ "+") (number_literal "0x24908")) () ")"))))) () ")")) (argument_list "(puVar17,auStack_164,auStack_164)" (( "(") (identifier "puVar17") (, ",") (identifier "auStack_164") (, ",") (identifier "auStack_164") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24864)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24864)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24864)" (( "(") (binary_expression "pcVar27 + 0x24864" (identifier "pcVar27") (+ "+") (number_literal "0x24864")) () ")"))))) () ")")) (argument_list "(auStack_164,puVar17,iVar5)" (( "(") (identifier "auStack_164") (, ",") (identifier "puVar17") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);" (call_expression "(**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15)" (parenthesized_expression "(**(code **)(pcVar27 + 0x248b4))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x248b4)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x248b4)" (* "*") (cast_expression "(code **)(pcVar27 + 0x248b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x248b4)" (( "(") (binary_expression "pcVar27 + 0x248b4" (identifier "pcVar27") (+ "+") (number_literal "0x248b4")) () ")"))))) () ")")) (argument_list "(auStack_164,auStack_164,puVar15)" (( "(") (identifier "auStack_164") (, ",") (identifier "auStack_164") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);" (call_expression "(**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24928))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24928)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24928)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24928)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24928)" (( "(") (binary_expression "pcVar27 + 0x24928" (identifier "pcVar27") (+ "+") (number_literal "0x24928")) () ")"))))) () ")")) (argument_list "(puVar17,puVar18,auStack_164)" (( "(") (identifier "puVar17") (, ",") (identifier "puVar18") (, ",") (identifier "auStack_164") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24838))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24838)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24838)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24838)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24838)" (( "(") (binary_expression "pcVar27 + 0x24838" (identifier "pcVar27") (+ "+") (number_literal "0x24838")) () ")"))))) () ")")) (argument_list "(puVar17,puVar17,iVar5)" (( "(") (identifier "puVar17") (, ",") (identifier "puVar17") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar27 + 0x24820))(puVar17,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24820)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24820)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24820)" (( "(") (binary_expression "pcVar27 + 0x24820" (identifier "pcVar27") (+ "+") (number_literal "0x24820")) () ")"))))) () ")")) (argument_list "(puVar17,1)" (( "(") (identifier "puVar17") (, ",") (number_literal "1") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);" (call_expression "(**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24914))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24914)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24914)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24914)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24914)" (( "(") (binary_expression "pcVar27 + 0x24914" (identifier "pcVar27") (+ "+") (number_literal "0x24914")) () ")"))))) () ")")) (argument_list "(iVar5,iVar5,puVar17)" (( "(") (identifier "iVar5") (, ",") (identifier "iVar5") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "iVar11 = (*pcVar28)(puVar17);" (assignment_expression "iVar11 = (*pcVar28)(puVar17)" (identifier "iVar11") (= "=") (call_expression "(*pcVar28)(puVar17)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(puVar17)" (( "(") (identifier "puVar17") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }\n      else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }\n        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);\n        iVar11 = (*pcVar28)(iVar5);\n      }" ({ "{") (if_statement "if (*(char *)(iVar14 + -0x6c28) != '\0') {\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + -0x6c28) != '\0')" (( "(") (binary_expression "*(char *)(iVar14 + -0x6c28) != '\0'" (pointer_expression "*(char *)(iVar14 + -0x6c28)" (* "*") (cast_expression "(char *)(iVar14 + -0x6c28)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + -0x6c28)" (( "(") (binary_expression "iVar14 + -0x6c28" (identifier "iVar14") (+ "+") (number_literal "-0x6c28")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          (**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));\n        }" ({ "{") (expression_statement "(**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));" (call_expression "(**(code **)(pcVar27 + 0x248f0))\n                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958))" (parenthesized_expression "(**(code **)(pcVar27 + 0x248f0))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x248f0)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x248f0)" (* "*") (cast_expression "(code **)(pcVar27 + 0x248f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x248f0)" (( "(") (binary_expression "pcVar27 + 0x248f0" (identifier "pcVar27") (+ "+") (number_literal "0x248f0")) () ")"))))) () ")")) (argument_list "(iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958))" (( "(") (binary_expression "iVar10 + 0x4c94" (identifier "iVar10") (+ "+") (number_literal "0x4c94")) (, ",") (number_literal "1") (, ",") (number_literal "0x2b") (, ",") (pointer_expression "**(undefined4 **)(pcVar27 + 0x24958)" (* "*") (pointer_expression "*(undefined4 **)(pcVar27 + 0x24958)" (* "*") (cast_expression "(undefined4 **)(pcVar27 + 0x24958)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24958)" (( "(") (binary_expression "pcVar27 + 0x24958" (identifier "pcVar27") (+ "+") (number_literal "0x24958")) () ")"))))) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);" (call_expression "FUN_00014a38(puVar17,(int)puVar15 + 1,param_3)" (identifier "FUN_00014a38") (argument_list "(puVar17,(int)puVar15 + 1,param_3)" (( "(") (identifier "puVar17") (, ",") (binary_expression "(int)puVar15 + 1" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (number_literal "1")) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "iVar11 = (*pcVar28)(iVar5);" (assignment_expression "iVar11 = (*pcVar28)(iVar5)" (identifier "iVar11") (= "=") (call_expression "(*pcVar28)(iVar5)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" (else "else") (compound_statement "{\n        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);\n        iVar11 = (*pcVar28)(iVar5);\n      }" ({ "{") (expression_statement "(*(code *)(iVar9 + 0x365c))(param_3,puVar17);" (call_expression "(*(code *)(iVar9 + 0x365c))(param_3,puVar17)" (parenthesized_expression "(*(code *)(iVar9 + 0x365c))" (( "(") (pointer_expression "*(code *)(iVar9 + 0x365c)" (* "*") (cast_expression "(code *)(iVar9 + 0x365c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x365c)" (( "(") (binary_expression "iVar9 + 0x365c" (identifier "iVar9") (+ "+") (number_literal "0x365c")) () ")")))) () ")")) (argument_list "(param_3,puVar17)" (( "(") (identifier "param_3") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "iVar11 = (*pcVar28)(iVar5);" (assignment_expression "iVar11 = (*pcVar28)(iVar5)" (identifier "iVar11") (= "=") (call_expression "(*pcVar28)(iVar5)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar11 != 0) {\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0001365c(param_3,iVar5);\n        break;\n      }" ({ "{") (expression_statement "FUN_0001365c(param_3,iVar5);" (call_expression "FUN_0001365c(param_3,iVar5)" (identifier "FUN_0001365c") (argument_list "(param_3,iVar5)" (( "(") (identifier "param_3") (, ",") (identifier "iVar5") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24864)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24864)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24864)" (( "(") (binary_expression "pcVar27 + 0x24864" (identifier "pcVar27") (+ "+") (number_literal "0x24864")) () ")"))))) () ")")) (argument_list "(auStack_17c,auStack_17c,iVar5)" (( "(") (identifier "auStack_17c") (, ",") (identifier "auStack_17c") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24864)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24864)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24864)" (( "(") (binary_expression "pcVar27 + 0x24864" (identifier "pcVar27") (+ "+") (number_literal "0x24864")) () ")"))))) () ")")) (argument_list "(puVar18,puVar18,iVar5)" (( "(") (identifier "puVar18") (, ",") (identifier "puVar18") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);" (call_expression "(**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24864))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24864)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24864)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24864)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24864)" (( "(") (binary_expression "pcVar27 + 0x24864" (identifier "pcVar27") (+ "+") (number_literal "0x24864")) () ")"))))) () ")")) (argument_list "(auStack_164,auStack_164,iVar5)" (( "(") (identifier "auStack_164") (, ",") (identifier "auStack_164") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);" (assignment_expression "iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar27 + 0x24820))(iVar5,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x24820))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24820)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24820)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24820)" (( "(") (binary_expression "pcVar27 + 0x24820" (identifier "pcVar27") (+ "+") (number_literal "0x24820")) () ")"))))) () ")")) (argument_list "(iVar5,1)" (( "(") (identifier "iVar5") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar29 = uVar12;" (assignment_expression "uVar29 = uVar12" (identifier "uVar29") (= "=") (identifier "uVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (expression_statement "pcVar28 = *(code **)(pcVar27 + 0x2494c);" (assignment_expression "pcVar28 = *(code **)(pcVar27 + 0x2494c)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar27 + 0x2494c)" (* "*") (cast_expression "(code **)(pcVar27 + 0x2494c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x2494c)" (( "(") (binary_expression "pcVar27 + 0x2494c" (identifier "pcVar27") (+ "+") (number_literal "0x2494c")) () ")"))))) (; ";")) (} "}")))) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar28 = (code *)*piVar8;" (assignment_expression "pcVar28 = (code *)*piVar8" (identifier "pcVar28") (= "=") (cast_expression "(code *)*piVar8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (if_statement "if (pcStack_134 == pcVar28) {\n    return pcVar28;\n  }" (if "if") (parenthesized_expression "(pcStack_134 == pcVar28)" (( "(") (binary_expression "pcStack_134 == pcVar28" (identifier "pcStack_134") (== "==") (identifier "pcVar28")) () ")")) (compound_statement "{\n    return pcVar28;\n  }" ({ "{") (return_statement "return pcVar28;" (return "return") (identifier "pcVar28") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar27 + 0x24918))();" (call_expression "(**(code **)(pcVar27 + 0x24918))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x24918))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x24918)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x24918)" (* "*") (cast_expression "(code **)(pcVar27 + 0x24918)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x24918)" (( "(") (binary_expression "pcVar27 + 0x24918" (identifier "pcVar27") (+ "+") (number_literal "0x24918")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar27 = pcVar27 + 0x2c698;" (assignment_expression "pcVar27 = pcVar27 + 0x2c698" (identifier "pcVar27") (= "=") (binary_expression "pcVar27 + 0x2c698" (identifier "pcVar27") (+ "+") (number_literal "0x2c698"))) (; ";")) (expression_statement "pcVar28 = pcVar20;" (assignment_expression "pcVar28 = pcVar20" (identifier "pcVar28") (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "puVar16 = puVar21;" (assignment_expression "puVar16 = puVar21" (identifier "puVar16") (= "=") (identifier "puVar21")) (; ";")) (if_statement "if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;" (if "if") (parenthesized_expression "(((uint)puVar18 & 1) == 0)" (( "(") (binary_expression "((uint)puVar18 & 1) == 0" (parenthesized_expression "((uint)puVar18 & 1)" (( "(") (binary_expression "(uint)puVar18 & 1" (cast_expression "(uint)puVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar18")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000152f0;" (goto "goto") (statement_identifier "LAB_000152f0") (; ";"))) (do_statement "do {\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  } while( true );" (do "do") (compound_statement "{\n    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n    puStack_1bc = puVar21;\n    do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;\n    puVar21 = puStack_1bc + (int)auStack_164;\n    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);\n  }" ({ "{") (expression_statement "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" (identifier "uVar1") (= "=") (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))))) (; ";")) (expression_statement "puStack_1bc = puVar21;" (assignment_expression "puStack_1bc = puVar21" (identifier "puStack_1bc") (= "=") (identifier "puVar21")) (; ";")) (do_statement "do {\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    } while ((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))\n    ;" (do "do") (compound_statement "{\n      while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }\n      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);\n      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);\n      puVar21 = (undefined1 *)(uVar1 >> 0x20);\n      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }\n      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));\n      uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);\n      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;\n      iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n      puVar21 = (undefined1 *)(uVar2 >> 0x20);\n      if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }\n      puVar22 = puVar21 + (int)lVar3;\n      uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n      puStack_1bc = puVar23 + -(int)puVar22;\n      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));\n    }" ({ "{") (while_statement "while( true ) {\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);\n        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);\n        uVar19 = uVar29 + (uint)uVar1 * 2;\n        puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));\n        if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }\n        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;\n        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));\n        uVar29 = (uint)(puVar23 < puVar21) + iVar5;\n        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);\n        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);\n        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);\n        iVar5 = (int)((ulonglong)lVar3 >> 0x20);\n        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);\n        puVar21 = (undefined1 *)(uVar1 >> 0x20);\n        if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }\n        puVar22 = puVar21 + (int)lVar3;\n        uVar19 = (uint)(puVar22 < puVar21) + iVar5;\n        puVar21 = puVar23 + -(int)puVar22;\n        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));\n        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }\n        uVar19 = (uint)puVar18 >> 1;\n        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);\n        puVar17 = (undefined1 *)((uint)puVar17 >> 1);\n        pcVar27 = pcVar20;\n        if ((uVar19 & 1) != 0) break;\nLAB_000152f0:\n        pcVar20 = pcVar27;\n        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);\n        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }\n      }" ({ "{") (expression_statement "uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);" (assignment_expression "uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" (identifier "uVar29") (= "=") (call_expression "(uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20)" (( "(") (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20" (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16)" (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);" (assignment_expression "iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" (identifier "iVar5") (= "=") (cast_expression "(int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20)" (( "(") (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20" (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")"))) (* "*") (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar19 = uVar29 + (uint)uVar1 * 2;" (assignment_expression "uVar19 = uVar29 + (uint)uVar1 * 2" (identifier "uVar19") (= "=") (binary_expression "uVar29 + (uint)uVar1 * 2" (identifier "uVar29") (+ "+") (binary_expression "(uint)uVar1 * 2" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (* "*") (number_literal "2")))) (; ";")) (expression_statement "puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));" (assignment_expression "puVar21 = (undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)\n                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1))" (( "(") (binary_expression "(uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1)" (call_expression "(uint)(uVar19 < uVar29)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar19 < uVar29)" (( "(") (binary_expression "uVar19 < uVar29" (identifier "uVar19") (< "<") (identifier "uVar29")) () ")"))) (+ "+") (parenthesized_expression "((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1)" (( "(") (binary_expression "(uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1" (binary_expression "(uint)uVar1 >> 0x1f" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "0x1f")) (| "|") (binary_expression "(int)(uVar1 >> 0x20) << 1" (cast_expression "(int)(uVar1 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")"))) (<< "<<") (number_literal "1"))) () ")"))) () ")")))) (; ";")) (if_statement "if (CONCAT44(puVar21,uVar19) < uVar1) {\n          iVar5 = iVar5 + 1;\n        }" (if "if") (parenthesized_expression "(CONCAT44(puVar21,uVar19) < uVar1)" (( "(") (binary_expression "CONCAT44(puVar21,uVar19) < uVar1" (call_expression "CONCAT44(puVar21,uVar19)" (identifier "CONCAT44") (argument_list "(puVar21,uVar19)" (( "(") (identifier "puVar21") (, ",") (identifier "uVar19") () ")"))) (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n          iVar5 = iVar5 + 1;\n        }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;" (assignment_expression "uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" (identifier "uVar1") (= "=") (binary_expression "(ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" (parenthesized_expression "(ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff)" (( "(") (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff" (binary_expression "ZEXT48(puVar16) * ZEXT48(puVar16)" (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")")))) (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (cast_expression "(ulonglong)uStack_1c4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uStack_1c4")))) (; ";")) (expression_statement "puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));" (assignment_expression "puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" (identifier "puVar23") (= "=") (binary_expression "puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" (identifier "puVar21") (+ "+") (cast_expression "(int)(ZEXT48(pcVar28) * ZEXT48(pcVar28))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(ZEXT48(pcVar28) * ZEXT48(pcVar28))" (( "(") (binary_expression "ZEXT48(pcVar28) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")"))) (* "*") (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")")))) () ")"))))) (; ";")) (expression_statement "uVar29 = (uint)(puVar23 < puVar21) + iVar5;" (assignment_expression "uVar29 = (uint)(puVar23 < puVar21) + iVar5" (identifier "uVar29") (= "=") (binary_expression "(uint)(puVar23 < puVar21) + iVar5" (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar23 < puVar21)" (( "(") (binary_expression "puVar23 < puVar21" (identifier "puVar23") (< "<") (identifier "puVar21")) () ")"))) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);" (assignment_expression "uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20)" (identifier "uVar19") (= "=") (binary_expression "uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20)" (binary_expression "uVar19 * uStack_1c4" (identifier "uVar19") (* "*") (identifier "uStack_1c4")) (+ "+") (cast_expression "(int)(uVar1 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);" (assignment_expression "uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164)" (identifier "uVar2") (= "=") (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_164)" (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")) (* "*") (call_expression "ZEXT48(auStack_164)" (identifier "ZEXT48") (argument_list "(auStack_164)" (( "(") (identifier "auStack_164") () ")"))))) (; ";")) (expression_statement "lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);" (assignment_expression "lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c)" (identifier "lVar3") (= "=") (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_17c)" (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")) (* "*") (call_expression "ZEXT48(auStack_17c)" (identifier "ZEXT48") (argument_list "(auStack_17c)" (( "(") (identifier "auStack_17c") () ")"))))) (; ";")) (expression_statement "iVar5 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar3 >> 0x20)" (identifier "iVar5") (= "=") (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);" (assignment_expression "uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (identifier "uVar1") (= "=") (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +\n                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2" (binary_expression "ZEXT48(auStack_17c) * (uVar1 & 0xffffffff)" (call_expression "ZEXT48(auStack_17c)" (identifier "ZEXT48") (argument_list "(auStack_17c)" (( "(") (identifier "auStack_17c") () ")"))) (* "*") (parenthesized_expression "(uVar1 & 0xffffffff)" (( "(") (binary_expression "uVar1 & 0xffffffff" (identifier "uVar1") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (identifier "uVar2")) (+ "+") (parenthesized_expression "((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (( "(") (binary_expression "(uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20" (binary_expression "(uVar1 & 0xffffffff) * ZEXT48(auStack_164)" (parenthesized_expression "(uVar1 & 0xffffffff)" (( "(") (binary_expression "uVar1 & 0xffffffff" (identifier "uVar1") (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (call_expression "ZEXT48(auStack_164)" (identifier "ZEXT48") (argument_list "(auStack_164)" (( "(") (identifier "auStack_164") () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "puVar21 = (undefined1 *)(uVar1 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar1 >> 0x20)" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)(uVar1 >> 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (uVar1 < uVar2) {\n          iVar5 = iVar5 + 1;\n        }" (if "if") (parenthesized_expression "(uVar1 < uVar2)" (( "(") (binary_expression "uVar1 < uVar2" (identifier "uVar1") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n          iVar5 = iVar5 + 1;\n        }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "puVar22 = puVar21 + (int)lVar3;" (assignment_expression "puVar22 = puVar21 + (int)lVar3" (identifier "puVar22") (= "=") (binary_expression "puVar21 + (int)lVar3" (identifier "puVar21") (+ "+") (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3")))) (; ";")) (expression_statement "uVar19 = (uint)(puVar22 < puVar21) + iVar5;" (assignment_expression "uVar19 = (uint)(puVar22 < puVar21) + iVar5" (identifier "uVar19") (= "=") (binary_expression "(uint)(puVar22 < puVar21) + iVar5" (call_expression "(uint)(puVar22 < puVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar22 < puVar21)" (( "(") (binary_expression "puVar22 < puVar21" (identifier "puVar22") (< "<") (identifier "puVar21")) () ")"))) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "puVar21 = puVar23 + -(int)puVar22;" (assignment_expression "puVar21 = puVar23 + -(int)puVar22" (identifier "puVar21") (= "=") (binary_expression "puVar23 + -(int)puVar22" (identifier "puVar23") (+ "+") (unary_expression "-(int)puVar22" (- "-") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22"))))) (; ";")) (expression_statement "pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));" (assignment_expression "pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" (identifier "pcVar28") (= "=") (cast_expression "(code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar29 - uVar19) - (uint)(puVar23 < puVar21))" (( "(") (binary_expression "(uVar29 - uVar19) - (uint)(puVar23 < puVar21)" (parenthesized_expression "(uVar29 - uVar19)" (( "(") (binary_expression "uVar29 - uVar19" (identifier "uVar29") (- "-") (identifier "uVar19")) () ")")) (- "-") (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar23 < puVar21)" (( "(") (binary_expression "puVar23 < puVar21" (identifier "puVar23") (< "<") (identifier "puVar21")) () ")")))) () ")")))) (; ";")) (if_statement "if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }" (if "if") (parenthesized_expression "((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22))))" (( "(") (binary_expression "(uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))" (parenthesized_expression "(uVar29 < uVar19)" (( "(") (binary_expression "uVar29 < uVar19" (identifier "uVar29") (< "<") (identifier "uVar19")) () ")")) (|| "||") (parenthesized_expression "((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))" (( "(") (parenthesized_expression "(puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22))" (( "(") (comma_expression "puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)" (assignment_expression "puVar16 = puVar21" (identifier "puVar16") (= "=") (identifier "puVar21")) (, ",") (binary_expression "uVar19 == uVar29 && (puVar23 < puVar22)" (binary_expression "uVar19 == uVar29" (identifier "uVar19") (== "==") (identifier "uVar29")) (&& "&&") (parenthesized_expression "(puVar23 < puVar22)" (( "(") (binary_expression "puVar23 < puVar22" (identifier "puVar23") (< "<") (identifier "puVar22")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          puVar16 = puVar21 + (int)auStack_164;\n          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);\n        }" ({ "{") (expression_statement "puVar16 = puVar21 + (int)auStack_164;" (assignment_expression "puVar16 = puVar21 + (int)auStack_164" (identifier "puVar16") (= "=") (binary_expression "puVar21 + (int)auStack_164" (identifier "puVar21") (+ "+") (cast_expression "(int)auStack_164" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "auStack_164")))) (; ";")) (expression_statement "pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);" (assignment_expression "pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21)" (identifier "pcVar28") (= "=") (binary_expression "pcVar28 + (int)auStack_17c + (puVar16 < puVar21)" (binary_expression "pcVar28 + (int)auStack_17c" (identifier "pcVar28") (+ "+") (cast_expression "(int)auStack_17c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "auStack_17c"))) (+ "+") (parenthesized_expression "(puVar16 < puVar21)" (( "(") (binary_expression "puVar16 < puVar21" (identifier "puVar16") (< "<") (identifier "puVar21")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar19 = (uint)puVar18 >> 1;" (assignment_expression "uVar19 = (uint)puVar18 >> 1" (identifier "uVar19") (= "=") (binary_expression "(uint)puVar18 >> 1" (cast_expression "(uint)puVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar18")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);" (assignment_expression "puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19)" (identifier "puVar18") (= "=") (cast_expression "(undefined1 *)((int)puVar17 << 0x1f | uVar19)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 << 0x1f | uVar19)" (( "(") (binary_expression "(int)puVar17 << 0x1f | uVar19" (binary_expression "(int)puVar17 << 0x1f" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (<< "<<") (number_literal "0x1f")) (| "|") (identifier "uVar19")) () ")")))) (; ";")) (expression_statement "puVar17 = (undefined1 *)((uint)puVar17 >> 1);" (assignment_expression "puVar17 = (undefined1 *)((uint)puVar17 >> 1)" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)((uint)puVar17 >> 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)puVar17 >> 1)" (( "(") (binary_expression "(uint)puVar17 >> 1" (cast_expression "(uint)puVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar17")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pcVar27 = pcVar20;" (assignment_expression "pcVar27 = pcVar20" (identifier "pcVar27") (= "=") (identifier "pcVar20")) (; ";")) (if_statement "if ((uVar19 & 1) != 0) break;" (if "if") (parenthesized_expression "((uVar19 & 1) != 0)" (( "(") (binary_expression "(uVar19 & 1) != 0" (parenthesized_expression "(uVar19 & 1)" (( "(") (binary_expression "uVar19 & 1" (identifier "uVar19") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000152f0:\n        pcVar20 = pcVar27;" (statement_identifier "LAB_000152f0") (: ":") (expression_statement "pcVar20 = pcVar27;" (assignment_expression "pcVar20 = pcVar27" (identifier "pcVar20") (= "=") (identifier "pcVar27")) (; ";"))) (expression_statement "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" (identifier "uVar1") (= "=") (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))))) (; ";")) (if_statement "if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {\n          return pcVar20;\n        }" (if "if") (parenthesized_expression "(puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0" (binary_expression "puVar17 == (undefined1 *)0x0" (identifier "puVar17") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "puVar18 == (undefined1 *)0x0" (identifier "puVar18") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          return pcVar20;\n        }" ({ "{") (return_statement "return pcVar20;" (return "return") (identifier "pcVar20") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);" (assignment_expression "iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" (identifier "iVar5") (= "=") (cast_expression "(int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20)" (( "(") (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20" (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar20)" (identifier "ZEXT48") (argument_list "(pcVar20)" (( "(") (identifier "pcVar20") () ")"))) (* "*") (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);" (assignment_expression "uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" (identifier "uVar1") (= "=") (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +\n              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc)" (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar20)" (identifier "ZEXT48") (argument_list "(pcVar20)" (( "(") (identifier "pcVar20") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")")))) (+ "+") (binary_expression "ZEXT48(pcVar28) * ZEXT48(puStack_1bc)" (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")"))) (* "*") (call_expression "ZEXT48(puStack_1bc)" (identifier "ZEXT48") (argument_list "(puStack_1bc)" (( "(") (identifier "puStack_1bc") () ")"))))) (+ "+") (parenthesized_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20)" (( "(") (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20" (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16)" (call_expression "ZEXT48(puStack_1bc)" (identifier "ZEXT48") (argument_list "(puStack_1bc)" (( "(") (identifier "puStack_1bc") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "puVar21 = (undefined1 *)(uVar1 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar1 >> 0x20)" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)(uVar1 >> 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {\n        iVar5 = iVar5 + 1;\n      }" (if "if") (parenthesized_expression "(uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16))" (( "(") (binary_expression "uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)" (identifier "uVar1") (< "<") (binary_expression "ZEXT48(pcVar20) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar20)" (identifier "ZEXT48") (argument_list "(pcVar20)" (( "(") (identifier "pcVar20") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))))) () ")")) (compound_statement "{\n        iVar5 = iVar5 + 1;\n      }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;" (assignment_expression "uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" (identifier "uVar2") (= "=") (binary_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4" (parenthesized_expression "(ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff)" (( "(") (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff" (binary_expression "ZEXT48(puStack_1bc) * ZEXT48(puVar16)" (call_expression "ZEXT48(puStack_1bc)" (identifier "ZEXT48") (argument_list "(puStack_1bc)" (( "(") (identifier "puStack_1bc") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")")))) (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (cast_expression "(ulonglong)uStack_1c4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uStack_1c4")))) (; ";")) (expression_statement "puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));" (assignment_expression "puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" (identifier "puVar23") (= "=") (binary_expression "puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" (identifier "puVar21") (+ "+") (cast_expression "(int)(ZEXT48(pcVar20) * ZEXT48(pcVar28))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(ZEXT48(pcVar20) * ZEXT48(pcVar28))" (( "(") (binary_expression "ZEXT48(pcVar20) * ZEXT48(pcVar28)" (call_expression "ZEXT48(pcVar20)" (identifier "ZEXT48") (argument_list "(pcVar20)" (( "(") (identifier "pcVar20") () ")"))) (* "*") (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")")))) () ")"))))) (; ";")) (expression_statement "uVar29 = (uint)(puVar23 < puVar21) + iVar5;" (assignment_expression "uVar29 = (uint)(puVar23 < puVar21) + iVar5" (identifier "uVar29") (= "=") (binary_expression "(uint)(puVar23 < puVar21) + iVar5" (call_expression "(uint)(puVar23 < puVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar23 < puVar21)" (( "(") (binary_expression "puVar23 < puVar21" (identifier "puVar23") (< "<") (identifier "puVar21")) () ")"))) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);" (assignment_expression "uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20)" (identifier "uVar19") (= "=") (binary_expression "(int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20)" (binary_expression "(int)uVar1 * uStack_1c4" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (* "*") (identifier "uStack_1c4")) (+ "+") (cast_expression "(int)(uVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);" (assignment_expression "uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164)" (identifier "uVar1") (= "=") (binary_expression "(ulonglong)uVar19 * ZEXT48(auStack_164)" (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")) (* "*") (call_expression "ZEXT48(auStack_164)" (identifier "ZEXT48") (argument_list "(auStack_164)" (( "(") (identifier "auStack_164") () ")"))))) (; ";")) (expression_statement "lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;" (assignment_expression "lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19" (identifier "lVar3") (= "=") (binary_expression "ZEXT48(auStack_17c) * (ulonglong)uVar19" (call_expression "ZEXT48(auStack_17c)" (identifier "ZEXT48") (argument_list "(auStack_17c)" (( "(") (identifier "auStack_17c") () ")"))) (* "*") (cast_expression "(ulonglong)uVar19" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar19")))) (; ";")) (expression_statement "iVar5 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar3 >> 0x20)" (identifier "iVar5") (= "=") (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);" (assignment_expression "uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (identifier "uVar2") (= "=") (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +\n              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1" (binary_expression "ZEXT48(auStack_17c) * (uVar2 & 0xffffffff)" (call_expression "ZEXT48(auStack_17c)" (identifier "ZEXT48") (argument_list "(auStack_17c)" (( "(") (identifier "auStack_17c") () ")"))) (* "*") (parenthesized_expression "(uVar2 & 0xffffffff)" (( "(") (binary_expression "uVar2 & 0xffffffff" (identifier "uVar2") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (identifier "uVar1")) (+ "+") (parenthesized_expression "((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20)" (( "(") (binary_expression "(uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20" (binary_expression "(uVar2 & 0xffffffff) * ZEXT48(auStack_164)" (parenthesized_expression "(uVar2 & 0xffffffff)" (( "(") (binary_expression "uVar2 & 0xffffffff" (identifier "uVar2") (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (call_expression "ZEXT48(auStack_164)" (identifier "ZEXT48") (argument_list "(auStack_164)" (( "(") (identifier "auStack_164") () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "puVar21 = (undefined1 *)(uVar2 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)(uVar2 >> 0x20)" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)(uVar2 >> 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (uVar2 < uVar1) {\n        iVar5 = iVar5 + 1;\n      }" (if "if") (parenthesized_expression "(uVar2 < uVar1)" (( "(") (binary_expression "uVar2 < uVar1" (identifier "uVar2") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n        iVar5 = iVar5 + 1;\n      }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "puVar22 = puVar21 + (int)lVar3;" (assignment_expression "puVar22 = puVar21 + (int)lVar3" (identifier "puVar22") (= "=") (binary_expression "puVar21 + (int)lVar3" (identifier "puVar21") (+ "+") (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3")))) (; ";")) (expression_statement "uVar19 = (uint)(puVar22 < puVar21) + iVar5;" (assignment_expression "uVar19 = (uint)(puVar22 < puVar21) + iVar5" (identifier "uVar19") (= "=") (binary_expression "(uint)(puVar22 < puVar21) + iVar5" (call_expression "(uint)(puVar22 < puVar21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar22 < puVar21)" (( "(") (binary_expression "puVar22 < puVar21" (identifier "puVar22") (< "<") (identifier "puVar21")) () ")"))) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "puStack_1bc = puVar23 + -(int)puVar22;" (assignment_expression "puStack_1bc = puVar23 + -(int)puVar22" (identifier "puStack_1bc") (= "=") (binary_expression "puVar23 + -(int)puVar22" (identifier "puVar23") (+ "+") (unary_expression "-(int)puVar22" (- "-") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22"))))) (; ";")) (expression_statement "pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));" (assignment_expression "pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" (identifier "pcVar20") (= "=") (cast_expression "(code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc))" (( "(") (binary_expression "(uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc)" (parenthesized_expression "(uVar29 - uVar19)" (( "(") (binary_expression "uVar29 - uVar19" (identifier "uVar29") (- "-") (identifier "uVar19")) () ")")) (- "-") (call_expression "(uint)(puVar23 < puStack_1bc)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar23 < puStack_1bc)" (( "(") (binary_expression "puVar23 < puStack_1bc" (identifier "puVar23") (< "<") (identifier "puStack_1bc")) () ")")))) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))" (( "(") (binary_expression "(uVar19 <= uVar29) &&\n            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)))" (parenthesized_expression "(uVar19 <= uVar29)" (( "(") (binary_expression "uVar19 <= uVar29" (identifier "uVar19") (<= "<=") (identifier "uVar29")) () ")")) (&& "&&") (parenthesized_expression "((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)))" (( "(") (parenthesized_expression "(uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))" (( "(") (comma_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23)" (assignment_expression "uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16)" (identifier "uVar1") (= "=") (binary_expression "ZEXT48(pcVar28) * ZEXT48(puVar16)" (call_expression "ZEXT48(pcVar28)" (identifier "ZEXT48") (argument_list "(pcVar28)" (( "(") (identifier "pcVar28") () ")"))) (* "*") (call_expression "ZEXT48(puVar16)" (identifier "ZEXT48") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))))) (, ",") (binary_expression "uVar19 != uVar29 || (puVar22 <= puVar23)" (binary_expression "uVar19 != uVar29" (identifier "uVar19") (!= "!=") (identifier "uVar29")) (|| "||") (parenthesized_expression "(puVar22 <= puVar23)" (( "(") (binary_expression "puVar22 <= puVar23" (identifier "puVar22") (<= "<=") (identifier "puVar23")) () ")")))) () ")")) () ")"))) () ")")) (; ";")) (expression_statement "puVar21 = puStack_1bc + (int)auStack_164;" (assignment_expression "puVar21 = puStack_1bc + (int)auStack_164" (identifier "puVar21") (= "=") (binary_expression "puStack_1bc + (int)auStack_164" (identifier "puStack_1bc") (+ "+") (cast_expression "(int)auStack_164" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "auStack_164")))) (; ";")) (expression_statement "pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);" (assignment_expression "pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc)" (identifier "pcVar20") (= "=") (binary_expression "pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc)" (binary_expression "pcVar20 + (int)auStack_17c" (identifier "pcVar20") (+ "+") (cast_expression "(int)auStack_17c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "auStack_17c"))) (+ "+") (parenthesized_expression "(puVar21 < puStack_1bc)" (( "(") (binary_expression "puVar21 < puStack_1bc" (identifier "puVar21") (< "<") (identifier "puStack_1bc")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (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: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (return_statement (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) condition: (parenthesized_expression (true))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (break_statement))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) consequence: (compound_statement (return_statement (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) condition: (parenthesized_expression (true))))))

/* WARNING: Removing unreachable block (ram,0x000151d4) */
/* WARNING: Removing unreachable block (ram,0x00015078) */
/* WARNING: Removing unreachable block (ram,0x00015104) */
/* WARNING: Removing unreachable block (ram,0x00015260) */

code * MASKED(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3)

{
  ulonglong uVar1;
  ulonglong uVar2;
  longlong lVar3;
  undefined *puVar4;
  int iVar5;
  byte *pbVar6;
  undefined4 uVar7;
  int *piVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  undefined4 *puVar13;
  int iVar14;
  undefined4 *puVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  undefined1 *puVar18;
  uint uVar19;
  code *pcVar20;
  undefined1 *puVar21;
  undefined1 *puVar22;
  undefined4 *unaff_s0;
  undefined4 *unaff_s1;
  undefined4 *unaff_s2;
  undefined1 *puVar23;
  undefined4 *unaff_s3;
  undefined *unaff_s5;
  undefined *unaff_s6;
  undefined1 *unaff_s7;
  undefined *puVar24;
  code *pcVar25;
  undefined *puVar26;
  code *pcVar27;
  code *pcVar28;
  uint uVar29;
  uint uStack_1c4;
  undefined1 *puStack_1bc;
  uint uStack_1b0;
  uint uStack_1a8;
  undefined1 auStack_17c [12];
  undefined1 auStack_170 [12];
  undefined1 auStack_164 [12];
  undefined1 auStack_158 [12];
  undefined1 auStack_14c [12];
  undefined1 auStack_140 [12];
  code *pcStack_134;
  undefined4 *puStack_130;
  undefined4 *puStack_12c;
  undefined4 *puStack_128;
  undefined4 *puStack_124;
  undefined4 *puStack_120;
  undefined *puStack_11c;
  undefined *puStack_118;
  undefined1 *puStack_114;
  undefined *puStack_110;
  code *pcStack_10c;
  undefined *puStack_f8;
  undefined *puStack_f4;
  undefined *puStack_f0;
  code *pcStack_e4;
  undefined4 *puStack_e0;
  code *pcStack_dc;
  int *piStack_d8;
  int *piStack_d4;
  int aiStack_d0 [2];
  undefined *puStack_c8;
  undefined auStack_c4 [12];
  undefined4 auStack_b8 [3];
  undefined4 auStack_ac [3];
  undefined4 auStack_a0 [3];
  int iStack_94;
  undefined4 *puStack_90;
  undefined4 *puStack_8c;
  undefined4 *puStack_88;
  undefined4 *puStack_84;
  undefined *puStack_80;
  undefined *puStack_7c;
  undefined *puStack_78;
  undefined1 *puStack_74;
  undefined *puStack_70;
  code *pcStack_6c;
  undefined1 auStack_44 [12];
  undefined1 auStack_38 [12];
  code *local_2c;
  
  puVar4 = PTR___stack_chk_guard_00039368;
  iVar5 = param_1[1];
  param_2[1] = 0;
  param_2[2] = 0;
  local_2c = *(code **)puVar4;
  *param_2 = 0;
  puVar26 = PTR_DAT_000390f8;
  puVar13 = param_1;
  if (iVar5 != 0) {
    if (PTR_DAT_000390f8[-0x6c28] != '\0') {
      (*(code *)PTR_fwrite_00039328)
                (PTR_LAB_00039108 + 0x4c20,1,0x11,*(undefined4 *)PTR_stderr_00039390);
    }
    (*(code *)PTR___gmpz_init_0003924c)(auStack_44);
    puVar15 = (undefined4 *)(*(code *)PTR___gmpz_scan1_000393ac)(param_1,0);
    param_3 = puVar15;
    (*(code *)PTR___gmpz_fdiv_q_2exp_00039320)(param_1,param_1);
    if (puVar15 != (undefined4 *)0x0) {
      do {
        puVar15 = (undefined4 *)((int)puVar15 + -1);
        (*(code *)PTR___gmpz_init_set_ui_00039294)(auStack_38,2);
        FUN_0001365c(param_2,auStack_38);
        (*(code *)PTR___gmpz_clear_000392c8)(auStack_38);
      } while (puVar15 != (undefined4 *)0x0);
    }
    unaff_s2 = (undefined4 *)0x1;
    unaff_s1 = (undefined4 *)0x3;
    unaff_s7 = auStack_38;
    unaff_s6 = PTR_00039104 + 0x365c;
    unaff_s5 = PTR_LAB_00039108 + 0x7e4c;
    do {
      while (iVar5 = (*(code *)PTR___gmpz_divisible_ui_p_000392d8)(param_1,unaff_s1), iVar5 == 0) {
        pbVar6 = (byte *)((int)unaff_s2 + (int)unaff_s5);
        unaff_s2 = (undefined4 *)((int)unaff_s2 + 1);
        unaff_s1 = (undefined4 *)((int)unaff_s1 + (uint)*pbVar6);
        iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,(int)unaff_s1 * (int)unaff_s1);
        if ((iVar5 < 0) || (unaff_s2 == (undefined4 *)0x29d)) goto LAB_00014628;
      }
      param_3 = unaff_s1;
      (*(code *)PTR___gmpz_tdiv_q_ui_0003933c)(param_1,param_1);
      (*(code *)PTR___gmpz_init_set_ui_00039294)(unaff_s7,unaff_s1);
      FUN_0001365c(param_2,unaff_s7);
      (*(code *)PTR___gmpz_clear_000392c8)(unaff_s7);
    } while (unaff_s2 != (undefined4 *)0x29d);
LAB_00014628:
    (*(code *)PTR___gmpz_clear_000392c8)(auStack_44);
    iVar5 = (*(code *)PTR___gmpz_cmp_ui_00039258)(param_1,1);
    unaff_s0 = param_1;
    unaff_s3 = param_2;
    if (iVar5 != 0) {
      if (puVar26[-0x6c28] != '\0') {
        param_3 = (undefined4 *)0x13;
        (*(code *)PTR_fwrite_00039328)
                  (PTR_LAB_00039108 + 0x4c34,1,0x13,*(undefined4 *)PTR_stderr_00039390);
      }
      iVar5 = FUN_00014704(param_1);
      if (iVar5 == 0) {
        puVar13 = param_1;
        param_3 = param_2;
        FUN_00014a38(param_1,1);
      }
      else {
        puVar13 = param_2;
        FUN_0001365c(param_2,param_1);
      }
    }
  }
  if (local_2c == *(code **)puVar4) {
    return *(code **)puVar4;
  }
  pcVar27 = FUN_00014704;
  puVar24 = PTR___stack_chk_fail_00039350;
  (*(code *)PTR___stack_chk_fail_00039350)();
  puStack_f0 = puVar24 + 0x2c9cc;
  piStack_d8 = *(int **)(puVar24 + 0x24c64);
  puVar15 = (undefined4 *)0x1;
  puStack_80 = puVar4;
  puStack_70 = puVar26;
  iStack_94 = *piStack_d8;
  puStack_90 = unaff_s0;
  puStack_8c = unaff_s1;
  puStack_88 = unaff_s2;
  puStack_84 = unaff_s3;
  puStack_7c = unaff_s5;
  puStack_78 = unaff_s6;
  puStack_74 = unaff_s7;
  pcStack_6c = pcVar27;
  iVar5 = (**(code **)(puVar24 + 0x24b54))();
  if (iVar5 < 1) {
    pcStack_dc = (code *)0x0;
  }
  else {
    puVar15 = (undefined4 *)0x17ded79;
    iVar5 = (**(code **)(puStack_f0 + -0x7e78))(puVar13);
    if (iVar5 < 0) {
      pcStack_dc = (code *)0x1;
    }
    else {
      unaff_s2 = auStack_ac;
      unaff_s1 = auStack_b8;
      puStack_f8 = (undefined *)0x0;
      unaff_s5 = auStack_c4;
      unaff_s0 = auStack_a0;
      (**(code **)(puStack_f0 + -0x7d88))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);
      (**(code **)(puStack_f0 + -0x7d48))(unaff_s2,puVar13,1);
      unaff_s6 = (undefined *)(**(code **)(puStack_f0 + -0x7d24))(unaff_s2,0);
      (**(code **)(puStack_f0 + -0x7e24))(unaff_s5,unaff_s2,unaff_s6);
      (**(code **)(puStack_f0 + -0x7d58))(unaff_s1,2);
      pcStack_e4 = (code *)(*(int *)(puStack_f0 + -0x7fcc) + 0x42e0);
      puStack_f8 = unaff_s5;
      puStack_f4 = unaff_s6;
      pcStack_dc = (code *)FUN_000142e0(puVar13,unaff_s2,unaff_s1,unaff_s0);
      if (pcStack_dc != (code *)0x0) {
        piStack_d4 = aiStack_d0;
        (**(code **)(puStack_f0 + -0x7d8c))(unaff_s0,unaff_s2);
        MASKED(unaff_s0,aiStack_d0);
        unaff_s3 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 0x7e4c);
        puStack_e0 = (undefined4 *)(*(int *)(puStack_f0 + -0x7fc8) + 33000);
        while (unaff_s7 = (undefined1 *)0x0, puStack_c8 != (undefined *)0x0) {
          puVar26 = (undefined *)0x0;
          do {
            puVar26 = puVar26 + 1;
            (**(code **)(puStack_f0 + -0x7d84))(unaff_s0,unaff_s2,unaff_s7 + aiStack_d0[0]);
            (**(code **)(puStack_f0 + -0x7d78))(unaff_s0,unaff_s1,unaff_s0,puVar13);
            iVar5 = (**(code **)(puStack_f0 + -0x7e78))(unaff_s0,1);
            if (puStack_c8 <= puVar26) {
              pcVar27 = *(code **)(puStack_f0 + -0x7de4);
              if (iVar5 == 0) goto LAB_00014908;
              goto LAB_000149e4;
            }
            unaff_s7 = unaff_s7 + 0xc;
          } while (iVar5 != 0);
          pcVar27 = *(code **)(puStack_f0 + -0x7de4);
LAB_00014908:
          (*pcVar27)(unaff_s1,unaff_s1,*(undefined1 *)unaff_s3);
          puStack_f8 = unaff_s5;
          puStack_f4 = unaff_s6;
          iVar5 = (*pcStack_e4)(puVar13,unaff_s2,unaff_s1,unaff_s0);
          if (iVar5 == 0) {
            pcStack_dc = (code *)0x0;
            break;
          }
          unaff_s3 = (undefined4 *)((int)unaff_s3 + 1);
          if (puStack_e0 == unaff_s3) {
            uVar7 = (**(code **)(puStack_f0 + -0x7d7c))(0,*(int *)(puStack_f0 + -0x7fc8) + 0x4c48,5)
            ;
            (**(code **)(puStack_f0 + -0x7dc0))(0,0,uVar7);
            pcVar27 = (code *)(**(code **)(puStack_f0 + -0x7e94))();
            return pcVar27;
          }
        }
LAB_000149e4:
        FUN_00012488(piStack_d4);
      }
      puStack_f8 = (undefined *)0x0;
      puVar15 = unaff_s1;
      param_3 = unaff_s2;
      (**(code **)(puStack_f0 + -0x7d4c))(unaff_s5,unaff_s1,unaff_s2,unaff_s0);
    }
  }
  if (iStack_94 == *piStack_d8) {
    return pcStack_dc;
  }
  pcVar27 = *(code **)(puStack_f0 + -0x7d80);
  pcVar28 = FUN_00014a38;
  iVar5 = iStack_94;
  (*pcVar27)();
  piVar8 = *(int **)(pcVar27 + 0x24930);
  iVar14 = *(int *)(pcVar27 + 0x246c0);
  pcStack_134 = (code *)*piVar8;
  puStack_130 = unaff_s0;
  puStack_12c = unaff_s1;
  puStack_128 = unaff_s2;
  puStack_124 = unaff_s3;
  puStack_120 = puVar13;
  puStack_11c = unaff_s5;
  puStack_118 = unaff_s6;
  puStack_114 = unaff_s7;
  puStack_110 = puVar26;
  pcStack_10c = pcVar28;
  if (*(char *)(iVar14 + -0x6c28) != '\0') {
    (**(code **)(pcVar27 + 0x24824))
              (**(undefined4 **)(pcVar27 + 0x24958),1,*(int *)(pcVar27 + 0x246d0) + 0x4c7c,puVar15);
  }
  puVar21 = auStack_140;
  puVar17 = auStack_14c;
  (**(code **)(pcVar27 + 0x24910))(puVar17,puVar21,0);
  puVar18 = auStack_170;
  pcVar20 = (code *)auStack_158;
  (**(code **)(pcVar27 + 0x248bc))(auStack_164,2);
  (**(code **)(pcVar27 + 0x248bc))(auStack_17c,2);
  (**(code **)(pcVar27 + 0x248bc))(puVar18,2);
  (**(code **)(pcVar27 + 0x2485c))(pcVar20,1);
  uStack_1a8 = 1;
  uStack_1b0 = 0;
  pcVar28 = (code *)(*(int *)(pcVar27 + 0x246cc) + 0x4704);
  iVar9 = *(int *)(pcVar27 + 0x246cc);
  iVar10 = *(int *)(pcVar27 + 0x246d0);
  iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);
  uVar19 = 0;
  uVar29 = 1;
  if (iVar11 == 0) {
    pcVar28 = *(code **)(pcVar27 + 0x2494c);
  }
  else {
LAB_00014bb0:
    do {
      while( true ) {
        uVar12 = uVar29;
        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_17c,auStack_17c);
        (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);
        (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);
        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_17c);
        (**(code **)(pcVar27 + 0x24908))(puVar21,pcVar20,puVar17);
        (**(code **)(pcVar27 + 0x24864))(pcVar20,puVar21,iVar5);
        if ((uVar12 & 0x1f) == 1) break;
        uVar29 = uVar12 - 1;
        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);
        if (uVar19 == 0 && uVar29 == 0) {
LAB_00014cb0:
          uVar12 = uVar12 - 1;
          (**(code **)(pcVar27 + 0x2490c))(puVar18,auStack_17c);
          if (uStack_1b0 != 0 || uStack_1a8 != 0) {
            do {
              pcVar25 = *(code **)(pcVar27 + 0x24908);
              uVar29 = uVar12;
              while( true ) {
                (*pcVar25)(puVar17,auStack_17c,auStack_17c);
                (**(code **)(pcVar27 + 0x24864))(auStack_17c,puVar17,iVar5);
                (**(code **)(pcVar27 + 0x248b4))(auStack_17c,auStack_17c,puVar15);
                uVar12 = uVar29 + 1;
                uVar19 = (uVar12 < uVar29) + uVar19;
                if (uVar19 != uStack_1b0) break;
                pcVar25 = *(code **)(pcVar27 + 0x24908);
                uVar29 = uVar12;
                if (uVar12 == uStack_1a8) goto LAB_00014d60;
              }
            } while( true );
          }
LAB_00014d60:
          (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);
          uVar19 = uStack_1b0;
          uVar29 = uStack_1a8;
          uStack_1b0 = uStack_1a8 >> 0x1f | uStack_1b0 << 1;
          uStack_1a8 = uStack_1a8 << 1;
        }
      }
      (**(code **)(pcVar27 + 0x24838))(puVar17,pcVar20,iVar5);
      iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);
      if (iVar11 == 0) {
        (**(code **)(pcVar27 + 0x2490c))(auStack_164,auStack_17c);
        uVar29 = uVar12 - 1;
        uVar19 = (uint)(uVar29 < uVar12) + (uVar19 - 1);
        if (uVar19 == 0 && uVar29 == 0) goto LAB_00014cb0;
        goto LAB_00014bb0;
      }
      do {
        (**(code **)(pcVar27 + 0x24908))(puVar17,auStack_164,auStack_164);
        (**(code **)(pcVar27 + 0x24864))(auStack_164,puVar17,iVar5);
        (**(code **)(pcVar27 + 0x248b4))(auStack_164,auStack_164,puVar15);
        (**(code **)(pcVar27 + 0x24928))(puVar17,puVar18,auStack_164);
        (**(code **)(pcVar27 + 0x24838))(puVar17,puVar17,iVar5);
        iVar11 = (**(code **)(pcVar27 + 0x24820))(puVar17,1);
      } while (iVar11 == 0);
      (**(code **)(pcVar27 + 0x24914))(iVar5,iVar5,puVar17);
      iVar11 = (*pcVar28)(puVar17);
      if (iVar11 == 0) {
        if (*(char *)(iVar14 + -0x6c28) != '\0') {
          (**(code **)(pcVar27 + 0x248f0))
                    (iVar10 + 0x4c94,1,0x2b,**(undefined4 **)(pcVar27 + 0x24958));
        }
        FUN_00014a38(puVar17,(int)puVar15 + 1,param_3);
        iVar11 = (*pcVar28)(iVar5);
      }
      else {
        (*(code *)(iVar9 + 0x365c))(param_3,puVar17);
        iVar11 = (*pcVar28)(iVar5);
      }
      if (iVar11 != 0) {
        FUN_0001365c(param_3,iVar5);
        break;
      }
      (**(code **)(pcVar27 + 0x24864))(auStack_17c,auStack_17c,iVar5);
      (**(code **)(pcVar27 + 0x24864))(puVar18,puVar18,iVar5);
      (**(code **)(pcVar27 + 0x24864))(auStack_164,auStack_164,iVar5);
      iVar11 = (**(code **)(pcVar27 + 0x24820))(iVar5,1);
      uVar29 = uVar12;
    } while (iVar11 != 0);
    pcVar28 = *(code **)(pcVar27 + 0x2494c);
  }
  (*pcVar28)();
  pcVar28 = (code *)*piVar8;
  if (pcStack_134 == pcVar28) {
    return pcVar28;
  }
  (**(code **)(pcVar27 + 0x24918))();
  pcVar27 = pcVar27 + 0x2c698;
  pcVar28 = pcVar20;
  puVar16 = puVar21;
  if (((uint)puVar18 & 1) == 0) goto LAB_000152f0;
  do {
    uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);
    puStack_1bc = puVar21;
    do {
      while( true ) {
        uVar29 = (uint)(ZEXT48(puVar16) * ZEXT48(puVar16) >> 0x20);
        iVar5 = (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28) >> 0x20);
        uVar19 = uVar29 + (uint)uVar1 * 2;
        puVar21 = (undefined1 *)
                  ((uint)(uVar19 < uVar29) + ((uint)uVar1 >> 0x1f | (int)(uVar1 >> 0x20) << 1));
        if (CONCAT44(puVar21,uVar19) < uVar1) {
          iVar5 = iVar5 + 1;
        }
        uVar1 = (ZEXT48(puVar16) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;
        puVar23 = puVar21 + (int)(ZEXT48(pcVar28) * ZEXT48(pcVar28));
        uVar29 = (uint)(puVar23 < puVar21) + iVar5;
        uVar19 = uVar19 * uStack_1c4 + (int)(uVar1 >> 0x20);
        uVar2 = (ulonglong)uVar19 * ZEXT48(auStack_164);
        lVar3 = (ulonglong)uVar19 * ZEXT48(auStack_17c);
        iVar5 = (int)((ulonglong)lVar3 >> 0x20);
        uVar1 = ZEXT48(auStack_17c) * (uVar1 & 0xffffffff) + uVar2 +
                ((uVar1 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);
        puVar21 = (undefined1 *)(uVar1 >> 0x20);
        if (uVar1 < uVar2) {
          iVar5 = iVar5 + 1;
        }
        puVar22 = puVar21 + (int)lVar3;
        uVar19 = (uint)(puVar22 < puVar21) + iVar5;
        puVar21 = puVar23 + -(int)puVar22;
        pcVar28 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puVar21));
        if ((uVar29 < uVar19) || ((puVar16 = puVar21, uVar19 == uVar29 && (puVar23 < puVar22)))) {
          puVar16 = puVar21 + (int)auStack_164;
          pcVar28 = pcVar28 + (int)auStack_17c + (puVar16 < puVar21);
        }
        uVar19 = (uint)puVar18 >> 1;
        puVar18 = (undefined1 *)((int)puVar17 << 0x1f | uVar19);
        puVar17 = (undefined1 *)((uint)puVar17 >> 1);
        pcVar27 = pcVar20;
        if ((uVar19 & 1) != 0) break;
LAB_000152f0:
        pcVar20 = pcVar27;
        uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16);
        if (puVar17 == (undefined1 *)0x0 && puVar18 == (undefined1 *)0x0) {
          return pcVar20;
        }
      }
      iVar5 = (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28) >> 0x20);
      uVar1 = ZEXT48(pcVar20) * ZEXT48(puVar16) + ZEXT48(pcVar28) * ZEXT48(puStack_1bc) +
              (ZEXT48(puStack_1bc) * ZEXT48(puVar16) >> 0x20);
      puVar21 = (undefined1 *)(uVar1 >> 0x20);
      if (uVar1 < ZEXT48(pcVar20) * ZEXT48(puVar16)) {
        iVar5 = iVar5 + 1;
      }
      uVar2 = (ZEXT48(puStack_1bc) * ZEXT48(puVar16) & 0xffffffff) * (ulonglong)uStack_1c4;
      puVar23 = puVar21 + (int)(ZEXT48(pcVar20) * ZEXT48(pcVar28));
      uVar29 = (uint)(puVar23 < puVar21) + iVar5;
      uVar19 = (int)uVar1 * uStack_1c4 + (int)(uVar2 >> 0x20);
      uVar1 = (ulonglong)uVar19 * ZEXT48(auStack_164);
      lVar3 = ZEXT48(auStack_17c) * (ulonglong)uVar19;
      iVar5 = (int)((ulonglong)lVar3 >> 0x20);
      uVar2 = ZEXT48(auStack_17c) * (uVar2 & 0xffffffff) + uVar1 +
              ((uVar2 & 0xffffffff) * ZEXT48(auStack_164) >> 0x20);
      puVar21 = (undefined1 *)(uVar2 >> 0x20);
      if (uVar2 < uVar1) {
        iVar5 = iVar5 + 1;
      }
      puVar22 = puVar21 + (int)lVar3;
      uVar19 = (uint)(puVar22 < puVar21) + iVar5;
      puStack_1bc = puVar23 + -(int)puVar22;
      pcVar20 = (code *)((uVar29 - uVar19) - (uint)(puVar23 < puStack_1bc));
    } while ((uVar19 <= uVar29) &&
            ((uVar1 = ZEXT48(pcVar28) * ZEXT48(puVar16), uVar19 != uVar29 || (puVar22 <= puVar23))))
    ;
    puVar21 = puStack_1bc + (int)auStack_164;
    pcVar20 = pcVar20 + (int)auStack_17c + (puVar21 < puStack_1bc);
  } while( true );
}

