
int rsakey_encrypted(Filename *filename,char **comment)

{
  undefined *puVar1;
  uchar extraout_var;
  uchar extraout_var_00;
  uchar extraout_var_01;
  Filename *pFVar2;
  FILE *pFVar3;
  int iVar4;
  FILE *fp;
  char *pcVar5;
  char *pcVar6;
  uchar *puVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  undefined1 uVar10;
  uchar uVar11;
  uint len;
  char *decimal;
  undefined4 *puVar12;
  undefined4 *puVar13;
  undefined4 uVar14;
  Bignum_conflict pBVar15;
  char *pcVar16;
  undefined4 uVar17;
  FILE *pFVar18;
  uchar *puVar19;
  char **in_a3;
  char *s;
  FILE *unaff_s0;
  int iVar20;
  int *piVar21;
  uint uVar22;
  char *unaff_s2;
  int *piVar23;
  FILE *unaff_s4;
  uchar *blk;
  int iVar24;
  undefined *puVar25;
  code *pcVar26;
  code *pcVar27;
  char *decimal_00;
  MD5Context MStackY_41d8;
  uchar auStackY_417c [16];
  undefined4 auStackY_416c [4];
  undefined1 auStackY_415c [17];
  undefined1 uStackY_414b;
  undefined2 uStackY_414a;
  undefined2 uStackY_4148;
  undefined1 uStackY_4146;
  undefined1 uStackY_4145;
  undefined1 uStackY_4144;
  undefined1 uStackY_4143;
  uchar auStackY_4142 [16342];
  int iStackY_16c;
  FILE *pFStackY_164;
  int *piStackY_160;
  char *pcStackY_15c;
  FILE *pFStackY_158;
  FILE *pFStackY_154;
  int *piStackY_150;
  char **ppcStackY_14c;
  char *pcStack_114;
  RSAKey RStack_110;
  undefined1 auStack_ec [64];
  Filename *pFStack_ac;
  FILE *pFStack_a8;
  undefined *puStack_a4;
  char *pcStack_a0;
  char **ppcStack_9c;
  int *in_stack_ffffff90;
  char *dummy;
  char buf [64];
  
  puVar1 = PTR___stack_chk_guard_0006a594;
  pFVar18 = (FILE *)0x0;
  pcVar16 = PTR_D0_238__0006a068 + 0x6cc0;
  pFVar2 = *(Filename **)PTR___stack_chk_guard_0006a594;
  pFVar3 = f_open(filename,pcVar16,0);
  if (pFVar3 == (FILE *)0x0) {
    iVar4 = 0;
  }
  else {
    unaff_s2 = buf;
    pcVar16 = &DAT_00000040;
    pFVar18 = pFVar3;
    iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2);
    unaff_s0 = pFVar3;
    if (iVar4 != 0) {
      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;
      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);
      if (iVar4 == 0) {
        pFVar18 = (FILE *)0x0;
        in_stack_ffffff90 = (int *)0x0;
        pcVar16 = (char *)0x0;
        in_a3 = comment;
        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);
        goto LAB_00039880;
      }
    }
    (*(code *)PTR_fclose_0006a4c8)(pFVar3);
    iVar4 = 0;
  }
LAB_00039880:
  if (pFVar2 == *(Filename **)puVar1) {
    return iVar4;
  }
  puVar25 = PTR___stack_chk_fail_0006a574;
  (*(code *)PTR___stack_chk_fail_0006a574)();
  puStack_a4 = puVar1;
  piVar21 = *(int **)(puVar25 + 0x30ca8);
  puVar19 = (uchar *)0x0;
  pFVar3 = (FILE *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);
  pcStack_114 = (char *)0x0;
  pFStack_ac = (Filename *)*piVar21;
  pcVar16[0] = '\0';
  pcVar16[1] = '\0';
  pcVar16[2] = '\0';
  pcVar16[3] = '\0';
  pFVar18->_flags = 0;
  pFStack_a8 = unaff_s0;
  pcStack_a0 = unaff_s2;
  ppcStack_9c = comment;
  fp = f_open(pFVar2,(char *)pFVar3,0);
  if (fp == (FILE *)0x0) {
    pcStack_114 = (char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4);
LAB_00039a34:
    iVar4 = 0;
    if (in_stack_ffffff90 != (int *)0x0) {
      *in_stack_ffffff90 = (int)pcStack_114;
    }
  }
  else {
    iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp);
    if ((iVar4 == 0) ||
       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),
       iVar4 != 0)) {
      iVar24 = *(int *)(puVar25 + 0x3077c);
      (**(code **)(puVar25 + 0x30c84))(fp);
      pcVar5 = fgetline(fp);
      pcVar5 = chomp(pcVar5);
      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);
      pcVar6 = pcVar5 + iVar4;
      if (*pcVar6 == ' ') {
        decimal = pcVar6 + 1;
        pcVar26 = *(code **)(puVar25 + 0x30b98);
        *pcVar6 = '\0';
        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);
        pcVar6 = decimal + iVar4;
        if (*pcVar6 == ' ') {
          decimal_00 = pcVar6 + 1;
          pcVar26 = *(code **)(puVar25 + 0x30b98);
          *pcVar6 = '\0';
          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);
          pcVar6 = decimal_00 + iVar4;
          if (*pcVar6 == '\0') {
            s = (char *)0x0;
          }
          else {
            if (*pcVar6 != ' ') goto LAB_00039a0c;
            s = pcVar6 + 1;
            *pcVar6 = '\0';
          }
          RStack_110.bits = 0;
          RStack_110.bytes = 0;
          RStack_110.modulus = (char *)0x0;
          RStack_110.exponent = (char *)0x0;
          RStack_110.private_exponent = (char *)0x0;
          RStack_110.p = (char *)0x0;
          RStack_110.q = (char *)0x0;
          RStack_110.iqmp = (char *)0x0;
          RStack_110.comment = (char *)0x0;
          RStack_110.exponent = bignum_from_decimal(decimal);
          RStack_110.modulus = bignum_from_decimal(decimal_00);
          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);
          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);
          if (iVar24 != iVar4) {
                    /* WARNING: Subroutine does not return */
            freebn((Bignum_conflict)RStack_110.exponent);
          }
          if (in_a3 != (char **)0x0) {
            if (s != (char *)0x0) {
              s = dupstr(s);
            }
            *in_a3 = s;
          }
          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);
          *(uchar **)pcVar16 = puVar19;
          freersakey(&RStack_110);
                    /* WARNING: Subroutine does not return */
          safefree(pcVar5);
        }
      }
LAB_00039a0c:
                    /* WARNING: Subroutine does not return */
      safefree(pcVar5);
    }
    unaff_s4 = (FILE *)&RStack_110;
    puVar19 = (uchar *)0x1;
    RStack_110.bits = 0;
    RStack_110.bytes = 0;
    RStack_110.modulus = (char *)0x0;
    RStack_110.exponent = (char *)0x0;
    RStack_110.private_exponent = (char *)0x0;
    RStack_110.p = (char *)0x0;
    RStack_110.q = (char *)0x0;
    RStack_110.iqmp = (char *)0x0;
    RStack_110.comment = (char *)0x0;
    pFVar3 = unaff_s4;
    iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114);
    unaff_s0 = fp;
    if (iVar4 == 0) goto LAB_00039a34;
    pFVar3 = pFVar18;
    puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags);
    *(uchar **)pcVar16 = puVar7;
    freersakey((RSAKey *)unaff_s4);
    iVar4 = 1;
  }
  if (pFStack_ac == (Filename *)*piVar21) {
    return iVar4;
  }
  pcVar26 = *(code **)(puVar25 + 0x30c88);
  pFVar2 = pFStack_ac;
  (*pcVar26)();
  iVar4 = *(int *)(pcVar26 + 0x3038c);
  piVar23 = *(int **)(pcVar26 + 0x308b8);
  iStackY_16c = *piVar23;
  puVar8 = (undefined4 *)(iVar4 + 0x6cd4);
  puVar12 = auStackY_416c;
  do {
    puVar9 = puVar8 + 4;
    puVar13 = puVar12 + 4;
    *puVar12 = *puVar8;
    uVar17 = puVar8[2];
    uVar14 = puVar8[3];
    puVar12[1] = puVar8[1];
    puVar12[2] = uVar17;
    puVar12[3] = uVar14;
    puVar8 = puVar9;
    puVar12 = puVar13;
  } while (puVar9 != (undefined4 *)(iVar4 + 0x6cf4));
  uVar10 = 3;
  if (puVar19 == (uchar *)0x0) {
    uVar10 = 0;
  }
  pBVar15 = (Bignum_conflict)pFVar3->_IO_read_end;
  *(undefined1 *)puVar13 = *(undefined1 *)puVar9;
  uStackY_414a = 0;
  uStackY_4148 = 0;
  uStackY_414b = uVar10;
  pFStackY_164 = unaff_s0;
  piStackY_160 = piVar21;
  pcStackY_15c = pcVar16;
  pFStackY_158 = pFVar18;
  pFStackY_154 = unaff_s4;
  piStackY_150 = in_stack_ffffff90;
  ppcStackY_14c = in_a3;
  iVar4 = bignum_bitcount(pBVar15);
  uStackY_4146 = (undefined1)((uint)iVar4 >> 0x18);
  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);
  uStackY_4145 = (undefined1)((uint)iVar4 >> 0x10);
  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);
  uStackY_4144 = (undefined1)((uint)iVar4 >> 8);
  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);
  uStackY_4143 = (undefined1)iVar4;
  iVar4 = ssh1_write_bignum(auStackY_4142,(Bignum_conflict)pFVar3->_IO_read_end);
  puVar7 = auStackY_4142 + iVar4;
  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_read_base);
  pcVar16 = pFVar3->_IO_buf_end;
  puVar7 = puVar7 + iVar4;
  if (pcVar16 == (char *)0x0) {
    blk = puVar7 + 4;
    *puVar7 = '\0';
    puVar7[1] = '\0';
    puVar7[2] = '\0';
    puVar7[3] = '\0';
  }
  else {
    (**(code **)(pcVar26 + 0x30840))(pcVar16);
    pcVar27 = *(code **)(pcVar26 + 0x30840);
    *puVar7 = extraout_var;
    (*pcVar27)(pcVar16);
    pcVar27 = *(code **)(pcVar26 + 0x30840);
    puVar7[1] = extraout_var_00;
    (*pcVar27)(pcVar16);
    pcVar27 = *(code **)(pcVar26 + 0x30840);
    puVar7[2] = extraout_var_01;
    uVar11 = (*pcVar27)(pcVar16);
    pcVar27 = *(code **)(pcVar26 + 0x30840);
    puVar7[3] = uVar11;
    uVar14 = (*pcVar27)(pcVar16);
    (**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14);
    iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16);
    blk = puVar7 + 4 + iVar4;
  }
  puVar7 = blk + 4;
  iVar4 = random_byte();
  *blk = (uchar)iVar4;
  iVar4 = random_byte();
  pBVar15 = (Bignum_conflict)pFVar3->_IO_write_base;
  blk[1] = (uchar)iVar4;
  blk[2] = *blk;
  blk[3] = (uchar)iVar4;
  iVar4 = ssh1_write_bignum(puVar7,pBVar15);
  puVar7 = puVar7 + iVar4;
  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_buf_base);
  puVar7 = puVar7 + iVar4;
  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_end);
  puVar7 = puVar7 + iVar4;
  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_ptr);
  uVar22 = (int)(puVar7 + iVar4) - (int)blk;
  puVar7 = puVar7 + iVar4;
  while ((uVar22 & 7) != 0) {
    *puVar7 = '\0';
    uVar22 = (int)(puVar7 + 1) - (int)blk;
    puVar7 = puVar7 + 1;
  }
  if (puVar19 != (uchar *)0x0) {
    MD5Init(&MStackY_41d8);
    len = (**(code **)(pcVar26 + 0x30840))(puVar19);
    MD5Update(&MStackY_41d8,puVar19,len);
    MD5Final(auStackY_417c,&MStackY_41d8);
    des3_encrypt_pubkey(auStackY_417c,blk,uVar22);
                    /* WARNING: Subroutine does not return */
    smemclr(auStackY_417c,0x10);
  }
  pcVar16 = (char *)(*(int *)(pcVar26 + 0x3038c) + -0x195c);
  pFVar18 = f_open(pFVar2,pcVar16,1);
  if (pFVar18 != (FILE *)0x0) {
    iVar20 = (int)puVar7 - (int)auStackY_416c;
    pcVar16 = (char *)0x1;
    iVar4 = (**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18);
    iVar24 = (**(code **)(pcVar26 + 0x307ec))(pFVar18);
    if (iVar24 == 0) {
      uVar22 = (uint)(iVar20 == iVar4);
      goto LAB_0003a054;
    }
  }
  uVar22 = 0;
LAB_0003a054:
  if (iStackY_16c == *piVar23) {
    return uVar22;
  }
  pcVar26 = *(code **)(pcVar26 + 0x30898);
  iVar4 = iStackY_16c;
  (*pcVar26)();
  iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0));
  if (iVar24 == 0) {
    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8));
    if (iVar24 != 0) {
      return *(int *)(pcVar26 + 0x30070);
    }
    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330));
    if (iVar24 != 0) {
      return *(int *)(pcVar26 + 0x30124);
    }
    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c));
    if (iVar24 == 0) {
      iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));
      if (iVar24 == 0) {
        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));
        iVar4 = *(int *)(pcVar26 + 0x30068);
        if (iVar24 == 0) {
          iVar4 = 0;
        }
      }
      else {
        iVar4 = *(int *)(pcVar26 + 0x3012c);
      }
    }
    else {
      iVar4 = *(int *)(pcVar26 + 0x30128);
    }
  }
  else {
    iVar4 = *(int *)(pcVar26 + 0x30048);
  }
  return iVar4;
}



/* WARNING: Type propagation algorithm not settling */

uint rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)

{
  undefined *puVar1;
  undefined1 extraout_var;
  undefined1 extraout_var_00;
  undefined1 extraout_var_01;
  undefined1 extraout_var_02;
  undefined1 extraout_var_03;
  undefined1 extraout_var_04;
  int *piVar2;
  int iVar3;
  uint uVar4;
  int *piVar5;
  undefined4 uVar6;
  char *pcVar7;
  char *pcVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  undefined1 uVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined4 *puVar15;
  undefined4 uVar16;
  int *piVar17;
  int *piVar18;
  int *unaff_s0;
  undefined1 *puVar19;
  int iVar20;
  int *piVar21;
  undefined1 *unaff_s2;
  int *piVar22;
  int *unaff_s4;
  undefined1 *puVar23;
  int *unaff_s7;
  int iVar24;
  undefined *puVar25;
  code *pcVar26;
  char *pcVar27;
  code *pcVar28;
  undefined1 auStack_41d8 [92];
  undefined1 auStack_417c [16];
  undefined4 auStack_416c [4];
  undefined1 auStack_415c [17];
  undefined1 uStack_414b;
  undefined2 uStack_414a;
  undefined2 uStack_4148;
  undefined1 uStack_4146;
  undefined1 uStack_4145;
  undefined1 uStack_4144;
  undefined1 uStack_4143;
  undefined1 auStack_4142 [16342];
  int iStack_16c;
  int *piStack_164;
  int *piStack_160;
  undefined4 *puStack_15c;
  int *piStack_158;
  int *piStack_154;
  int *piStack_150;
  undefined4 *puStack_14c;
  int *piStack_148;
  code *pcStack_144;
  undefined4 uStack_130;
  int *piStack_12c;
  undefined *puStack_128;
  char *pcStack_120;
  int *piStack_11c;
  int aiStack_114 [10];
  undefined1 auStack_ec [64];
  int iStack_ac;
  int *piStack_a8;
  undefined *puStack_a4;
  undefined1 *puStack_a0;
  undefined4 *puStack_9c;
  int *local_70;
  undefined1 auStack_5c [64];
  int local_1c;
  
  puVar1 = PTR___stack_chk_guard_0006a594;
  piVar17 = (int *)0x0;
  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);
  local_1c = *(int *)PTR___stack_chk_guard_0006a594;
  piVar2 = (int *)f_open();
  if (piVar2 == (int *)0x0) {
    uVar4 = 0;
  }
  else {
    unaff_s2 = auStack_5c;
    puVar15 = (undefined4 *)&DAT_00000040;
    piVar17 = piVar2;
    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);
    unaff_s0 = piVar2;
    if (iVar3 != 0) {
      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);
      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);
      if (iVar3 == 0) {
        piVar17 = (int *)0x0;
        local_70 = (int *)0x0;
        puVar15 = (undefined4 *)0x0;
        param_4 = param_2;
        uVar4 = FUN_00038b60(piVar2);
        goto LAB_00039880;
      }
    }
    (*(code *)PTR_fclose_0006a4c8)(piVar2);
    uVar4 = 0;
  }
LAB_00039880:
  if (local_1c == *(int *)puVar1) {
    return uVar4;
  }
  puVar25 = PTR___stack_chk_fail_0006a574;
  (*(code *)PTR___stack_chk_fail_0006a574)();
  puStack_128 = puVar25 + 0x38744;
  puStack_a4 = puVar1;
  piVar21 = *(int **)(puVar25 + 0x30ca8);
  piVar18 = (int *)0x0;
  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);
  aiStack_114[0] = 0;
  iStack_ac = *piVar21;
  *puVar15 = 0;
  *piVar17 = 0;
  piStack_a8 = unaff_s0;
  puStack_a0 = unaff_s2;
  puStack_9c = param_2;
  piVar5 = (int *)f_open();
  if (piVar5 == (int *)0x0) {
    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;
LAB_00039a34:
    uVar4 = 0;
    piVar5 = unaff_s0;
    if (local_70 != (int *)0x0) {
      *local_70 = aiStack_114[0];
    }
  }
  else {
    piVar18 = piVar5;
    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);
    unaff_s0 = piVar5;
    if ((iVar3 == 0) ||
       (iVar3 = (**(code **)(puStack_128 + -0x7a68))
                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {
      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);
      (**(code **)(puStack_128 + -0x7ac0))(piVar5);
      uVar6 = fgetline(piVar5);
      unaff_s4 = (int *)chomp(uVar6);
      piVar2 = unaff_s7 + 0x1b44;
      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);
      pcVar7 = (char *)((int)unaff_s4 + iVar3);
      if (*pcVar7 == ' ') {
        pcStack_120 = pcVar7 + 1;
        pcVar26 = *(code **)(puStack_128 + -0x7bac);
        piVar2 = unaff_s7 + 0x1b44;
        *pcVar7 = '\0';
        iVar3 = (*pcVar26)(pcStack_120);
        pcVar7 = pcStack_120 + iVar3;
        piVar18 = (int *)(int)*pcVar7;
        piStack_11c = piVar18;
        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;
        pcVar27 = pcVar7 + 1;
        pcVar26 = *(code **)(puStack_128 + -0x7bac);
        piVar2 = unaff_s7 + 0x1b44;
        *pcVar7 = '\0';
        iVar3 = (*pcVar26)(pcVar27);
        pcVar7 = pcStack_120;
        pcVar8 = pcVar27 + iVar3;
        if ((int *)(int)*pcVar8 == (int *)0x0) {
          pcStack_120 = (char *)0x0;
        }
        else {
          piVar18 = piStack_11c;
          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;
          pcStack_120 = pcVar8 + 1;
          *pcVar8 = '\0';
        }
        unaff_s7 = aiStack_114 + 1;
        aiStack_114[1] = 0;
        aiStack_114[2] = 0;
        aiStack_114[3] = 0;
        aiStack_114[4] = 0;
        aiStack_114[5] = 0;
        aiStack_114[6] = 0;
        aiStack_114[7] = 0;
        aiStack_114[8] = 0;
        aiStack_114[9] = 0;
        aiStack_114[4] = bignum_from_decimal(pcVar7);
        aiStack_114[3] = bignum_from_decimal(pcVar27);
        piVar18 = (int *)0xa;
        piVar2 = (int *)0x0;
        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);
        iVar9 = bignum_bitcount(aiStack_114[3]);
        if (iVar9 == iVar3) {
          if (param_4 != (undefined4 *)0x0) {
            pcVar7 = pcStack_120;
            if (pcStack_120 != (char *)0x0) {
              pcVar7 = (char *)dupstr(pcStack_120);
            }
            *param_4 = pcVar7;
          }
          piVar2 = piVar17;
          uVar6 = rsa_public_blob(unaff_s7);
          *puVar15 = uVar6;
          freersakey(unaff_s7);
          safefree(unaff_s4);
          (**(code **)(puStack_128 + -0x7b68))(piVar5);
          uVar4 = 1;
          goto LAB_00039a44;
        }
        freebn(aiStack_114[4]);
        freebn(aiStack_114[3]);
        safefree(unaff_s4);
        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;
      }
      else {
LAB_00039a0c:
        safefree(unaff_s4);
        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;
      }
      (**(code **)(puStack_128 + -0x7b68))(piVar5);
      goto LAB_00039a34;
    }
    piStack_12c = aiStack_114;
    unaff_s4 = aiStack_114 + 1;
    uStack_130 = 0;
    piVar18 = (int *)0x1;
    aiStack_114[1] = 0;
    aiStack_114[2] = 0;
    aiStack_114[3] = 0;
    aiStack_114[4] = 0;
    aiStack_114[5] = 0;
    aiStack_114[6] = 0;
    aiStack_114[7] = 0;
    aiStack_114[8] = 0;
    aiStack_114[9] = 0;
    piVar2 = unaff_s4;
    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);
    if (iVar3 == 0) goto LAB_00039a34;
    piVar2 = piVar17;
    uVar6 = rsa_public_blob(unaff_s4);
    *puVar15 = uVar6;
    freersakey(unaff_s4);
    uVar4 = 1;
  }
LAB_00039a44:
  if (iStack_ac == *piVar21) {
    return uVar4;
  }
  pcVar26 = *(code **)(puStack_128 + -0x7abc);
  pcVar28 = saversakey;
  iVar3 = iStack_ac;
  (*pcVar26)();
  iVar9 = *(int *)(pcVar26 + 0x3038c);
  piStack_150 = local_70;
  piVar22 = *(int **)(pcVar26 + 0x308b8);
  iStack_16c = *piVar22;
  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);
  puVar13 = auStack_416c;
  do {
    puVar11 = puVar10 + 4;
    puVar14 = puVar13 + 4;
    *puVar13 = *puVar10;
    uVar16 = puVar10[2];
    uVar6 = puVar10[3];
    puVar13[1] = puVar10[1];
    puVar13[2] = uVar16;
    puVar13[3] = uVar6;
    puVar10 = puVar11;
    puVar13 = puVar14;
  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));
  uVar12 = 3;
  if (piVar18 == (int *)0x0) {
    uVar12 = 0;
  }
  iVar9 = piVar2[2];
  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;
  uStack_414a = 0;
  uStack_4148 = 0;
  uStack_414b = uVar12;
  piStack_164 = piVar5;
  piStack_160 = piVar21;
  puStack_15c = puVar15;
  piStack_158 = piVar17;
  piStack_154 = unaff_s4;
  puStack_14c = param_4;
  piStack_148 = unaff_s7;
  pcStack_144 = pcVar28;
  bignum_bitcount(iVar9);
  uStack_4146 = extraout_var;
  bignum_bitcount(piVar2[2]);
  uStack_4145 = extraout_var_01;
  bignum_bitcount(piVar2[2]);
  uStack_4144 = extraout_var_03;
  uStack_4143 = bignum_bitcount(piVar2[2]);
  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);
  puVar19 = auStack_4142 + iVar9;
  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);
  iVar24 = piVar2[8];
  puVar19 = puVar19 + iVar9;
  if (iVar24 == 0) {
    puVar23 = puVar19 + 4;
    *puVar19 = 0;
    puVar19[1] = 0;
    puVar19[2] = 0;
    puVar19[3] = 0;
  }
  else {
    (**(code **)(pcVar26 + 0x30840))(iVar24);
    pcVar28 = *(code **)(pcVar26 + 0x30840);
    *puVar19 = extraout_var_00;
    (*pcVar28)(iVar24);
    pcVar28 = *(code **)(pcVar26 + 0x30840);
    puVar19[1] = extraout_var_02;
    (*pcVar28)(iVar24);
    pcVar28 = *(code **)(pcVar26 + 0x30840);
    puVar19[2] = extraout_var_04;
    uVar12 = (*pcVar28)(iVar24);
    pcVar28 = *(code **)(pcVar26 + 0x30840);
    puVar19[3] = uVar12;
    uVar6 = (*pcVar28)(iVar24);
    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);
    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);
    puVar23 = puVar19 + 4 + iVar9;
  }
  puVar19 = puVar23 + 4;
  uVar12 = random_byte();
  *puVar23 = uVar12;
  uVar12 = random_byte();
  iVar9 = piVar2[4];
  puVar23[1] = uVar12;
  puVar23[2] = *puVar23;
  puVar23[3] = uVar12;
  iVar9 = ssh1_write_bignum(puVar19,iVar9);
  puVar19 = puVar19 + iVar9;
  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);
  puVar19 = puVar19 + iVar9;
  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);
  puVar19 = puVar19 + iVar9;
  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);
  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;
  puVar19 = puVar19 + iVar9;
  while ((uVar4 & 7) != 0) {
    *puVar19 = 0;
    uVar4 = (int)(puVar19 + 1) - (int)puVar23;
    puVar19 = puVar19 + 1;
  }
  if (piVar18 != (int *)0x0) {
    MD5Init(auStack_41d8);
    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);
    MD5Update(auStack_41d8,piVar18,uVar6);
    MD5Final(auStack_417c,auStack_41d8);
    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);
    smemclr(auStack_417c,0x10);
  }
  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;
  iVar3 = f_open(iVar3,iVar9,1);
  if (iVar3 != 0) {
    iVar20 = (int)puVar19 - (int)auStack_416c;
    iVar9 = 1;
    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);
    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);
    if (iVar3 == 0) {
      uVar4 = (uint)(iVar20 == iVar24);
      goto LAB_0003a054;
    }
  }
  uVar4 = 0;
LAB_0003a054:
  if (iStack_16c == *piVar22) {
    return uVar4;
  }
  pcVar26 = *(code **)(pcVar26 + 0x30898);
  iVar3 = iStack_16c;
  (*pcVar26)();
  iVar24 = match_ssh_id();
  if (iVar24 == 0) {
    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);
    if (iVar24 != 0) {
      return *(uint *)(pcVar26 + 0x30070);
    }
    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);
    if (iVar24 != 0) {
      return *(uint *)(pcVar26 + 0x30124);
    }
    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);
    if (iVar24 == 0) {
      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);
      if (iVar24 == 0) {
        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);
        uVar4 = *(uint *)(pcVar26 + 0x30068);
        if (iVar3 == 0) {
          uVar4 = 0;
        }
      }
      else {
        uVar4 = *(uint *)(pcVar26 + 0x3012c);
      }
    }
    else {
      uVar4 = *(uint *)(pcVar26 + 0x30128);
    }
  }
  else {
    uVar4 = *(uint *)(pcVar26 + 0x30048);
  }
  return uVar4;
}


lui gp,0x4
addiu gp,gp,-0x77a4
addu gp,gp,t9
addiu sp,sp,-0x80
lw t9,-0x7f8c(gp)
or a2,zero,zero
sw s1,0x70(sp)
sw s3,0x78(sp)
or s3,a1,zero
lw s1,-0x7a9c(gp)
lw a1,-0x7fc8(gp)
sw gp,0x18(sp)
sw ra,0x7c(sp)
sw s2,0x74(sp)
addiu a1,a1,0x6cc0
sw s0,0x6c(sp)
lw v0,0x0(s1)
sw v0,0x64(sp)
bal 0x00048cc8
_nop
beq v0,zero,0x000398a8
_lw gp,0x18(sp)
lw t9,-0x7aa8(gp)
addiu s2,sp,0x24
li a1,0x40
or a2,v0,zero
or a0,s2,zero
jalr t9
_or s0,v0,zero
beq v0,zero,0x0003986c
_lw gp,0x18(sp)
lw a1,-0x7fc8(gp)
or a0,s2,zero
lw t9,-0x7a68(gp)
jalr t9
_addiu a1,a1,0x6cd4
beq v0,zero,0x000398b0
_lw gp,0x18(sp)
lw t9,-0x7b68(gp)
jalr t9
_or a0,s0,zero
or v0,zero,zero
lw gp,0x18(sp)
lw a0,0x64(sp)
lw v1,0x0(s1)
bne a0,v1,0x000398e0
_lw ra,0x7c(sp)
lw s3,0x78(sp)
lw s2,0x74(sp)
lw s1,0x70(sp)
lw s0,0x6c(sp)
jr ra
_addiu sp,sp,0x80
b 0x00039880
_or v0,zero,zero
lw t9,-0x7ccc(gp)
addiu v0,sp,0x20
or a2,zero,zero
sw zero,0x10(sp)
or a1,zero,zero
sw v0,0x14(sp)
addiu t9,t9,-0x74a0
or a3,s3,zero
bal 0x00038b60
_or a0,s0,zero
b 0x00039880
_lw gp,0x18(sp)
lw t9,-0x7abc(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nuint rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  undefined1 extraout_var;\n  undefined1 extraout_var_00;\n  undefined1 extraout_var_01;\n  undefined1 extraout_var_02;\n  undefined1 extraout_var_03;\n  undefined1 extraout_var_04;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined1 uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *unaff_s0;\n  undefined1 *puVar19;\n  int iVar20;\n  int *piVar21;\n  undefined1 *unaff_s2;\n  int *piVar22;\n  int *unaff_s4;\n  undefined1 *puVar23;\n  int *unaff_s7;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  char *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_41d8 [92];\n  undefined1 auStack_417c [16];\n  undefined4 auStack_416c [4];\n  undefined1 auStack_415c [17];\n  undefined1 uStack_414b;\n  undefined2 uStack_414a;\n  undefined2 uStack_4148;\n  undefined1 uStack_4146;\n  undefined1 uStack_4145;\n  undefined1 uStack_4144;\n  undefined1 uStack_4143;\n  undefined1 auStack_4142 [16342];\n  int iStack_16c;\n  int *piStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  int *piStack_150;\n  undefined4 *puStack_14c;\n  int *piStack_148;\n  code *pcStack_144;\n  undefined4 uStack_130;\n  int *piStack_12c;\n  undefined *puStack_128;\n  char *pcStack_120;\n  int *piStack_11c;\n  int aiStack_114 [10];\n  undefined1 auStack_ec [64];\n  int iStack_ac;\n  int *piStack_a8;\n  undefined *puStack_a4;\n  undefined1 *puStack_a0;\n  undefined4 *puStack_9c;\n  int *local_70;\n  undefined1 auStack_5c [64];\n  int local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  piVar17 = (int *)0x0;\n  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);\n  local_1c = *(int *)PTR___stack_chk_guard_0006a594;\n  piVar2 = (int *)f_open();\n  if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }\nLAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_128 = puVar25 + 0x38744;\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  piVar18 = (int *)0x0;\n  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  aiStack_114[0] = 0;\n  iStack_ac = *piVar21;\n  *puVar15 = 0;\n  *piVar17 = 0;\n  piStack_a8 = unaff_s0;\n  puStack_a0 = unaff_s2;\n  puStack_9c = param_2;\n  piVar5 = (int *)f_open();\n  if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }\nLAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(puStack_128 + -0x7abc);\n  pcVar28 = saversakey;\n  iVar3 = iStack_ac;\n  (*pcVar26)();\n  iVar9 = *(int *)(pcVar26 + 0x3038c);\n  piStack_150 = local_70;\n  piVar22 = *(int **)(pcVar26 + 0x308b8);\n  iStack_16c = *piVar22;\n  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);\n  puVar13 = auStack_416c;\n  do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));\n  uVar12 = 3;\n  if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }\n  iVar9 = piVar2[2];\n  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;\n  uStack_414a = 0;\n  uStack_4148 = 0;\n  uStack_414b = uVar12;\n  piStack_164 = piVar5;\n  piStack_160 = piVar21;\n  puStack_15c = puVar15;\n  piStack_158 = piVar17;\n  piStack_154 = unaff_s4;\n  puStack_14c = param_4;\n  piStack_148 = unaff_s7;\n  pcStack_144 = pcVar28;\n  bignum_bitcount(iVar9);\n  uStack_4146 = extraout_var;\n  bignum_bitcount(piVar2[2]);\n  uStack_4145 = extraout_var_01;\n  bignum_bitcount(piVar2[2]);\n  uStack_4144 = extraout_var_03;\n  uStack_4143 = bignum_bitcount(piVar2[2]);\n  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);\n  puVar19 = auStack_4142 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);\n  iVar24 = piVar2[8];\n  puVar19 = puVar19 + iVar9;\n  if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }\n  puVar19 = puVar23 + 4;\n  uVar12 = random_byte();\n  *puVar23 = uVar12;\n  uVar12 = random_byte();\n  iVar9 = piVar2[4];\n  puVar23[1] = uVar12;\n  puVar23[2] = *puVar23;\n  puVar23[3] = uVar12;\n  iVar9 = ssh1_write_bignum(puVar19,iVar9);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);\n  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;\n  puVar19 = puVar19 + iVar9;\n  while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }\n  if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }\n  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;\n  iVar3 = f_open(iVar3,iVar9,1);\n  if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }\n  uVar4 = 0;\nLAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar3 = iStack_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id();\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }\n  return uVar4;\n}\n\n" comment (function_definition "uint rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  undefined1 extraout_var;\n  undefined1 extraout_var_00;\n  undefined1 extraout_var_01;\n  undefined1 extraout_var_02;\n  undefined1 extraout_var_03;\n  undefined1 extraout_var_04;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined1 uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *unaff_s0;\n  undefined1 *puVar19;\n  int iVar20;\n  int *piVar21;\n  undefined1 *unaff_s2;\n  int *piVar22;\n  int *unaff_s4;\n  undefined1 *puVar23;\n  int *unaff_s7;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  char *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_41d8 [92];\n  undefined1 auStack_417c [16];\n  undefined4 auStack_416c [4];\n  undefined1 auStack_415c [17];\n  undefined1 uStack_414b;\n  undefined2 uStack_414a;\n  undefined2 uStack_4148;\n  undefined1 uStack_4146;\n  undefined1 uStack_4145;\n  undefined1 uStack_4144;\n  undefined1 uStack_4143;\n  undefined1 auStack_4142 [16342];\n  int iStack_16c;\n  int *piStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  int *piStack_150;\n  undefined4 *puStack_14c;\n  int *piStack_148;\n  code *pcStack_144;\n  undefined4 uStack_130;\n  int *piStack_12c;\n  undefined *puStack_128;\n  char *pcStack_120;\n  int *piStack_11c;\n  int aiStack_114 [10];\n  undefined1 auStack_ec [64];\n  int iStack_ac;\n  int *piStack_a8;\n  undefined *puStack_a4;\n  undefined1 *puStack_a0;\n  undefined4 *puStack_9c;\n  int *local_70;\n  undefined1 auStack_5c [64];\n  int local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  piVar17 = (int *)0x0;\n  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);\n  local_1c = *(int *)PTR___stack_chk_guard_0006a594;\n  piVar2 = (int *)f_open();\n  if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }\nLAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_128 = puVar25 + 0x38744;\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  piVar18 = (int *)0x0;\n  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  aiStack_114[0] = 0;\n  iStack_ac = *piVar21;\n  *puVar15 = 0;\n  *piVar17 = 0;\n  piStack_a8 = unaff_s0;\n  puStack_a0 = unaff_s2;\n  puStack_9c = param_2;\n  piVar5 = (int *)f_open();\n  if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }\nLAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(puStack_128 + -0x7abc);\n  pcVar28 = saversakey;\n  iVar3 = iStack_ac;\n  (*pcVar26)();\n  iVar9 = *(int *)(pcVar26 + 0x3038c);\n  piStack_150 = local_70;\n  piVar22 = *(int **)(pcVar26 + 0x308b8);\n  iStack_16c = *piVar22;\n  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);\n  puVar13 = auStack_416c;\n  do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));\n  uVar12 = 3;\n  if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }\n  iVar9 = piVar2[2];\n  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;\n  uStack_414a = 0;\n  uStack_4148 = 0;\n  uStack_414b = uVar12;\n  piStack_164 = piVar5;\n  piStack_160 = piVar21;\n  puStack_15c = puVar15;\n  piStack_158 = piVar17;\n  piStack_154 = unaff_s4;\n  puStack_14c = param_4;\n  piStack_148 = unaff_s7;\n  pcStack_144 = pcVar28;\n  bignum_bitcount(iVar9);\n  uStack_4146 = extraout_var;\n  bignum_bitcount(piVar2[2]);\n  uStack_4145 = extraout_var_01;\n  bignum_bitcount(piVar2[2]);\n  uStack_4144 = extraout_var_03;\n  uStack_4143 = bignum_bitcount(piVar2[2]);\n  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);\n  puVar19 = auStack_4142 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);\n  iVar24 = piVar2[8];\n  puVar19 = puVar19 + iVar9;\n  if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }\n  puVar19 = puVar23 + 4;\n  uVar12 = random_byte();\n  *puVar23 = uVar12;\n  uVar12 = random_byte();\n  iVar9 = piVar2[4];\n  puVar23[1] = uVar12;\n  puVar23[2] = *puVar23;\n  puVar23[3] = uVar12;\n  iVar9 = ssh1_write_bignum(puVar19,iVar9);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);\n  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;\n  puVar19 = puVar19 + iVar9;\n  while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }\n  if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }\n  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;\n  iVar3 = f_open(iVar3,iVar9,1);\n  if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }\n  uVar4 = 0;\nLAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar3 = iStack_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id();\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }\n  return uVar4;\n}" type_identifier (function_declarator "rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined1 extraout_var;\n  undefined1 extraout_var_00;\n  undefined1 extraout_var_01;\n  undefined1 extraout_var_02;\n  undefined1 extraout_var_03;\n  undefined1 extraout_var_04;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined1 uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *unaff_s0;\n  undefined1 *puVar19;\n  int iVar20;\n  int *piVar21;\n  undefined1 *unaff_s2;\n  int *piVar22;\n  int *unaff_s4;\n  undefined1 *puVar23;\n  int *unaff_s7;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  char *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_41d8 [92];\n  undefined1 auStack_417c [16];\n  undefined4 auStack_416c [4];\n  undefined1 auStack_415c [17];\n  undefined1 uStack_414b;\n  undefined2 uStack_414a;\n  undefined2 uStack_4148;\n  undefined1 uStack_4146;\n  undefined1 uStack_4145;\n  undefined1 uStack_4144;\n  undefined1 uStack_4143;\n  undefined1 auStack_4142 [16342];\n  int iStack_16c;\n  int *piStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  int *piStack_150;\n  undefined4 *puStack_14c;\n  int *piStack_148;\n  code *pcStack_144;\n  undefined4 uStack_130;\n  int *piStack_12c;\n  undefined *puStack_128;\n  char *pcStack_120;\n  int *piStack_11c;\n  int aiStack_114 [10];\n  undefined1 auStack_ec [64];\n  int iStack_ac;\n  int *piStack_a8;\n  undefined *puStack_a4;\n  undefined1 *puStack_a0;\n  undefined4 *puStack_9c;\n  int *local_70;\n  undefined1 auStack_5c [64];\n  int local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  piVar17 = (int *)0x0;\n  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);\n  local_1c = *(int *)PTR___stack_chk_guard_0006a594;\n  piVar2 = (int *)f_open();\n  if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }\nLAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_128 = puVar25 + 0x38744;\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  piVar18 = (int *)0x0;\n  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  aiStack_114[0] = 0;\n  iStack_ac = *piVar21;\n  *puVar15 = 0;\n  *piVar17 = 0;\n  piStack_a8 = unaff_s0;\n  puStack_a0 = unaff_s2;\n  puStack_9c = param_2;\n  piVar5 = (int *)f_open();\n  if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }\nLAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(puStack_128 + -0x7abc);\n  pcVar28 = saversakey;\n  iVar3 = iStack_ac;\n  (*pcVar26)();\n  iVar9 = *(int *)(pcVar26 + 0x3038c);\n  piStack_150 = local_70;\n  piVar22 = *(int **)(pcVar26 + 0x308b8);\n  iStack_16c = *piVar22;\n  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);\n  puVar13 = auStack_416c;\n  do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));\n  uVar12 = 3;\n  if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }\n  iVar9 = piVar2[2];\n  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;\n  uStack_414a = 0;\n  uStack_4148 = 0;\n  uStack_414b = uVar12;\n  piStack_164 = piVar5;\n  piStack_160 = piVar21;\n  puStack_15c = puVar15;\n  piStack_158 = piVar17;\n  piStack_154 = unaff_s4;\n  puStack_14c = param_4;\n  piStack_148 = unaff_s7;\n  pcStack_144 = pcVar28;\n  bignum_bitcount(iVar9);\n  uStack_4146 = extraout_var;\n  bignum_bitcount(piVar2[2]);\n  uStack_4145 = extraout_var_01;\n  bignum_bitcount(piVar2[2]);\n  uStack_4144 = extraout_var_03;\n  uStack_4143 = bignum_bitcount(piVar2[2]);\n  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);\n  puVar19 = auStack_4142 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);\n  iVar24 = piVar2[8];\n  puVar19 = puVar19 + iVar9;\n  if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }\n  puVar19 = puVar23 + 4;\n  uVar12 = random_byte();\n  *puVar23 = uVar12;\n  uVar12 = random_byte();\n  iVar9 = piVar2[4];\n  puVar23[1] = uVar12;\n  puVar23[2] = *puVar23;\n  puVar23[3] = uVar12;\n  iVar9 = ssh1_write_bignum(puVar19,iVar9);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);\n  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;\n  puVar19 = puVar19 + iVar9;\n  while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }\n  if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }\n  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;\n  iVar3 = f_open(iVar3,iVar9,1);\n  if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }\n  uVar4 = 0;\nLAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar3 = iStack_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id();\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }\n  return uVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined1 extraout_var;" type_identifier identifier ;) (declaration "undefined1 extraout_var_00;" type_identifier identifier ;) (declaration "undefined1 extraout_var_01;" type_identifier identifier ;) (declaration "undefined1 extraout_var_02;" type_identifier identifier ;) (declaration "undefined1 extraout_var_03;" type_identifier identifier ;) (declaration "undefined1 extraout_var_04;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *unaff_s0;" primitive_type (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined1 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *unaff_s7;" primitive_type (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "undefined1 auStack_41d8 [92];" type_identifier (array_declarator "auStack_41d8 [92]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_417c [16];" type_identifier (array_declarator "auStack_417c [16]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_416c [4];" type_identifier (array_declarator "auStack_416c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_415c [17];" type_identifier (array_declarator "auStack_415c [17]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_414b;" type_identifier identifier ;) (declaration "undefined2 uStack_414a;" type_identifier identifier ;) (declaration "undefined2 uStack_4148;" type_identifier identifier ;) (declaration "undefined1 uStack_4146;" type_identifier identifier ;) (declaration "undefined1 uStack_4145;" type_identifier identifier ;) (declaration "undefined1 uStack_4144;" type_identifier identifier ;) (declaration "undefined1 uStack_4143;" type_identifier identifier ;) (declaration "undefined1 auStack_4142 [16342];" type_identifier (array_declarator "auStack_4142 [16342]" identifier [ number_literal ]) ;) (declaration "int iStack_16c;" primitive_type identifier ;) (declaration "int *piStack_164;" primitive_type (pointer_declarator "*piStack_164" * identifier) ;) (declaration "int *piStack_160;" primitive_type (pointer_declarator "*piStack_160" * identifier) ;) (declaration "undefined4 *puStack_15c;" type_identifier (pointer_declarator "*puStack_15c" * identifier) ;) (declaration "int *piStack_158;" primitive_type (pointer_declarator "*piStack_158" * identifier) ;) (declaration "int *piStack_154;" primitive_type (pointer_declarator "*piStack_154" * identifier) ;) (declaration "int *piStack_150;" primitive_type (pointer_declarator "*piStack_150" * identifier) ;) (declaration "undefined4 *puStack_14c;" type_identifier (pointer_declarator "*puStack_14c" * identifier) ;) (declaration "int *piStack_148;" primitive_type (pointer_declarator "*piStack_148" * identifier) ;) (declaration "code *pcStack_144;" type_identifier (pointer_declarator "*pcStack_144" * identifier) ;) (declaration "undefined4 uStack_130;" type_identifier identifier ;) (declaration "int *piStack_12c;" primitive_type (pointer_declarator "*piStack_12c" * identifier) ;) (declaration "undefined *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "char *pcStack_120;" primitive_type (pointer_declarator "*pcStack_120" * identifier) ;) (declaration "int *piStack_11c;" primitive_type (pointer_declarator "*piStack_11c" * identifier) ;) (declaration "int aiStack_114 [10];" primitive_type (array_declarator "aiStack_114 [10]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_ec [64];" type_identifier (array_declarator "auStack_ec [64]" identifier [ number_literal ]) ;) (declaration "int iStack_ac;" primitive_type identifier ;) (declaration "int *piStack_a8;" primitive_type (pointer_declarator "*piStack_a8" * identifier) ;) (declaration "undefined *puStack_a4;" type_identifier (pointer_declarator "*puStack_a4" * identifier) ;) (declaration "undefined1 *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "undefined4 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "int *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined1 auStack_5c [64];" type_identifier (array_declarator "auStack_5c [64]" identifier [ number_literal ]) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0006a594;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0006a594" identifier = identifier) ;) (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);" (assignment_expression "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x6cc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x6cc0)" ( (binary_expression "PTR_DAT_0006a068 + 0x6cc0" identifier + number_literal) )))) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_0006a594;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_0006a594" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0006a594" * (cast_expression "(int *)PTR___stack_chk_guard_0006a594" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar2 = (int *)f_open();" (assignment_expression "piVar2 = (int *)f_open()" identifier = (cast_expression "(int *)f_open()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "f_open()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = 0;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" else (compound_statement "{\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" { (expression_statement "unaff_s2 = auStack_5c;" (assignment_expression "unaff_s2 = auStack_5c" identifier = identifier) ;) (expression_statement "puVar15 = (undefined4 *)&DAT_00000040;" (assignment_expression "puVar15 = (undefined4 *)&DAT_00000040" identifier = (cast_expression "(undefined4 *)&DAT_00000040" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000040" & identifier))) ;) (expression_statement "piVar17 = piVar2;" (assignment_expression "piVar17 = piVar2" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);" (assignment_expression "iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_fgets_0006a588)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_fgets_0006a588)" ( (pointer_expression "*(code *)PTR_fgets_0006a588" * (cast_expression "(code *)PTR_fgets_0006a588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "unaff_s0 = piVar2;" (assignment_expression "unaff_s0 = piVar2" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }" { (expression_statement "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);" (assignment_expression "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x6cd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x6cd4)" ( (binary_expression "PTR_DAT_0006a068 + 0x6cd4" identifier + number_literal) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_strcmp_0006a5c8)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strcmp_0006a5c8)" ( (pointer_expression "*(code *)PTR_strcmp_0006a5c8" * (cast_expression "(code *)PTR_strcmp_0006a5c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }" { (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (int *)0x0;" (assignment_expression "local_70 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = param_2;" (assignment_expression "param_4 = param_2" identifier = identifier) ;) (expression_statement "uVar4 = FUN_00038b60(piVar2);" (assignment_expression "uVar4 = FUN_00038b60(piVar2)" identifier = (call_expression "FUN_00038b60(piVar2)" identifier (argument_list "(piVar2)" ( identifier )))) ;) (goto_statement "goto LAB_00039880;" goto statement_identifier ;) })) })) (expression_statement "(*(code *)PTR_fclose_0006a4c8)(piVar2);" (call_expression "(*(code *)PTR_fclose_0006a4c8)(piVar2)" (parenthesized_expression "(*(code *)PTR_fclose_0006a4c8)" ( (pointer_expression "*(code *)PTR_fclose_0006a4c8" * (cast_expression "(code *)PTR_fclose_0006a4c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar2)" ( identifier ))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }" statement_identifier : (if_statement "if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar1)" ( (binary_expression "local_1c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "puVar25 = PTR___stack_chk_fail_0006a574;" (assignment_expression "puVar25 = PTR___stack_chk_fail_0006a574" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0006a574)();" (call_expression "(*(code *)PTR___stack_chk_fail_0006a574)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0006a574)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0006a574" * (cast_expression "(code *)PTR___stack_chk_fail_0006a574" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_128 = puVar25 + 0x38744;" (assignment_expression "puStack_128 = puVar25 + 0x38744" identifier = (binary_expression "puVar25 + 0x38744" identifier + number_literal)) ;) (expression_statement "puStack_a4 = puVar1;" (assignment_expression "puStack_a4 = puVar1" identifier = identifier) ;) (expression_statement "piVar21 = *(int **)(puVar25 + 0x30ca8);" (assignment_expression "piVar21 = *(int **)(puVar25 + 0x30ca8)" identifier = (pointer_expression "*(int **)(puVar25 + 0x30ca8)" * (cast_expression "(int **)(puVar25 + 0x30ca8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30ca8)" ( (binary_expression "puVar25 + 0x30ca8" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);" (assignment_expression "piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" identifier = (cast_expression "(int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" ( (binary_expression "*(int *)(puVar25 + 0x3077c) + 0x6cc0" (pointer_expression "*(int *)(puVar25 + 0x3077c)" * (cast_expression "(int *)(puVar25 + 0x3077c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x3077c)" ( (binary_expression "puVar25 + 0x3077c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "aiStack_114[0] = 0;" (assignment_expression "aiStack_114[0] = 0" (subscript_expression "aiStack_114[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_ac = *piVar21;" (assignment_expression "iStack_ac = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "*piVar17 = 0;" (assignment_expression "*piVar17 = 0" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "piStack_a8 = unaff_s0;" (assignment_expression "piStack_a8 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_a0 = unaff_s2;" (assignment_expression "puStack_a0 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_9c = param_2;" (assignment_expression "puStack_9c = param_2" identifier = identifier) ;) (expression_statement "piVar5 = (int *)f_open();" (assignment_expression "piVar5 = (int *)f_open()" identifier = (cast_expression "(int *)f_open()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "f_open()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }" { (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4" (subscript_expression "aiStack_114[0]" identifier [ number_literal ]) = (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cc4" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" * (cast_expression "(int *)(puStack_128 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_00039a34:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (expression_statement "piVar5 = unaff_s0;" (assignment_expression "piVar5 = unaff_s0" identifier = identifier) ;) (if_statement "if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }" if (parenthesized_expression "(local_70 != (int *)0x0)" ( (binary_expression "local_70 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *local_70 = aiStack_114[0];\n    }" { (expression_statement "*local_70 = aiStack_114[0];" (assignment_expression "*local_70 = aiStack_114[0]" (pointer_expression "*local_70" * identifier) = (subscript_expression "aiStack_114[0]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" else (compound_statement "{\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" { (expression_statement "piVar18 = piVar5;" (assignment_expression "piVar18 = piVar5" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40)" identifier = (call_expression "(**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7aa8))" ( (pointer_expression "**(code **)(puStack_128 + -0x7aa8)" * (pointer_expression "*(code **)(puStack_128 + -0x7aa8)" * (cast_expression "(code **)(puStack_128 + -0x7aa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7aa8)" ( (binary_expression "puStack_128 + -0x7aa8" identifier + number_literal) ))))) )) (argument_list "(auStack_ec,0x40)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s0 = piVar5;" (assignment_expression "unaff_s0 = piVar5" identifier = identifier) ;) (if_statement "if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }" if (parenthesized_expression "((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0))" ( (binary_expression "(iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)" ( (comma_expression "iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" identifier = (call_expression "(**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7a68))" ( (pointer_expression "**(code **)(puStack_128 + -0x7a68)" * (pointer_expression "*(code **)(puStack_128 + -0x7a68)" * (cast_expression "(code **)(puStack_128 + -0x7a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7a68)" ( (binary_expression "puStack_128 + -0x7a68" identifier + number_literal) ))))) )) (argument_list "(auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" ( identifier , (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cd4" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" * (cast_expression "(int *)(puStack_128 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }" { (expression_statement "unaff_s7 = *(int **)(puStack_128 + -0x7fc8);" (assignment_expression "unaff_s7 = *(int **)(puStack_128 + -0x7fc8)" identifier = (pointer_expression "*(int **)(puStack_128 + -0x7fc8)" * (cast_expression "(int **)(puStack_128 + -0x7fc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puStack_128 + -0x7ac0))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7ac0))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7ac0))" ( (pointer_expression "**(code **)(puStack_128 + -0x7ac0)" * (pointer_expression "*(code **)(puStack_128 + -0x7ac0)" * (cast_expression "(code **)(puStack_128 + -0x7ac0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7ac0)" ( (binary_expression "puStack_128 + -0x7ac0" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "uVar6 = fgetline(piVar5);" (assignment_expression "uVar6 = fgetline(piVar5)" identifier = (call_expression "fgetline(piVar5)" identifier (argument_list "(piVar5)" ( identifier )))) ;) (expression_statement "unaff_s4 = (int *)chomp(uVar6);" (assignment_expression "unaff_s4 = (int *)chomp(uVar6)" identifier = (cast_expression "(int *)chomp(uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "chomp(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))))) ;) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" identifier = (binary_expression "unaff_s7 + 0x1b44" identifier + number_literal)) ;) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4)" identifier = (call_expression "(**(code **)(puStack_128 + -0x7bac))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7bac))" ( (pointer_expression "**(code **)(puStack_128 + -0x7bac)" * (pointer_expression "*(code **)(puStack_128 + -0x7bac)" * (cast_expression "(code **)(puStack_128 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7bac)" ( (binary_expression "puStack_128 + -0x7bac" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "pcVar7 = (char *)((int)unaff_s4 + iVar3);" (assignment_expression "pcVar7 = (char *)((int)unaff_s4 + iVar3)" identifier = (cast_expression "(char *)((int)unaff_s4 + iVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + iVar3)" ( (binary_expression "(int)unaff_s4 + iVar3" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" if (parenthesized_expression "(*pcVar7 == ' ')" ( (binary_expression "*pcVar7 == ' '" (pointer_expression "*pcVar7" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }" { (expression_statement "pcStack_120 = pcVar7 + 1;" (assignment_expression "pcStack_120 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7bac);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7bac)" identifier = (pointer_expression "*(code **)(puStack_128 + -0x7bac)" * (cast_expression "(code **)(puStack_128 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7bac)" ( (binary_expression "puStack_128 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" identifier = (binary_expression "unaff_s7 + 0x1b44" identifier + number_literal)) ;) (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar3 = (*pcVar26)(pcStack_120);" (assignment_expression "iVar3 = (*pcVar26)(pcStack_120)" identifier = (call_expression "(*pcVar26)(pcStack_120)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(pcStack_120)" ( identifier )))) ;) (expression_statement "pcVar7 = pcStack_120 + iVar3;" (assignment_expression "pcVar7 = pcStack_120 + iVar3" identifier = (binary_expression "pcStack_120 + iVar3" identifier + identifier)) ;) (expression_statement "piVar18 = (int *)(int)*pcVar7;" (assignment_expression "piVar18 = (int *)(int)*pcVar7" identifier = (cast_expression "(int *)(int)*pcVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar7" * identifier)))) ;) (expression_statement "piStack_11c = piVar18;" (assignment_expression "piStack_11c = piVar18" identifier = identifier) ;) (if_statement "if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;" if (parenthesized_expression "(piVar18 != (int *)&DAT_00000020)" ( (binary_expression "piVar18 != (int *)&DAT_00000020" identifier != (cast_expression "(int *)&DAT_00000020" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000020" & identifier))) )) (goto_statement "goto LAB_00039a0c;" goto statement_identifier ;)) (expression_statement "pcVar27 = pcVar7 + 1;" (assignment_expression "pcVar27 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7bac);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7bac)" identifier = (pointer_expression "*(code **)(puStack_128 + -0x7bac)" * (cast_expression "(code **)(puStack_128 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7bac)" ( (binary_expression "puStack_128 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" identifier = (binary_expression "unaff_s7 + 0x1b44" identifier + number_literal)) ;) (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar3 = (*pcVar26)(pcVar27);" (assignment_expression "iVar3 = (*pcVar26)(pcVar27)" identifier = (call_expression "(*pcVar26)(pcVar27)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "pcVar7 = pcStack_120;" (assignment_expression "pcVar7 = pcStack_120" identifier = identifier) ;) (expression_statement "pcVar8 = pcVar27 + iVar3;" (assignment_expression "pcVar8 = pcVar27 + iVar3" identifier = (binary_expression "pcVar27 + iVar3" identifier + identifier)) ;) (if_statement "if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" if (parenthesized_expression "((int *)(int)*pcVar8 == (int *)0x0)" ( (binary_expression "(int *)(int)*pcVar8 == (int *)0x0" (cast_expression "(int *)(int)*pcVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar8" * identifier))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcStack_120 = (char *)0x0;\n        }" { (expression_statement "pcStack_120 = (char *)0x0;" (assignment_expression "pcStack_120 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" else (compound_statement "{\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" { (expression_statement "piVar18 = piStack_11c;" (assignment_expression "piVar18 = piStack_11c" identifier = identifier) ;) (if_statement "if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;" if (parenthesized_expression "((int *)(int)*pcVar8 != piStack_11c)" ( (binary_expression "(int *)(int)*pcVar8 != piStack_11c" (cast_expression "(int *)(int)*pcVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar8" * identifier))) != identifier) )) (goto_statement "goto LAB_00039a0c;" goto statement_identifier ;)) (expression_statement "pcStack_120 = pcVar8 + 1;" (assignment_expression "pcStack_120 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar8 = '\0';" (assignment_expression "*pcVar8 = '\0'" (pointer_expression "*pcVar8" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "unaff_s7 = aiStack_114 + 1;" (assignment_expression "unaff_s7 = aiStack_114 + 1" identifier = (binary_expression "aiStack_114 + 1" identifier + number_literal)) ;) (expression_statement "aiStack_114[1] = 0;" (assignment_expression "aiStack_114[1] = 0" (subscript_expression "aiStack_114[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[2] = 0;" (assignment_expression "aiStack_114[2] = 0" (subscript_expression "aiStack_114[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[3] = 0;" (assignment_expression "aiStack_114[3] = 0" (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[4] = 0;" (assignment_expression "aiStack_114[4] = 0" (subscript_expression "aiStack_114[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[5] = 0;" (assignment_expression "aiStack_114[5] = 0" (subscript_expression "aiStack_114[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[6] = 0;" (assignment_expression "aiStack_114[6] = 0" (subscript_expression "aiStack_114[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[7] = 0;" (assignment_expression "aiStack_114[7] = 0" (subscript_expression "aiStack_114[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[8] = 0;" (assignment_expression "aiStack_114[8] = 0" (subscript_expression "aiStack_114[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[9] = 0;" (assignment_expression "aiStack_114[9] = 0" (subscript_expression "aiStack_114[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[4] = bignum_from_decimal(pcVar7);" (assignment_expression "aiStack_114[4] = bignum_from_decimal(pcVar7)" (subscript_expression "aiStack_114[4]" identifier [ number_literal ]) = (call_expression "bignum_from_decimal(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "aiStack_114[3] = bignum_from_decimal(pcVar27);" (assignment_expression "aiStack_114[3] = bignum_from_decimal(pcVar27)" (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) = (call_expression "bignum_from_decimal(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "piVar18 = (int *)0xa;" (assignment_expression "piVar18 = (int *)0xa" identifier = (cast_expression "(int *)0xa" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4)" identifier = (call_expression "(**(code **)(puStack_128 + -0x7b9c))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b9c))" ( (pointer_expression "**(code **)(puStack_128 + -0x7b9c)" * (pointer_expression "*(code **)(puStack_128 + -0x7b9c)" * (cast_expression "(code **)(puStack_128 + -0x7b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7b9c)" ( (binary_expression "puStack_128 + -0x7b9c" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "iVar9 = bignum_bitcount(aiStack_114[3]);" (assignment_expression "iVar9 = bignum_bitcount(aiStack_114[3])" identifier = (call_expression "bignum_bitcount(aiStack_114[3])" identifier (argument_list "(aiStack_114[3])" ( (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }" if (parenthesized_expression "(iVar9 == iVar3)" ( (binary_expression "iVar9 == iVar3" identifier == identifier) )) (compound_statement "{\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }" { (if_statement "if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }" { (expression_statement "pcVar7 = pcStack_120;" (assignment_expression "pcVar7 = pcStack_120" identifier = identifier) ;) (if_statement "if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }" if (parenthesized_expression "(pcStack_120 != (char *)0x0)" ( (binary_expression "pcStack_120 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }" { (expression_statement "pcVar7 = (char *)dupstr(pcStack_120);" (assignment_expression "pcVar7 = (char *)dupstr(pcStack_120)" identifier = (cast_expression "(char *)dupstr(pcStack_120)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dupstr(pcStack_120)" identifier (argument_list "(pcStack_120)" ( identifier ))))) ;) })) (expression_statement "*param_4 = pcVar7;" (assignment_expression "*param_4 = pcVar7" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" identifier = identifier) ;) (expression_statement "uVar6 = rsa_public_blob(unaff_s7);" (assignment_expression "uVar6 = rsa_public_blob(unaff_s7)" identifier = (call_expression "rsa_public_blob(unaff_s7)" identifier (argument_list "(unaff_s7)" ( identifier )))) ;) (expression_statement "*puVar15 = uVar6;" (assignment_expression "*puVar15 = uVar6" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "freersakey(unaff_s7);" (call_expression "freersakey(unaff_s7)" identifier (argument_list "(unaff_s7)" ( identifier ))) ;) (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_128 + -0x7b68))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7b68))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b68))" ( (pointer_expression "**(code **)(puStack_128 + -0x7b68)" * (pointer_expression "*(code **)(puStack_128 + -0x7b68)" * (cast_expression "(code **)(puStack_128 + -0x7b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7b68)" ( (binary_expression "puStack_128 + -0x7b68" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00039a44;" goto statement_identifier ;) })) (expression_statement "freebn(aiStack_114[4]);" (call_expression "freebn(aiStack_114[4])" identifier (argument_list "(aiStack_114[4])" ( (subscript_expression "aiStack_114[4]" identifier [ number_literal ]) ))) ;) (expression_statement "freebn(aiStack_114[3]);" (call_expression "freebn(aiStack_114[3])" identifier (argument_list "(aiStack_114[3])" ( (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) ))) ;) (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c" (subscript_expression "aiStack_114[0]" identifier [ number_literal ]) = (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6d1c" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" * (cast_expression "(int *)(puStack_128 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" else (compound_statement "{\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" { (labeled_statement "LAB_00039a0c:\n        safefree(unaff_s4);" statement_identifier : (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier ))) ;)) (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8" (subscript_expression "aiStack_114[0]" identifier [ number_literal ]) = (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cf8" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" * (cast_expression "(int *)(puStack_128 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "(**(code **)(puStack_128 + -0x7b68))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7b68))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b68))" ( (pointer_expression "**(code **)(puStack_128 + -0x7b68)" * (pointer_expression "*(code **)(puStack_128 + -0x7b68)" * (cast_expression "(code **)(puStack_128 + -0x7b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7b68)" ( (binary_expression "puStack_128 + -0x7b68" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (goto_statement "goto LAB_00039a34;" goto statement_identifier ;) })) (expression_statement "piStack_12c = aiStack_114;" (assignment_expression "piStack_12c = aiStack_114" identifier = identifier) ;) (expression_statement "unaff_s4 = aiStack_114 + 1;" (assignment_expression "unaff_s4 = aiStack_114 + 1" identifier = (binary_expression "aiStack_114 + 1" identifier + number_literal)) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "piVar18 = (int *)0x1;" (assignment_expression "piVar18 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aiStack_114[1] = 0;" (assignment_expression "aiStack_114[1] = 0" (subscript_expression "aiStack_114[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[2] = 0;" (assignment_expression "aiStack_114[2] = 0" (subscript_expression "aiStack_114[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[3] = 0;" (assignment_expression "aiStack_114[3] = 0" (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[4] = 0;" (assignment_expression "aiStack_114[4] = 0" (subscript_expression "aiStack_114[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[5] = 0;" (assignment_expression "aiStack_114[5] = 0" (subscript_expression "aiStack_114[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[6] = 0;" (assignment_expression "aiStack_114[6] = 0" (subscript_expression "aiStack_114[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[7] = 0;" (assignment_expression "aiStack_114[7] = 0" (subscript_expression "aiStack_114[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[8] = 0;" (assignment_expression "aiStack_114[8] = 0" (subscript_expression "aiStack_114[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[9] = 0;" (assignment_expression "aiStack_114[9] = 0" (subscript_expression "aiStack_114[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2 = unaff_s4;" (assignment_expression "piVar2 = unaff_s4" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);" (assignment_expression "iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4)" identifier = (call_expression "FUN_00038b60(piVar5,unaff_s4,1,param_4)" identifier (argument_list "(piVar5,unaff_s4,1,param_4)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00039a34;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039a34;" goto statement_identifier ;)) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" identifier = identifier) ;) (expression_statement "uVar6 = rsa_public_blob(unaff_s4);" (assignment_expression "uVar6 = rsa_public_blob(unaff_s4)" identifier = (call_expression "rsa_public_blob(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "*puVar15 = uVar6;" (assignment_expression "*puVar15 = uVar6" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "freersakey(unaff_s4);" (call_expression "freersakey(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }" statement_identifier : (if_statement "if (iStack_ac == *piVar21) {\n    return uVar4;\n  }" if (parenthesized_expression "(iStack_ac == *piVar21)" ( (binary_expression "iStack_ac == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7abc);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7abc)" identifier = (pointer_expression "*(code **)(puStack_128 + -0x7abc)" * (cast_expression "(code **)(puStack_128 + -0x7abc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7abc)" ( (binary_expression "puStack_128 + -0x7abc" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = saversakey;" (assignment_expression "pcVar28 = saversakey" identifier = identifier) ;) (expression_statement "iVar3 = iStack_ac;" (assignment_expression "iVar3 = iStack_ac" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = *(int *)(pcVar26 + 0x3038c);" (assignment_expression "iVar9 = *(int *)(pcVar26 + 0x3038c)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x3038c)" * (cast_expression "(int *)(pcVar26 + 0x3038c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3038c)" ( (binary_expression "pcVar26 + 0x3038c" identifier + number_literal) ))))) ;) (expression_statement "piStack_150 = local_70;" (assignment_expression "piStack_150 = local_70" identifier = identifier) ;) (expression_statement "piVar22 = *(int **)(pcVar26 + 0x308b8);" (assignment_expression "piVar22 = *(int **)(pcVar26 + 0x308b8)" identifier = (pointer_expression "*(int **)(pcVar26 + 0x308b8)" * (cast_expression "(int **)(pcVar26 + 0x308b8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x308b8)" ( (binary_expression "pcVar26 + 0x308b8" identifier + number_literal) ))))) ;) (expression_statement "iStack_16c = *piVar22;" (assignment_expression "iStack_16c = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x6cd4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x6cd4)" identifier = (cast_expression "(undefined4 *)(iVar9 + 0x6cd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x6cd4)" ( (binary_expression "iVar9 + 0x6cd4" identifier + number_literal) )))) ;) (expression_statement "puVar13 = auStack_416c;" (assignment_expression "puVar13 = auStack_416c" identifier = identifier) ;) (do_statement "do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));" do (compound_statement "{\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  }" { (expression_statement "puVar11 = puVar10 + 4;" (assignment_expression "puVar11 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar13 + 4;" (assignment_expression "puVar14 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "*puVar13 = *puVar10;" (assignment_expression "*puVar13 = *puVar10" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar16 = puVar10[2];" (assignment_expression "uVar16 = puVar10[2]" identifier = (subscript_expression "puVar10[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar10[3];" (assignment_expression "uVar6 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (expression_statement "puVar13[1] = puVar10[1];" (assignment_expression "puVar13[1] = puVar10[1]" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = (subscript_expression "puVar10[1]" identifier [ number_literal ])) ;) (expression_statement "puVar13[2] = uVar16;" (assignment_expression "puVar13[2] = uVar16" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar6;" (assignment_expression "puVar13[3] = uVar6" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" identifier = identifier) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != (undefined4 *)(iVar9 + 0x6cf4))" ( (binary_expression "puVar11 != (undefined4 *)(iVar9 + 0x6cf4)" identifier != (cast_expression "(undefined4 *)(iVar9 + 0x6cf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x6cf4)" ( (binary_expression "iVar9 + 0x6cf4" identifier + number_literal) )))) )) ;) (expression_statement "uVar12 = 3;" (assignment_expression "uVar12 = 3" identifier = number_literal) ;) (if_statement "if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar12 = 0;\n  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) })) (expression_statement "iVar9 = piVar2[2];" (assignment_expression "iVar9 = piVar2[2]" identifier = (subscript_expression "piVar2[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar14 = *(undefined1 *)puVar11;" (assignment_expression "*(undefined1 *)puVar14 = *(undefined1 *)puVar11" (pointer_expression "*(undefined1 *)puVar14" * (cast_expression "(undefined1 *)puVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar11" * (cast_expression "(undefined1 *)puVar11" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uStack_414a = 0;" (assignment_expression "uStack_414a = 0" identifier = number_literal) ;) (expression_statement "uStack_4148 = 0;" (assignment_expression "uStack_4148 = 0" identifier = number_literal) ;) (expression_statement "uStack_414b = uVar12;" (assignment_expression "uStack_414b = uVar12" identifier = identifier) ;) (expression_statement "piStack_164 = piVar5;" (assignment_expression "piStack_164 = piVar5" identifier = identifier) ;) (expression_statement "piStack_160 = piVar21;" (assignment_expression "piStack_160 = piVar21" identifier = identifier) ;) (expression_statement "puStack_15c = puVar15;" (assignment_expression "puStack_15c = puVar15" identifier = identifier) ;) (expression_statement "piStack_158 = piVar17;" (assignment_expression "piStack_158 = piVar17" identifier = identifier) ;) (expression_statement "piStack_154 = unaff_s4;" (assignment_expression "piStack_154 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_14c = param_4;" (assignment_expression "puStack_14c = param_4" identifier = identifier) ;) (expression_statement "piStack_148 = unaff_s7;" (assignment_expression "piStack_148 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_144 = pcVar28;" (assignment_expression "pcStack_144 = pcVar28" identifier = identifier) ;) (expression_statement "bignum_bitcount(iVar9);" (call_expression "bignum_bitcount(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "uStack_4146 = extraout_var;" (assignment_expression "uStack_4146 = extraout_var" identifier = identifier) ;) (expression_statement "bignum_bitcount(piVar2[2]);" (call_expression "bignum_bitcount(piVar2[2])" identifier (argument_list "(piVar2[2])" ( (subscript_expression "piVar2[2]" identifier [ number_literal ]) ))) ;) (expression_statement "uStack_4145 = extraout_var_01;" (assignment_expression "uStack_4145 = extraout_var_01" identifier = identifier) ;) (expression_statement "bignum_bitcount(piVar2[2]);" (call_expression "bignum_bitcount(piVar2[2])" identifier (argument_list "(piVar2[2])" ( (subscript_expression "piVar2[2]" identifier [ number_literal ]) ))) ;) (expression_statement "uStack_4144 = extraout_var_03;" (assignment_expression "uStack_4144 = extraout_var_03" identifier = identifier) ;) (expression_statement "uStack_4143 = bignum_bitcount(piVar2[2]);" (assignment_expression "uStack_4143 = bignum_bitcount(piVar2[2])" identifier = (call_expression "bignum_bitcount(piVar2[2])" identifier (argument_list "(piVar2[2])" ( (subscript_expression "piVar2[2]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);" (assignment_expression "iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2])" identifier = (call_expression "ssh1_write_bignum(auStack_4142,piVar2[2])" identifier (argument_list "(auStack_4142,piVar2[2])" ( identifier , (subscript_expression "piVar2[2]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar19 = auStack_4142 + iVar9;" (assignment_expression "puVar19 = auStack_4142 + iVar9" identifier = (binary_expression "auStack_4142 + iVar9" identifier + identifier)) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[3])" identifier = (call_expression "ssh1_write_bignum(puVar19,piVar2[3])" identifier (argument_list "(puVar19,piVar2[3])" ( identifier , (subscript_expression "piVar2[3]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar24 = piVar2[8];" (assignment_expression "iVar24 = piVar2[8]" identifier = (subscript_expression "piVar2[8]" identifier [ number_literal ])) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (if_statement "if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }" { (expression_statement "puVar23 = puVar19 + 4;" (assignment_expression "puVar23 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[2] = 0;" (assignment_expression "puVar19[2] = 0" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[3] = 0;" (assignment_expression "puVar19[3] = 0" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" else (compound_statement "{\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" { (expression_statement "(**(code **)(pcVar26 + 0x30840))(iVar24);" (call_expression "(**(code **)(pcVar26 + 0x30840))(iVar24)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "*puVar19 = extraout_var_00;" (assignment_expression "*puVar19 = extraout_var_00" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar19[1] = extraout_var_02;" (assignment_expression "puVar19[1] = extraout_var_02" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar19[2] = extraout_var_04;" (assignment_expression "puVar19[2] = extraout_var_04" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = (*pcVar28)(iVar24);" (assignment_expression "uVar12 = (*pcVar28)(iVar24)" identifier = (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier )))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar19[3] = uVar12;" (assignment_expression "puVar19[3] = uVar12" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar6 = (*pcVar28)(iVar24);" (assignment_expression "uVar6 = (*pcVar28)(iVar24)" identifier = (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);" (call_expression "(**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6)" (parenthesized_expression "(**(code **)(pcVar26 + 0x308bc))" ( (pointer_expression "**(code **)(pcVar26 + 0x308bc)" * (pointer_expression "*(code **)(pcVar26 + 0x308bc)" * (cast_expression "(code **)(pcVar26 + 0x308bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x308bc)" ( (binary_expression "pcVar26 + 0x308bc" identifier + number_literal) ))))) )) (argument_list "(puVar19 + 4,iVar24,uVar6)" ( (binary_expression "puVar19 + 4" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);" (assignment_expression "iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30840))(iVar24)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(iVar24)" ( identifier )))) ;) (expression_statement "puVar23 = puVar19 + 4 + iVar9;" (assignment_expression "puVar23 = puVar19 + 4 + iVar9" identifier = (binary_expression "puVar19 + 4 + iVar9" (binary_expression "puVar19 + 4" identifier + number_literal) + identifier)) ;) }))) (expression_statement "puVar19 = puVar23 + 4;" (assignment_expression "puVar19 = puVar23 + 4" identifier = (binary_expression "puVar23 + 4" identifier + number_literal)) ;) (expression_statement "uVar12 = random_byte();" (assignment_expression "uVar12 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "*puVar23 = uVar12;" (assignment_expression "*puVar23 = uVar12" (pointer_expression "*puVar23" * identifier) = identifier) ;) (expression_statement "uVar12 = random_byte();" (assignment_expression "uVar12 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar9 = piVar2[4];" (assignment_expression "iVar9 = piVar2[4]" identifier = (subscript_expression "piVar2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar23[1] = uVar12;" (assignment_expression "puVar23[1] = uVar12" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = *puVar23;" (assignment_expression "puVar23[2] = *puVar23" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "puVar23[3] = uVar12;" (assignment_expression "puVar23[3] = uVar12" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,iVar9);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,iVar9)" identifier = (call_expression "ssh1_write_bignum(puVar19,iVar9)" identifier (argument_list "(puVar19,iVar9)" ( identifier , identifier )))) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[7])" identifier = (call_expression "ssh1_write_bignum(puVar19,piVar2[7])" identifier (argument_list "(puVar19,piVar2[7])" ( identifier , (subscript_expression "piVar2[7]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[6])" identifier = (call_expression "ssh1_write_bignum(puVar19,piVar2[6])" identifier (argument_list "(puVar19,piVar2[6])" ( identifier , (subscript_expression "piVar2[6]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[5])" identifier = (call_expression "ssh1_write_bignum(puVar19,piVar2[5])" identifier (argument_list "(puVar19,piVar2[5])" ( identifier , (subscript_expression "piVar2[5]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;" (assignment_expression "uVar4 = (int)(puVar19 + iVar9) - (int)puVar23" identifier = (binary_expression "(int)(puVar19 + iVar9) - (int)puVar23" (cast_expression "(int)(puVar19 + iVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar19 + iVar9)" ( (binary_expression "puVar19 + iVar9" identifier + identifier) ))) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (while_statement "while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }" while (parenthesized_expression "((uVar4 & 7) != 0)" ( (binary_expression "(uVar4 & 7) != 0" (parenthesized_expression "(uVar4 & 7)" ( (binary_expression "uVar4 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }" { (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "uVar4 = (int)(puVar19 + 1) - (int)puVar23;" (assignment_expression "uVar4 = (int)(puVar19 + 1) - (int)puVar23" identifier = (binary_expression "(int)(puVar19 + 1) - (int)puVar23" (cast_expression "(int)(puVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar19 + 1)" ( (binary_expression "puVar19 + 1" identifier + number_literal) ))) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) })) (if_statement "if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }" if (parenthesized_expression "(piVar18 != (int *)0x0)" ( (binary_expression "piVar18 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }" { (expression_statement "MD5Init(auStack_41d8);" (call_expression "MD5Init(auStack_41d8)" identifier (argument_list "(auStack_41d8)" ( identifier ))) ;) (expression_statement "uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);" (assignment_expression "uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30840))(piVar18)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(piVar18)" ( identifier )))) ;) (expression_statement "MD5Update(auStack_41d8,piVar18,uVar6);" (call_expression "MD5Update(auStack_41d8,piVar18,uVar6)" identifier (argument_list "(auStack_41d8,piVar18,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "MD5Final(auStack_417c,auStack_41d8);" (call_expression "MD5Final(auStack_417c,auStack_41d8)" identifier (argument_list "(auStack_417c,auStack_41d8)" ( identifier , identifier ))) ;) (expression_statement "des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);" (call_expression "des3_encrypt_pubkey(auStack_417c,puVar23,uVar4)" identifier (argument_list "(auStack_417c,puVar23,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "smemclr(auStack_417c,0x10);" (call_expression "smemclr(auStack_417c,0x10)" identifier (argument_list "(auStack_417c,0x10)" ( identifier , number_literal ))) ;) })) (expression_statement "iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;" (assignment_expression "iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c" identifier = (binary_expression "*(int *)(pcVar26 + 0x3038c) + -0x195c" (pointer_expression "*(int *)(pcVar26 + 0x3038c)" * (cast_expression "(int *)(pcVar26 + 0x3038c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3038c)" ( (binary_expression "pcVar26 + 0x3038c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar3 = f_open(iVar3,iVar9,1);" (assignment_expression "iVar3 = f_open(iVar3,iVar9,1)" identifier = (call_expression "f_open(iVar3,iVar9,1)" identifier (argument_list "(iVar3,iVar9,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }" { (expression_statement "iVar20 = (int)puVar19 - (int)auStack_416c;" (assignment_expression "iVar20 = (int)puVar19 - (int)auStack_416c" identifier = (binary_expression "(int)puVar19 - (int)auStack_416c" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)auStack_416c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);" (assignment_expression "iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30880))" ( (pointer_expression "**(code **)(pcVar26 + 0x30880)" * (pointer_expression "*(code **)(pcVar26 + 0x30880)" * (cast_expression "(code **)(pcVar26 + 0x30880)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30880)" ( (binary_expression "pcVar26 + 0x30880" identifier + number_literal) ))))) )) (argument_list "(auStack_416c,1,iVar20,iVar3)" ( identifier , number_literal , identifier , identifier )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3)" identifier = (call_expression "(**(code **)(pcVar26 + 0x307ec))(iVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x307ec))" ( (pointer_expression "**(code **)(pcVar26 + 0x307ec)" * (pointer_expression "*(code **)(pcVar26 + 0x307ec)" * (cast_expression "(code **)(pcVar26 + 0x307ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x307ec)" ( (binary_expression "pcVar26 + 0x307ec" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }" { (expression_statement "uVar4 = (uint)(iVar20 == iVar24);" (assignment_expression "uVar4 = (uint)(iVar20 == iVar24)" identifier = (call_expression "(uint)(iVar20 == iVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar20 == iVar24)" ( (binary_expression "iVar20 == iVar24" identifier == identifier) )))) ;) (goto_statement "goto LAB_0003a054;" goto statement_identifier ;) })) })) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }" statement_identifier : (if_statement "if (iStack_16c == *piVar22) {\n    return uVar4;\n  }" if (parenthesized_expression "(iStack_16c == *piVar22)" ( (binary_expression "iStack_16c == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "pcVar26 = *(code **)(pcVar26 + 0x30898);" (assignment_expression "pcVar26 = *(code **)(pcVar26 + 0x30898)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30898)" * (cast_expression "(code **)(pcVar26 + 0x30898)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30898)" ( (binary_expression "pcVar26 + 0x30898" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iStack_16c;" (assignment_expression "iVar3 = iStack_16c" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar24 = match_ssh_id();" (assignment_expression "iVar24 = match_ssh_id()" identifier = (call_expression "match_ssh_id()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }" { (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + -0x1ac8" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n      return *(uint *)(pcVar26 + 0x30070);\n    }" { (return_statement "return *(uint *)(pcVar26 + 0x30070);" return (pointer_expression "*(uint *)(pcVar26 + 0x30070)" * (cast_expression "(uint *)(pcVar26 + 0x30070)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30070)" ( (binary_expression "pcVar26 + 0x30070" identifier + number_literal) )))) ;) })) (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3330" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n      return *(uint *)(pcVar26 + 0x30124);\n    }" { (return_statement "return *(uint *)(pcVar26 + 0x30124);" return (pointer_expression "*(uint *)(pcVar26 + 0x30124)" * (cast_expression "(uint *)(pcVar26 + 0x30124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30124)" ( (binary_expression "pcVar26 + 0x30124" identifier + number_literal) )))) ;) })) (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x331c" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }" { (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3308" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }" { (expression_statement "iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);" (assignment_expression "iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3344" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30068);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30068)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0x30068)" * (cast_expression "(uint *)(pcVar26 + 0x30068)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30068)" ( (binary_expression "pcVar26 + 0x30068" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n          uVar4 = 0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar4 = 0;\n        }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" else (compound_statement "{\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" { (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x3012c);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x3012c)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0x3012c)" * (cast_expression "(uint *)(pcVar26 + 0x3012c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3012c)" ( (binary_expression "pcVar26 + 0x3012c" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" else (compound_statement "{\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" { (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30128);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30128)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0x30128)" * (cast_expression "(uint *)(pcVar26 + 0x30128)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30128)" ( (binary_expression "pcVar26 + 0x30128" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" else (compound_statement "{\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" { (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30048);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30048)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0x30048)" * (cast_expression "(uint *)(pcVar26 + 0x30048)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30048)" ( (binary_expression "pcVar26 + 0x30048" identifier + number_literal) ))))) ;) }))) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "int rsakey_encrypted(Filename *filename,char **comment)\n\n{\n  undefined *puVar1;\n  uchar extraout_var;\n  uchar extraout_var_00;\n  uchar extraout_var_01;\n  Filename *pFVar2;\n  FILE *pFVar3;\n  int iVar4;\n  FILE *fp;\n  char *pcVar5;\n  char *pcVar6;\n  uchar *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined1 uVar10;\n  uchar uVar11;\n  uint len;\n  char *decimal;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  Bignum_conflict pBVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  FILE *pFVar18;\n  uchar *puVar19;\n  char **in_a3;\n  char *s;\n  FILE *unaff_s0;\n  int iVar20;\n  int *piVar21;\n  uint uVar22;\n  char *unaff_s2;\n  int *piVar23;\n  FILE *unaff_s4;\n  uchar *blk;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  char *decimal_00;\n  MD5Context MStackY_41d8;\n  uchar auStackY_417c [16];\n  undefined4 auStackY_416c [4];\n  undefined1 auStackY_415c [17];\n  undefined1 uStackY_414b;\n  undefined2 uStackY_414a;\n  undefined2 uStackY_4148;\n  undefined1 uStackY_4146;\n  undefined1 uStackY_4145;\n  undefined1 uStackY_4144;\n  undefined1 uStackY_4143;\n  uchar auStackY_4142 [16342];\n  int iStackY_16c;\n  FILE *pFStackY_164;\n  int *piStackY_160;\n  char *pcStackY_15c;\n  FILE *pFStackY_158;\n  FILE *pFStackY_154;\n  int *piStackY_150;\n  char **ppcStackY_14c;\n  char *pcStack_114;\n  RSAKey RStack_110;\n  undefined1 auStack_ec [64];\n  Filename *pFStack_ac;\n  FILE *pFStack_a8;\n  undefined *puStack_a4;\n  char *pcStack_a0;\n  char **ppcStack_9c;\n  int *in_stack_ffffff90;\n  char *dummy;\n  char buf [64];\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  pFVar18 = (FILE *)0x0;\n  pcVar16 = PTR_D0_238__0006a068 + 0x6cc0;\n  pFVar2 = *(Filename **)PTR___stack_chk_guard_0006a594;\n  pFVar3 = f_open(filename,pcVar16,0);\n  if (pFVar3 == (FILE *)0x0) {\n    iVar4 = 0;\n  }\n  else {\n    unaff_s2 = buf;\n    pcVar16 = &DAT_00000040;\n    pFVar18 = pFVar3;\n    iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = pFVar3;\n    if (iVar4 != 0) {\n      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;\n      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(pFVar3);\n    iVar4 = 0;\n  }\nLAB_00039880:\n  if (pFVar2 == *(Filename **)puVar1) {\n    return iVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  puVar19 = (uchar *)0x0;\n  pFVar3 = (FILE *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  pcStack_114 = (char *)0x0;\n  pFStack_ac = (Filename *)*piVar21;\n  pcVar16[0] = '\0';\n  pcVar16[1] = '\0';\n  pcVar16[2] = '\0';\n  pcVar16[3] = '\0';\n  pFVar18->_flags = 0;\n  pFStack_a8 = unaff_s0;\n  pcStack_a0 = unaff_s2;\n  ppcStack_9c = comment;\n  fp = f_open(pFVar2,(char *)pFVar3,0);\n  if (fp == (FILE *)0x0) {\n    pcStack_114 = (char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4);\nLAB_00039a34:\n    iVar4 = 0;\n    if (in_stack_ffffff90 != (int *)0x0) {\n      *in_stack_ffffff90 = (int)pcStack_114;\n    }\n  }\n  else {\n    iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp);\n    if ((iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)) {\n      iVar24 = *(int *)(puVar25 + 0x3077c);\n      (**(code **)(puVar25 + 0x30c84))(fp);\n      pcVar5 = fgetline(fp);\n      pcVar5 = chomp(pcVar5);\n      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);\n      pcVar6 = pcVar5 + iVar4;\n      if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }\nLAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);\n    }\n    unaff_s4 = (FILE *)&RStack_110;\n    puVar19 = (uchar *)0x1;\n    RStack_110.bits = 0;\n    RStack_110.bytes = 0;\n    RStack_110.modulus = (char *)0x0;\n    RStack_110.exponent = (char *)0x0;\n    RStack_110.private_exponent = (char *)0x0;\n    RStack_110.p = (char *)0x0;\n    RStack_110.q = (char *)0x0;\n    RStack_110.iqmp = (char *)0x0;\n    RStack_110.comment = (char *)0x0;\n    pFVar3 = unaff_s4;\n    iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114);\n    unaff_s0 = fp;\n    if (iVar4 == 0) goto LAB_00039a34;\n    pFVar3 = pFVar18;\n    puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags);\n    *(uchar **)pcVar16 = puVar7;\n    freersakey((RSAKey *)unaff_s4);\n    iVar4 = 1;\n  }\n  if (pFStack_ac == (Filename *)*piVar21) {\n    return iVar4;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x30c88);\n  pFVar2 = pFStack_ac;\n  (*pcVar26)();\n  iVar4 = *(int *)(pcVar26 + 0x3038c);\n  piVar23 = *(int **)(pcVar26 + 0x308b8);\n  iStackY_16c = *piVar23;\n  puVar8 = (undefined4 *)(iVar4 + 0x6cd4);\n  puVar12 = auStackY_416c;\n  do {\n    puVar9 = puVar8 + 4;\n    puVar13 = puVar12 + 4;\n    *puVar12 = *puVar8;\n    uVar17 = puVar8[2];\n    uVar14 = puVar8[3];\n    puVar12[1] = puVar8[1];\n    puVar12[2] = uVar17;\n    puVar12[3] = uVar14;\n    puVar8 = puVar9;\n    puVar12 = puVar13;\n  } while (puVar9 != (undefined4 *)(iVar4 + 0x6cf4));\n  uVar10 = 3;\n  if (puVar19 == (uchar *)0x0) {\n    uVar10 = 0;\n  }\n  pBVar15 = (Bignum_conflict)pFVar3->_IO_read_end;\n  *(undefined1 *)puVar13 = *(undefined1 *)puVar9;\n  uStackY_414a = 0;\n  uStackY_4148 = 0;\n  uStackY_414b = uVar10;\n  pFStackY_164 = unaff_s0;\n  piStackY_160 = piVar21;\n  pcStackY_15c = pcVar16;\n  pFStackY_158 = pFVar18;\n  pFStackY_154 = unaff_s4;\n  piStackY_150 = in_stack_ffffff90;\n  ppcStackY_14c = in_a3;\n  iVar4 = bignum_bitcount(pBVar15);\n  uStackY_4146 = (undefined1)((uint)iVar4 >> 0x18);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4145 = (undefined1)((uint)iVar4 >> 0x10);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4144 = (undefined1)((uint)iVar4 >> 8);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4143 = (undefined1)iVar4;\n  iVar4 = ssh1_write_bignum(auStackY_4142,(Bignum_conflict)pFVar3->_IO_read_end);\n  puVar7 = auStackY_4142 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_read_base);\n  pcVar16 = pFVar3->_IO_buf_end;\n  puVar7 = puVar7 + iVar4;\n  if (pcVar16 == (char *)0x0) {\n    blk = puVar7 + 4;\n    *puVar7 = '\0';\n    puVar7[1] = '\0';\n    puVar7[2] = '\0';\n    puVar7[3] = '\0';\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    *puVar7 = extraout_var;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[1] = extraout_var_00;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[2] = extraout_var_01;\n    uVar11 = (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[3] = uVar11;\n    uVar14 = (*pcVar27)(pcVar16);\n    (**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14);\n    iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    blk = puVar7 + 4 + iVar4;\n  }\n  puVar7 = blk + 4;\n  iVar4 = random_byte();\n  *blk = (uchar)iVar4;\n  iVar4 = random_byte();\n  pBVar15 = (Bignum_conflict)pFVar3->_IO_write_base;\n  blk[1] = (uchar)iVar4;\n  blk[2] = *blk;\n  blk[3] = (uchar)iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,pBVar15);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_buf_base);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_end);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_ptr);\n  uVar22 = (int)(puVar7 + iVar4) - (int)blk;\n  puVar7 = puVar7 + iVar4;\n  while ((uVar22 & 7) != 0) {\n    *puVar7 = '\0';\n    uVar22 = (int)(puVar7 + 1) - (int)blk;\n    puVar7 = puVar7 + 1;\n  }\n  if (puVar19 != (uchar *)0x0) {\n    MD5Init(&MStackY_41d8);\n    len = (**(code **)(pcVar26 + 0x30840))(puVar19);\n    MD5Update(&MStackY_41d8,puVar19,len);\n    MD5Final(auStackY_417c,&MStackY_41d8);\n    des3_encrypt_pubkey(auStackY_417c,blk,uVar22);\n                    /* WARNING: Subroutine does not return */\n    smemclr(auStackY_417c,0x10);\n  }\n  pcVar16 = (char *)(*(int *)(pcVar26 + 0x3038c) + -0x195c);\n  pFVar18 = f_open(pFVar2,pcVar16,1);\n  if (pFVar18 != (FILE *)0x0) {\n    iVar20 = (int)puVar7 - (int)auStackY_416c;\n    pcVar16 = (char *)0x1;\n    iVar4 = (**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18);\n    iVar24 = (**(code **)(pcVar26 + 0x307ec))(pFVar18);\n    if (iVar24 == 0) {\n      uVar22 = (uint)(iVar20 == iVar4);\n      goto LAB_0003a054;\n    }\n  }\n  uVar22 = 0;\nLAB_0003a054:\n  if (iStackY_16c == *piVar23) {\n    return uVar22;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar4 = iStackY_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0));\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c));\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));\n      if (iVar24 == 0) {\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }\n      else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      iVar4 = *(int *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar26 + 0x30048);\n  }\n  return iVar4;\n}\n\n" (function_definition "int rsakey_encrypted(Filename *filename,char **comment)\n\n{\n  undefined *puVar1;\n  uchar extraout_var;\n  uchar extraout_var_00;\n  uchar extraout_var_01;\n  Filename *pFVar2;\n  FILE *pFVar3;\n  int iVar4;\n  FILE *fp;\n  char *pcVar5;\n  char *pcVar6;\n  uchar *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined1 uVar10;\n  uchar uVar11;\n  uint len;\n  char *decimal;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  Bignum_conflict pBVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  FILE *pFVar18;\n  uchar *puVar19;\n  char **in_a3;\n  char *s;\n  FILE *unaff_s0;\n  int iVar20;\n  int *piVar21;\n  uint uVar22;\n  char *unaff_s2;\n  int *piVar23;\n  FILE *unaff_s4;\n  uchar *blk;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  char *decimal_00;\n  MD5Context MStackY_41d8;\n  uchar auStackY_417c [16];\n  undefined4 auStackY_416c [4];\n  undefined1 auStackY_415c [17];\n  undefined1 uStackY_414b;\n  undefined2 uStackY_414a;\n  undefined2 uStackY_4148;\n  undefined1 uStackY_4146;\n  undefined1 uStackY_4145;\n  undefined1 uStackY_4144;\n  undefined1 uStackY_4143;\n  uchar auStackY_4142 [16342];\n  int iStackY_16c;\n  FILE *pFStackY_164;\n  int *piStackY_160;\n  char *pcStackY_15c;\n  FILE *pFStackY_158;\n  FILE *pFStackY_154;\n  int *piStackY_150;\n  char **ppcStackY_14c;\n  char *pcStack_114;\n  RSAKey RStack_110;\n  undefined1 auStack_ec [64];\n  Filename *pFStack_ac;\n  FILE *pFStack_a8;\n  undefined *puStack_a4;\n  char *pcStack_a0;\n  char **ppcStack_9c;\n  int *in_stack_ffffff90;\n  char *dummy;\n  char buf [64];\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  pFVar18 = (FILE *)0x0;\n  pcVar16 = PTR_D0_238__0006a068 + 0x6cc0;\n  pFVar2 = *(Filename **)PTR___stack_chk_guard_0006a594;\n  pFVar3 = f_open(filename,pcVar16,0);\n  if (pFVar3 == (FILE *)0x0) {\n    iVar4 = 0;\n  }\n  else {\n    unaff_s2 = buf;\n    pcVar16 = &DAT_00000040;\n    pFVar18 = pFVar3;\n    iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = pFVar3;\n    if (iVar4 != 0) {\n      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;\n      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(pFVar3);\n    iVar4 = 0;\n  }\nLAB_00039880:\n  if (pFVar2 == *(Filename **)puVar1) {\n    return iVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  puVar19 = (uchar *)0x0;\n  pFVar3 = (FILE *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  pcStack_114 = (char *)0x0;\n  pFStack_ac = (Filename *)*piVar21;\n  pcVar16[0] = '\0';\n  pcVar16[1] = '\0';\n  pcVar16[2] = '\0';\n  pcVar16[3] = '\0';\n  pFVar18->_flags = 0;\n  pFStack_a8 = unaff_s0;\n  pcStack_a0 = unaff_s2;\n  ppcStack_9c = comment;\n  fp = f_open(pFVar2,(char *)pFVar3,0);\n  if (fp == (FILE *)0x0) {\n    pcStack_114 = (char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4);\nLAB_00039a34:\n    iVar4 = 0;\n    if (in_stack_ffffff90 != (int *)0x0) {\n      *in_stack_ffffff90 = (int)pcStack_114;\n    }\n  }\n  else {\n    iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp);\n    if ((iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)) {\n      iVar24 = *(int *)(puVar25 + 0x3077c);\n      (**(code **)(puVar25 + 0x30c84))(fp);\n      pcVar5 = fgetline(fp);\n      pcVar5 = chomp(pcVar5);\n      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);\n      pcVar6 = pcVar5 + iVar4;\n      if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }\nLAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);\n    }\n    unaff_s4 = (FILE *)&RStack_110;\n    puVar19 = (uchar *)0x1;\n    RStack_110.bits = 0;\n    RStack_110.bytes = 0;\n    RStack_110.modulus = (char *)0x0;\n    RStack_110.exponent = (char *)0x0;\n    RStack_110.private_exponent = (char *)0x0;\n    RStack_110.p = (char *)0x0;\n    RStack_110.q = (char *)0x0;\n    RStack_110.iqmp = (char *)0x0;\n    RStack_110.comment = (char *)0x0;\n    pFVar3 = unaff_s4;\n    iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114);\n    unaff_s0 = fp;\n    if (iVar4 == 0) goto LAB_00039a34;\n    pFVar3 = pFVar18;\n    puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags);\n    *(uchar **)pcVar16 = puVar7;\n    freersakey((RSAKey *)unaff_s4);\n    iVar4 = 1;\n  }\n  if (pFStack_ac == (Filename *)*piVar21) {\n    return iVar4;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x30c88);\n  pFVar2 = pFStack_ac;\n  (*pcVar26)();\n  iVar4 = *(int *)(pcVar26 + 0x3038c);\n  piVar23 = *(int **)(pcVar26 + 0x308b8);\n  iStackY_16c = *piVar23;\n  puVar8 = (undefined4 *)(iVar4 + 0x6cd4);\n  puVar12 = auStackY_416c;\n  do {\n    puVar9 = puVar8 + 4;\n    puVar13 = puVar12 + 4;\n    *puVar12 = *puVar8;\n    uVar17 = puVar8[2];\n    uVar14 = puVar8[3];\n    puVar12[1] = puVar8[1];\n    puVar12[2] = uVar17;\n    puVar12[3] = uVar14;\n    puVar8 = puVar9;\n    puVar12 = puVar13;\n  } while (puVar9 != (undefined4 *)(iVar4 + 0x6cf4));\n  uVar10 = 3;\n  if (puVar19 == (uchar *)0x0) {\n    uVar10 = 0;\n  }\n  pBVar15 = (Bignum_conflict)pFVar3->_IO_read_end;\n  *(undefined1 *)puVar13 = *(undefined1 *)puVar9;\n  uStackY_414a = 0;\n  uStackY_4148 = 0;\n  uStackY_414b = uVar10;\n  pFStackY_164 = unaff_s0;\n  piStackY_160 = piVar21;\n  pcStackY_15c = pcVar16;\n  pFStackY_158 = pFVar18;\n  pFStackY_154 = unaff_s4;\n  piStackY_150 = in_stack_ffffff90;\n  ppcStackY_14c = in_a3;\n  iVar4 = bignum_bitcount(pBVar15);\n  uStackY_4146 = (undefined1)((uint)iVar4 >> 0x18);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4145 = (undefined1)((uint)iVar4 >> 0x10);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4144 = (undefined1)((uint)iVar4 >> 8);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4143 = (undefined1)iVar4;\n  iVar4 = ssh1_write_bignum(auStackY_4142,(Bignum_conflict)pFVar3->_IO_read_end);\n  puVar7 = auStackY_4142 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_read_base);\n  pcVar16 = pFVar3->_IO_buf_end;\n  puVar7 = puVar7 + iVar4;\n  if (pcVar16 == (char *)0x0) {\n    blk = puVar7 + 4;\n    *puVar7 = '\0';\n    puVar7[1] = '\0';\n    puVar7[2] = '\0';\n    puVar7[3] = '\0';\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    *puVar7 = extraout_var;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[1] = extraout_var_00;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[2] = extraout_var_01;\n    uVar11 = (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[3] = uVar11;\n    uVar14 = (*pcVar27)(pcVar16);\n    (**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14);\n    iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    blk = puVar7 + 4 + iVar4;\n  }\n  puVar7 = blk + 4;\n  iVar4 = random_byte();\n  *blk = (uchar)iVar4;\n  iVar4 = random_byte();\n  pBVar15 = (Bignum_conflict)pFVar3->_IO_write_base;\n  blk[1] = (uchar)iVar4;\n  blk[2] = *blk;\n  blk[3] = (uchar)iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,pBVar15);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_buf_base);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_end);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_ptr);\n  uVar22 = (int)(puVar7 + iVar4) - (int)blk;\n  puVar7 = puVar7 + iVar4;\n  while ((uVar22 & 7) != 0) {\n    *puVar7 = '\0';\n    uVar22 = (int)(puVar7 + 1) - (int)blk;\n    puVar7 = puVar7 + 1;\n  }\n  if (puVar19 != (uchar *)0x0) {\n    MD5Init(&MStackY_41d8);\n    len = (**(code **)(pcVar26 + 0x30840))(puVar19);\n    MD5Update(&MStackY_41d8,puVar19,len);\n    MD5Final(auStackY_417c,&MStackY_41d8);\n    des3_encrypt_pubkey(auStackY_417c,blk,uVar22);\n                    /* WARNING: Subroutine does not return */\n    smemclr(auStackY_417c,0x10);\n  }\n  pcVar16 = (char *)(*(int *)(pcVar26 + 0x3038c) + -0x195c);\n  pFVar18 = f_open(pFVar2,pcVar16,1);\n  if (pFVar18 != (FILE *)0x0) {\n    iVar20 = (int)puVar7 - (int)auStackY_416c;\n    pcVar16 = (char *)0x1;\n    iVar4 = (**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18);\n    iVar24 = (**(code **)(pcVar26 + 0x307ec))(pFVar18);\n    if (iVar24 == 0) {\n      uVar22 = (uint)(iVar20 == iVar4);\n      goto LAB_0003a054;\n    }\n  }\n  uVar22 = 0;\nLAB_0003a054:\n  if (iStackY_16c == *piVar23) {\n    return uVar22;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar4 = iStackY_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0));\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c));\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));\n      if (iVar24 == 0) {\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }\n      else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      iVar4 = *(int *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar26 + 0x30048);\n  }\n  return iVar4;\n}" primitive_type (function_declarator "rsakey_encrypted(Filename *filename,char **comment)" identifier (parameter_list "(Filename *filename,char **comment)" ( (parameter_declaration "Filename *filename" type_identifier (pointer_declarator "*filename" * identifier)) , (parameter_declaration "char **comment" primitive_type (pointer_declarator "**comment" * (pointer_declarator "*comment" * identifier))) ))) (compound_statement "{\n  undefined *puVar1;\n  uchar extraout_var;\n  uchar extraout_var_00;\n  uchar extraout_var_01;\n  Filename *pFVar2;\n  FILE *pFVar3;\n  int iVar4;\n  FILE *fp;\n  char *pcVar5;\n  char *pcVar6;\n  uchar *puVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  undefined1 uVar10;\n  uchar uVar11;\n  uint len;\n  char *decimal;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  undefined4 uVar14;\n  Bignum_conflict pBVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  FILE *pFVar18;\n  uchar *puVar19;\n  char **in_a3;\n  char *s;\n  FILE *unaff_s0;\n  int iVar20;\n  int *piVar21;\n  uint uVar22;\n  char *unaff_s2;\n  int *piVar23;\n  FILE *unaff_s4;\n  uchar *blk;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  char *decimal_00;\n  MD5Context MStackY_41d8;\n  uchar auStackY_417c [16];\n  undefined4 auStackY_416c [4];\n  undefined1 auStackY_415c [17];\n  undefined1 uStackY_414b;\n  undefined2 uStackY_414a;\n  undefined2 uStackY_4148;\n  undefined1 uStackY_4146;\n  undefined1 uStackY_4145;\n  undefined1 uStackY_4144;\n  undefined1 uStackY_4143;\n  uchar auStackY_4142 [16342];\n  int iStackY_16c;\n  FILE *pFStackY_164;\n  int *piStackY_160;\n  char *pcStackY_15c;\n  FILE *pFStackY_158;\n  FILE *pFStackY_154;\n  int *piStackY_150;\n  char **ppcStackY_14c;\n  char *pcStack_114;\n  RSAKey RStack_110;\n  undefined1 auStack_ec [64];\n  Filename *pFStack_ac;\n  FILE *pFStack_a8;\n  undefined *puStack_a4;\n  char *pcStack_a0;\n  char **ppcStack_9c;\n  int *in_stack_ffffff90;\n  char *dummy;\n  char buf [64];\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  pFVar18 = (FILE *)0x0;\n  pcVar16 = PTR_D0_238__0006a068 + 0x6cc0;\n  pFVar2 = *(Filename **)PTR___stack_chk_guard_0006a594;\n  pFVar3 = f_open(filename,pcVar16,0);\n  if (pFVar3 == (FILE *)0x0) {\n    iVar4 = 0;\n  }\n  else {\n    unaff_s2 = buf;\n    pcVar16 = &DAT_00000040;\n    pFVar18 = pFVar3;\n    iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = pFVar3;\n    if (iVar4 != 0) {\n      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;\n      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(pFVar3);\n    iVar4 = 0;\n  }\nLAB_00039880:\n  if (pFVar2 == *(Filename **)puVar1) {\n    return iVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  puVar19 = (uchar *)0x0;\n  pFVar3 = (FILE *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  pcStack_114 = (char *)0x0;\n  pFStack_ac = (Filename *)*piVar21;\n  pcVar16[0] = '\0';\n  pcVar16[1] = '\0';\n  pcVar16[2] = '\0';\n  pcVar16[3] = '\0';\n  pFVar18->_flags = 0;\n  pFStack_a8 = unaff_s0;\n  pcStack_a0 = unaff_s2;\n  ppcStack_9c = comment;\n  fp = f_open(pFVar2,(char *)pFVar3,0);\n  if (fp == (FILE *)0x0) {\n    pcStack_114 = (char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4);\nLAB_00039a34:\n    iVar4 = 0;\n    if (in_stack_ffffff90 != (int *)0x0) {\n      *in_stack_ffffff90 = (int)pcStack_114;\n    }\n  }\n  else {\n    iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp);\n    if ((iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)) {\n      iVar24 = *(int *)(puVar25 + 0x3077c);\n      (**(code **)(puVar25 + 0x30c84))(fp);\n      pcVar5 = fgetline(fp);\n      pcVar5 = chomp(pcVar5);\n      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);\n      pcVar6 = pcVar5 + iVar4;\n      if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }\nLAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);\n    }\n    unaff_s4 = (FILE *)&RStack_110;\n    puVar19 = (uchar *)0x1;\n    RStack_110.bits = 0;\n    RStack_110.bytes = 0;\n    RStack_110.modulus = (char *)0x0;\n    RStack_110.exponent = (char *)0x0;\n    RStack_110.private_exponent = (char *)0x0;\n    RStack_110.p = (char *)0x0;\n    RStack_110.q = (char *)0x0;\n    RStack_110.iqmp = (char *)0x0;\n    RStack_110.comment = (char *)0x0;\n    pFVar3 = unaff_s4;\n    iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114);\n    unaff_s0 = fp;\n    if (iVar4 == 0) goto LAB_00039a34;\n    pFVar3 = pFVar18;\n    puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags);\n    *(uchar **)pcVar16 = puVar7;\n    freersakey((RSAKey *)unaff_s4);\n    iVar4 = 1;\n  }\n  if (pFStack_ac == (Filename *)*piVar21) {\n    return iVar4;\n  }\n  pcVar26 = *(code **)(puVar25 + 0x30c88);\n  pFVar2 = pFStack_ac;\n  (*pcVar26)();\n  iVar4 = *(int *)(pcVar26 + 0x3038c);\n  piVar23 = *(int **)(pcVar26 + 0x308b8);\n  iStackY_16c = *piVar23;\n  puVar8 = (undefined4 *)(iVar4 + 0x6cd4);\n  puVar12 = auStackY_416c;\n  do {\n    puVar9 = puVar8 + 4;\n    puVar13 = puVar12 + 4;\n    *puVar12 = *puVar8;\n    uVar17 = puVar8[2];\n    uVar14 = puVar8[3];\n    puVar12[1] = puVar8[1];\n    puVar12[2] = uVar17;\n    puVar12[3] = uVar14;\n    puVar8 = puVar9;\n    puVar12 = puVar13;\n  } while (puVar9 != (undefined4 *)(iVar4 + 0x6cf4));\n  uVar10 = 3;\n  if (puVar19 == (uchar *)0x0) {\n    uVar10 = 0;\n  }\n  pBVar15 = (Bignum_conflict)pFVar3->_IO_read_end;\n  *(undefined1 *)puVar13 = *(undefined1 *)puVar9;\n  uStackY_414a = 0;\n  uStackY_4148 = 0;\n  uStackY_414b = uVar10;\n  pFStackY_164 = unaff_s0;\n  piStackY_160 = piVar21;\n  pcStackY_15c = pcVar16;\n  pFStackY_158 = pFVar18;\n  pFStackY_154 = unaff_s4;\n  piStackY_150 = in_stack_ffffff90;\n  ppcStackY_14c = in_a3;\n  iVar4 = bignum_bitcount(pBVar15);\n  uStackY_4146 = (undefined1)((uint)iVar4 >> 0x18);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4145 = (undefined1)((uint)iVar4 >> 0x10);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4144 = (undefined1)((uint)iVar4 >> 8);\n  iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);\n  uStackY_4143 = (undefined1)iVar4;\n  iVar4 = ssh1_write_bignum(auStackY_4142,(Bignum_conflict)pFVar3->_IO_read_end);\n  puVar7 = auStackY_4142 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_read_base);\n  pcVar16 = pFVar3->_IO_buf_end;\n  puVar7 = puVar7 + iVar4;\n  if (pcVar16 == (char *)0x0) {\n    blk = puVar7 + 4;\n    *puVar7 = '\0';\n    puVar7[1] = '\0';\n    puVar7[2] = '\0';\n    puVar7[3] = '\0';\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    *puVar7 = extraout_var;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[1] = extraout_var_00;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[2] = extraout_var_01;\n    uVar11 = (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[3] = uVar11;\n    uVar14 = (*pcVar27)(pcVar16);\n    (**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14);\n    iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    blk = puVar7 + 4 + iVar4;\n  }\n  puVar7 = blk + 4;\n  iVar4 = random_byte();\n  *blk = (uchar)iVar4;\n  iVar4 = random_byte();\n  pBVar15 = (Bignum_conflict)pFVar3->_IO_write_base;\n  blk[1] = (uchar)iVar4;\n  blk[2] = *blk;\n  blk[3] = (uchar)iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,pBVar15);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_buf_base);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_end);\n  puVar7 = puVar7 + iVar4;\n  iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_ptr);\n  uVar22 = (int)(puVar7 + iVar4) - (int)blk;\n  puVar7 = puVar7 + iVar4;\n  while ((uVar22 & 7) != 0) {\n    *puVar7 = '\0';\n    uVar22 = (int)(puVar7 + 1) - (int)blk;\n    puVar7 = puVar7 + 1;\n  }\n  if (puVar19 != (uchar *)0x0) {\n    MD5Init(&MStackY_41d8);\n    len = (**(code **)(pcVar26 + 0x30840))(puVar19);\n    MD5Update(&MStackY_41d8,puVar19,len);\n    MD5Final(auStackY_417c,&MStackY_41d8);\n    des3_encrypt_pubkey(auStackY_417c,blk,uVar22);\n                    /* WARNING: Subroutine does not return */\n    smemclr(auStackY_417c,0x10);\n  }\n  pcVar16 = (char *)(*(int *)(pcVar26 + 0x3038c) + -0x195c);\n  pFVar18 = f_open(pFVar2,pcVar16,1);\n  if (pFVar18 != (FILE *)0x0) {\n    iVar20 = (int)puVar7 - (int)auStackY_416c;\n    pcVar16 = (char *)0x1;\n    iVar4 = (**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18);\n    iVar24 = (**(code **)(pcVar26 + 0x307ec))(pFVar18);\n    if (iVar24 == 0) {\n      uVar22 = (uint)(iVar20 == iVar4);\n      goto LAB_0003a054;\n    }\n  }\n  uVar22 = 0;\nLAB_0003a054:\n  if (iStackY_16c == *piVar23) {\n    return uVar22;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar4 = iStackY_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0));\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c));\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));\n      if (iVar24 == 0) {\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }\n      else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      iVar4 = *(int *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar26 + 0x30048);\n  }\n  return iVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uchar extraout_var;" type_identifier identifier ;) (declaration "uchar extraout_var_00;" type_identifier identifier ;) (declaration "uchar extraout_var_01;" type_identifier identifier ;) (declaration "Filename *pFVar2;" type_identifier (pointer_declarator "*pFVar2" * identifier) ;) (declaration "FILE *pFVar3;" type_identifier (pointer_declarator "*pFVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "FILE *fp;" type_identifier (pointer_declarator "*fp" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uchar *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined1 uVar10;" type_identifier identifier ;) (declaration "uchar uVar11;" type_identifier identifier ;) (declaration "uint len;" type_identifier identifier ;) (declaration "char *decimal;" primitive_type (pointer_declarator "*decimal" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "Bignum_conflict pBVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "FILE *pFVar18;" type_identifier (pointer_declarator "*pFVar18" * identifier) ;) (declaration "uchar *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "char **in_a3;" primitive_type (pointer_declarator "**in_a3" * (pointer_declarator "*in_a3" * identifier)) ;) (declaration "char *s;" primitive_type (pointer_declarator "*s" * identifier) ;) (declaration "FILE *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "char *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "FILE *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uchar *blk;" type_identifier (pointer_declarator "*blk" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "char *decimal_00;" primitive_type (pointer_declarator "*decimal_00" * identifier) ;) (declaration "MD5Context MStackY_41d8;" type_identifier identifier ;) (declaration "uchar auStackY_417c [16];" type_identifier (array_declarator "auStackY_417c [16]" identifier [ number_literal ]) ;) (declaration "undefined4 auStackY_416c [4];" type_identifier (array_declarator "auStackY_416c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStackY_415c [17];" type_identifier (array_declarator "auStackY_415c [17]" identifier [ number_literal ]) ;) (declaration "undefined1 uStackY_414b;" type_identifier identifier ;) (declaration "undefined2 uStackY_414a;" type_identifier identifier ;) (declaration "undefined2 uStackY_4148;" type_identifier identifier ;) (declaration "undefined1 uStackY_4146;" type_identifier identifier ;) (declaration "undefined1 uStackY_4145;" type_identifier identifier ;) (declaration "undefined1 uStackY_4144;" type_identifier identifier ;) (declaration "undefined1 uStackY_4143;" type_identifier identifier ;) (declaration "uchar auStackY_4142 [16342];" type_identifier (array_declarator "auStackY_4142 [16342]" identifier [ number_literal ]) ;) (declaration "int iStackY_16c;" primitive_type identifier ;) (declaration "FILE *pFStackY_164;" type_identifier (pointer_declarator "*pFStackY_164" * identifier) ;) (declaration "int *piStackY_160;" primitive_type (pointer_declarator "*piStackY_160" * identifier) ;) (declaration "char *pcStackY_15c;" primitive_type (pointer_declarator "*pcStackY_15c" * identifier) ;) (declaration "FILE *pFStackY_158;" type_identifier (pointer_declarator "*pFStackY_158" * identifier) ;) (declaration "FILE *pFStackY_154;" type_identifier (pointer_declarator "*pFStackY_154" * identifier) ;) (declaration "int *piStackY_150;" primitive_type (pointer_declarator "*piStackY_150" * identifier) ;) (declaration "char **ppcStackY_14c;" primitive_type (pointer_declarator "**ppcStackY_14c" * (pointer_declarator "*ppcStackY_14c" * identifier)) ;) (declaration "char *pcStack_114;" primitive_type (pointer_declarator "*pcStack_114" * identifier) ;) (declaration "RSAKey RStack_110;" type_identifier identifier ;) (declaration "undefined1 auStack_ec [64];" type_identifier (array_declarator "auStack_ec [64]" identifier [ number_literal ]) ;) (declaration "Filename *pFStack_ac;" type_identifier (pointer_declarator "*pFStack_ac" * identifier) ;) (declaration "FILE *pFStack_a8;" type_identifier (pointer_declarator "*pFStack_a8" * identifier) ;) (declaration "undefined *puStack_a4;" type_identifier (pointer_declarator "*puStack_a4" * identifier) ;) (declaration "char *pcStack_a0;" primitive_type (pointer_declarator "*pcStack_a0" * identifier) ;) (declaration "char **ppcStack_9c;" primitive_type (pointer_declarator "**ppcStack_9c" * (pointer_declarator "*ppcStack_9c" * identifier)) ;) (declaration "int *in_stack_ffffff90;" primitive_type (pointer_declarator "*in_stack_ffffff90" * identifier) ;) (declaration "char *dummy;" primitive_type (pointer_declarator "*dummy" * identifier) ;) (declaration "char buf [64];" primitive_type (array_declarator "buf [64]" identifier [ number_literal ]) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0006a594;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0006a594" identifier = identifier) ;) (expression_statement "pFVar18 = (FILE *)0x0;" (assignment_expression "pFVar18 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar16 = PTR_D0_238__0006a068 + 0x6cc0;" (assignment_expression "pcVar16 = PTR_D0_238__0006a068 + 0x6cc0" identifier = (binary_expression "PTR_D0_238__0006a068 + 0x6cc0" identifier + number_literal)) ;) (expression_statement "pFVar2 = *(Filename **)PTR___stack_chk_guard_0006a594;" (assignment_expression "pFVar2 = *(Filename **)PTR___stack_chk_guard_0006a594" identifier = (pointer_expression "*(Filename **)PTR___stack_chk_guard_0006a594" * (cast_expression "(Filename **)PTR___stack_chk_guard_0006a594" ( (type_descriptor "Filename **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pFVar3 = f_open(filename,pcVar16,0);" (assignment_expression "pFVar3 = f_open(filename,pcVar16,0)" identifier = (call_expression "f_open(filename,pcVar16,0)" identifier (argument_list "(filename,pcVar16,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (pFVar3 == (FILE *)0x0) {\n    iVar4 = 0;\n  }\n  else {\n    unaff_s2 = buf;\n    pcVar16 = &DAT_00000040;\n    pFVar18 = pFVar3;\n    iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = pFVar3;\n    if (iVar4 != 0) {\n      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;\n      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(pFVar3);\n    iVar4 = 0;\n  }" if (parenthesized_expression "(pFVar3 == (FILE *)0x0)" ( (binary_expression "pFVar3 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar4 = 0;\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    unaff_s2 = buf;\n    pcVar16 = &DAT_00000040;\n    pFVar18 = pFVar3;\n    iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = pFVar3;\n    if (iVar4 != 0) {\n      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;\n      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(pFVar3);\n    iVar4 = 0;\n  }" else (compound_statement "{\n    unaff_s2 = buf;\n    pcVar16 = &DAT_00000040;\n    pFVar18 = pFVar3;\n    iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = pFVar3;\n    if (iVar4 != 0) {\n      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;\n      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(pFVar3);\n    iVar4 = 0;\n  }" { (expression_statement "unaff_s2 = buf;" (assignment_expression "unaff_s2 = buf" identifier = identifier) ;) (expression_statement "pcVar16 = &DAT_00000040;" (assignment_expression "pcVar16 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) (expression_statement "pFVar18 = pFVar3;" (assignment_expression "pFVar18 = pFVar3" identifier = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2);" (assignment_expression "iVar4 = (*(code *)PTR_fgets_0006a588)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_fgets_0006a588)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_fgets_0006a588)" ( (pointer_expression "*(code *)PTR_fgets_0006a588" * (cast_expression "(code *)PTR_fgets_0006a588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "unaff_s0 = pFVar3;" (assignment_expression "unaff_s0 = pFVar3" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;\n      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;\n      iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }\n    }" { (expression_statement "pcVar16 = PTR_D0_238__0006a068 + 0x6cd4;" (assignment_expression "pcVar16 = PTR_D0_238__0006a068 + 0x6cd4" identifier = (binary_expression "PTR_D0_238__0006a068 + 0x6cd4" identifier + number_literal)) ;) (expression_statement "iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_strcmp_0006a5c8)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strcmp_0006a5c8)" ( (pointer_expression "*(code *)PTR_strcmp_0006a5c8" * (cast_expression "(code *)PTR_strcmp_0006a5c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        pFVar18 = (FILE *)0x0;\n        in_stack_ffffff90 = (int *)0x0;\n        pcVar16 = (char *)0x0;\n        in_a3 = comment;\n        iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);\n        goto LAB_00039880;\n      }" { (expression_statement "pFVar18 = (FILE *)0x0;" (assignment_expression "pFVar18 = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_stack_ffffff90 = (int *)0x0;" (assignment_expression "in_stack_ffffff90 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar16 = (char *)0x0;" (assignment_expression "pcVar16 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_a3 = comment;" (assignment_expression "in_a3 = comment" identifier = identifier) ;) (expression_statement "iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy);" (assignment_expression "iVar4 = loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy)" identifier = (call_expression "loadrsakey_main(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy)" identifier (argument_list "(pFVar3,(RSAKey *)0x0,0,comment,(char *)0x0,&dummy)" ( identifier , (cast_expression "(RSAKey *)0x0" ( (type_descriptor "RSAKey *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&dummy" & identifier) )))) ;) (goto_statement "goto LAB_00039880;" goto statement_identifier ;) })) })) (expression_statement "(*(code *)PTR_fclose_0006a4c8)(pFVar3);" (call_expression "(*(code *)PTR_fclose_0006a4c8)(pFVar3)" (parenthesized_expression "(*(code *)PTR_fclose_0006a4c8)" ( (pointer_expression "*(code *)PTR_fclose_0006a4c8" * (cast_expression "(code *)PTR_fclose_0006a4c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar3)" ( identifier ))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00039880:\n  if (pFVar2 == *(Filename **)puVar1) {\n    return iVar4;\n  }" statement_identifier : (if_statement "if (pFVar2 == *(Filename **)puVar1) {\n    return iVar4;\n  }" if (parenthesized_expression "(pFVar2 == *(Filename **)puVar1)" ( (binary_expression "pFVar2 == *(Filename **)puVar1" identifier == (pointer_expression "*(Filename **)puVar1" * (cast_expression "(Filename **)puVar1" ( (type_descriptor "Filename **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) }))) (expression_statement "puVar25 = PTR___stack_chk_fail_0006a574;" (assignment_expression "puVar25 = PTR___stack_chk_fail_0006a574" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0006a574)();" (call_expression "(*(code *)PTR___stack_chk_fail_0006a574)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0006a574)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0006a574" * (cast_expression "(code *)PTR___stack_chk_fail_0006a574" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_a4 = puVar1;" (assignment_expression "puStack_a4 = puVar1" identifier = identifier) ;) (expression_statement "piVar21 = *(int **)(puVar25 + 0x30ca8);" (assignment_expression "piVar21 = *(int **)(puVar25 + 0x30ca8)" identifier = (pointer_expression "*(int **)(puVar25 + 0x30ca8)" * (cast_expression "(int **)(puVar25 + 0x30ca8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30ca8)" ( (binary_expression "puVar25 + 0x30ca8" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = (uchar *)0x0;" (assignment_expression "puVar19 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar3 = (FILE *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);" (assignment_expression "pFVar3 = (FILE *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" identifier = (cast_expression "(FILE *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" ( (binary_expression "*(int *)(puVar25 + 0x3077c) + 0x6cc0" (pointer_expression "*(int *)(puVar25 + 0x3077c)" * (cast_expression "(int *)(puVar25 + 0x3077c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x3077c)" ( (binary_expression "puVar25 + 0x3077c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcStack_114 = (char *)0x0;" (assignment_expression "pcStack_114 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFStack_ac = (Filename *)*piVar21;" (assignment_expression "pFStack_ac = (Filename *)*piVar21" identifier = (cast_expression "(Filename *)*piVar21" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "pcVar16[0] = '\0';" (assignment_expression "pcVar16[0] = '\0'" (subscript_expression "pcVar16[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar16[1] = '\0';" (assignment_expression "pcVar16[1] = '\0'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar16[2] = '\0';" (assignment_expression "pcVar16[2] = '\0'" (subscript_expression "pcVar16[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar16[3] = '\0';" (assignment_expression "pcVar16[3] = '\0'" (subscript_expression "pcVar16[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pFVar18->_flags = 0;" (assignment_expression "pFVar18->_flags = 0" (field_expression "pFVar18->_flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "pFStack_a8 = unaff_s0;" (assignment_expression "pFStack_a8 = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_a0 = unaff_s2;" (assignment_expression "pcStack_a0 = unaff_s2" identifier = identifier) ;) (expression_statement "ppcStack_9c = comment;" (assignment_expression "ppcStack_9c = comment" identifier = identifier) ;) (expression_statement "fp = f_open(pFVar2,(char *)pFVar3,0);" (assignment_expression "fp = f_open(pFVar2,(char *)pFVar3,0)" identifier = (call_expression "f_open(pFVar2,(char *)pFVar3,0)" identifier (argument_list "(pFVar2,(char *)pFVar3,0)" ( identifier , (cast_expression "(char *)pFVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (fp == (FILE *)0x0) {\n    pcStack_114 = (char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4);\nLAB_00039a34:\n    iVar4 = 0;\n    if (in_stack_ffffff90 != (int *)0x0) {\n      *in_stack_ffffff90 = (int)pcStack_114;\n    }\n  }\n  else {\n    iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp);\n    if ((iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)) {\n      iVar24 = *(int *)(puVar25 + 0x3077c);\n      (**(code **)(puVar25 + 0x30c84))(fp);\n      pcVar5 = fgetline(fp);\n      pcVar5 = chomp(pcVar5);\n      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);\n      pcVar6 = pcVar5 + iVar4;\n      if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }\nLAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);\n    }\n    unaff_s4 = (FILE *)&RStack_110;\n    puVar19 = (uchar *)0x1;\n    RStack_110.bits = 0;\n    RStack_110.bytes = 0;\n    RStack_110.modulus = (char *)0x0;\n    RStack_110.exponent = (char *)0x0;\n    RStack_110.private_exponent = (char *)0x0;\n    RStack_110.p = (char *)0x0;\n    RStack_110.q = (char *)0x0;\n    RStack_110.iqmp = (char *)0x0;\n    RStack_110.comment = (char *)0x0;\n    pFVar3 = unaff_s4;\n    iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114);\n    unaff_s0 = fp;\n    if (iVar4 == 0) goto LAB_00039a34;\n    pFVar3 = pFVar18;\n    puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags);\n    *(uchar **)pcVar16 = puVar7;\n    freersakey((RSAKey *)unaff_s4);\n    iVar4 = 1;\n  }" if (parenthesized_expression "(fp == (FILE *)0x0)" ( (binary_expression "fp == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcStack_114 = (char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4);\nLAB_00039a34:\n    iVar4 = 0;\n    if (in_stack_ffffff90 != (int *)0x0) {\n      *in_stack_ffffff90 = (int)pcStack_114;\n    }\n  }" { (expression_statement "pcStack_114 = (char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4);" (assignment_expression "pcStack_114 = (char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4)" identifier = (cast_expression "(char *)(*(int *)(puVar25 + 0x3077c) + 0x6cc4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x3077c) + 0x6cc4)" ( (binary_expression "*(int *)(puVar25 + 0x3077c) + 0x6cc4" (pointer_expression "*(int *)(puVar25 + 0x3077c)" * (cast_expression "(int *)(puVar25 + 0x3077c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x3077c)" ( (binary_expression "puVar25 + 0x3077c" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00039a34:\n    iVar4 = 0;" statement_identifier : (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;)) (if_statement "if (in_stack_ffffff90 != (int *)0x0) {\n      *in_stack_ffffff90 = (int)pcStack_114;\n    }" if (parenthesized_expression "(in_stack_ffffff90 != (int *)0x0)" ( (binary_expression "in_stack_ffffff90 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *in_stack_ffffff90 = (int)pcStack_114;\n    }" { (expression_statement "*in_stack_ffffff90 = (int)pcStack_114;" (assignment_expression "*in_stack_ffffff90 = (int)pcStack_114" (pointer_expression "*in_stack_ffffff90" * identifier) = (cast_expression "(int)pcStack_114" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }) (else_clause "else {\n    iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp);\n    if ((iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)) {\n      iVar24 = *(int *)(puVar25 + 0x3077c);\n      (**(code **)(puVar25 + 0x30c84))(fp);\n      pcVar5 = fgetline(fp);\n      pcVar5 = chomp(pcVar5);\n      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);\n      pcVar6 = pcVar5 + iVar4;\n      if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }\nLAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);\n    }\n    unaff_s4 = (FILE *)&RStack_110;\n    puVar19 = (uchar *)0x1;\n    RStack_110.bits = 0;\n    RStack_110.bytes = 0;\n    RStack_110.modulus = (char *)0x0;\n    RStack_110.exponent = (char *)0x0;\n    RStack_110.private_exponent = (char *)0x0;\n    RStack_110.p = (char *)0x0;\n    RStack_110.q = (char *)0x0;\n    RStack_110.iqmp = (char *)0x0;\n    RStack_110.comment = (char *)0x0;\n    pFVar3 = unaff_s4;\n    iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114);\n    unaff_s0 = fp;\n    if (iVar4 == 0) goto LAB_00039a34;\n    pFVar3 = pFVar18;\n    puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags);\n    *(uchar **)pcVar16 = puVar7;\n    freersakey((RSAKey *)unaff_s4);\n    iVar4 = 1;\n  }" else (compound_statement "{\n    iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp);\n    if ((iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)) {\n      iVar24 = *(int *)(puVar25 + 0x3077c);\n      (**(code **)(puVar25 + 0x30c84))(fp);\n      pcVar5 = fgetline(fp);\n      pcVar5 = chomp(pcVar5);\n      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);\n      pcVar6 = pcVar5 + iVar4;\n      if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }\nLAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);\n    }\n    unaff_s4 = (FILE *)&RStack_110;\n    puVar19 = (uchar *)0x1;\n    RStack_110.bits = 0;\n    RStack_110.bytes = 0;\n    RStack_110.modulus = (char *)0x0;\n    RStack_110.exponent = (char *)0x0;\n    RStack_110.private_exponent = (char *)0x0;\n    RStack_110.p = (char *)0x0;\n    RStack_110.q = (char *)0x0;\n    RStack_110.iqmp = (char *)0x0;\n    RStack_110.comment = (char *)0x0;\n    pFVar3 = unaff_s4;\n    iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114);\n    unaff_s0 = fp;\n    if (iVar4 == 0) goto LAB_00039a34;\n    pFVar3 = pFVar18;\n    puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags);\n    *(uchar **)pcVar16 = puVar7;\n    freersakey((RSAKey *)unaff_s4);\n    iVar4 = 1;\n  }" { (expression_statement "iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp);" (assignment_expression "iVar4 = (**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp)" identifier = (call_expression "(**(code **)(puVar25 + 0x30c9c))(auStack_ec,0x40,fp)" (parenthesized_expression "(**(code **)(puVar25 + 0x30c9c))" ( (pointer_expression "**(code **)(puVar25 + 0x30c9c)" * (pointer_expression "*(code **)(puVar25 + 0x30c9c)" * (cast_expression "(code **)(puVar25 + 0x30c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30c9c)" ( (binary_expression "puVar25 + 0x30c9c" identifier + number_literal) ))))) )) (argument_list "(auStack_ec,0x40,fp)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)) {\n      iVar24 = *(int *)(puVar25 + 0x3077c);\n      (**(code **)(puVar25 + 0x30c84))(fp);\n      pcVar5 = fgetline(fp);\n      pcVar5 = chomp(pcVar5);\n      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);\n      pcVar6 = pcVar5 + iVar4;\n      if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }\nLAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);\n    }" if (parenthesized_expression "((iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0))" ( (binary_expression "(iVar4 == 0) ||\n       (iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0)" ( (comma_expression "iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4),\n       iVar4 != 0" (assignment_expression "iVar4 = (**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4)" identifier = (call_expression "(**(code **)(puVar25 + 0x30cdc))(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4)" (parenthesized_expression "(**(code **)(puVar25 + 0x30cdc))" ( (pointer_expression "**(code **)(puVar25 + 0x30cdc)" * (pointer_expression "*(code **)(puVar25 + 0x30cdc)" * (cast_expression "(code **)(puVar25 + 0x30cdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30cdc)" ( (binary_expression "puVar25 + 0x30cdc" identifier + number_literal) ))))) )) (argument_list "(auStack_ec,*(int *)(puVar25 + 0x3077c) + 0x6cd4)" ( identifier , (binary_expression "*(int *)(puVar25 + 0x3077c) + 0x6cd4" (pointer_expression "*(int *)(puVar25 + 0x3077c)" * (cast_expression "(int *)(puVar25 + 0x3077c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x3077c)" ( (binary_expression "puVar25 + 0x3077c" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar24 = *(int *)(puVar25 + 0x3077c);\n      (**(code **)(puVar25 + 0x30c84))(fp);\n      pcVar5 = fgetline(fp);\n      pcVar5 = chomp(pcVar5);\n      iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);\n      pcVar6 = pcVar5 + iVar4;\n      if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }\nLAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);\n    }" { (expression_statement "iVar24 = *(int *)(puVar25 + 0x3077c);" (assignment_expression "iVar24 = *(int *)(puVar25 + 0x3077c)" identifier = (pointer_expression "*(int *)(puVar25 + 0x3077c)" * (cast_expression "(int *)(puVar25 + 0x3077c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x3077c)" ( (binary_expression "puVar25 + 0x3077c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar25 + 0x30c84))(fp);" (call_expression "(**(code **)(puVar25 + 0x30c84))(fp)" (parenthesized_expression "(**(code **)(puVar25 + 0x30c84))" ( (pointer_expression "**(code **)(puVar25 + 0x30c84)" * (pointer_expression "*(code **)(puVar25 + 0x30c84)" * (cast_expression "(code **)(puVar25 + 0x30c84)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30c84)" ( (binary_expression "puVar25 + 0x30c84" identifier + number_literal) ))))) )) (argument_list "(fp)" ( identifier ))) ;) (expression_statement "pcVar5 = fgetline(fp);" (assignment_expression "pcVar5 = fgetline(fp)" identifier = (call_expression "fgetline(fp)" identifier (argument_list "(fp)" ( identifier )))) ;) (expression_statement "pcVar5 = chomp(pcVar5);" (assignment_expression "pcVar5 = chomp(pcVar5)" identifier = (call_expression "chomp(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10);" (assignment_expression "iVar4 = (**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10)" identifier = (call_expression "(**(code **)(puVar25 + 0x30b98))(pcVar5,iVar24 + 0x6d10)" (parenthesized_expression "(**(code **)(puVar25 + 0x30b98))" ( (pointer_expression "**(code **)(puVar25 + 0x30b98)" * (pointer_expression "*(code **)(puVar25 + 0x30b98)" * (cast_expression "(code **)(puVar25 + 0x30b98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30b98)" ( (binary_expression "puVar25 + 0x30b98" identifier + number_literal) ))))) )) (argument_list "(pcVar5,iVar24 + 0x6d10)" ( identifier , (binary_expression "iVar24 + 0x6d10" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = pcVar5 + iVar4;" (assignment_expression "pcVar6 = pcVar5 + iVar4" identifier = (binary_expression "pcVar5 + iVar4" identifier + identifier)) ;) (if_statement "if (*pcVar6 == ' ') {\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }" if (parenthesized_expression "(*pcVar6 == ' ')" ( (binary_expression "*pcVar6 == ' '" (pointer_expression "*pcVar6" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n        decimal = pcVar6 + 1;\n        pcVar26 = *(code **)(puVar25 + 0x30b98);\n        *pcVar6 = '\0';\n        iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);\n        pcVar6 = decimal + iVar4;\n        if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }\n      }" { (expression_statement "decimal = pcVar6 + 1;" (assignment_expression "decimal = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x30b98);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x30b98)" identifier = (pointer_expression "*(code **)(puVar25 + 0x30b98)" * (cast_expression "(code **)(puVar25 + 0x30b98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30b98)" ( (binary_expression "puVar25 + 0x30b98" identifier + number_literal) ))))) ;) (expression_statement "*pcVar6 = '\0';" (assignment_expression "*pcVar6 = '\0'" (pointer_expression "*pcVar6" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10);" (assignment_expression "iVar4 = (*pcVar26)(decimal,iVar24 + 0x6d10)" identifier = (call_expression "(*pcVar26)(decimal,iVar24 + 0x6d10)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(decimal,iVar24 + 0x6d10)" ( identifier , (binary_expression "iVar24 + 0x6d10" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = decimal + iVar4;" (assignment_expression "pcVar6 = decimal + iVar4" identifier = (binary_expression "decimal + iVar4" identifier + identifier)) ;) (if_statement "if (*pcVar6 == ' ') {\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }" if (parenthesized_expression "(*pcVar6 == ' ')" ( (binary_expression "*pcVar6 == ' '" (pointer_expression "*pcVar6" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n          decimal_00 = pcVar6 + 1;\n          pcVar26 = *(code **)(puVar25 + 0x30b98);\n          *pcVar6 = '\0';\n          iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);\n          pcVar6 = decimal_00 + iVar4;\n          if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }\n          RStack_110.bits = 0;\n          RStack_110.bytes = 0;\n          RStack_110.modulus = (char *)0x0;\n          RStack_110.exponent = (char *)0x0;\n          RStack_110.private_exponent = (char *)0x0;\n          RStack_110.p = (char *)0x0;\n          RStack_110.q = (char *)0x0;\n          RStack_110.iqmp = (char *)0x0;\n          RStack_110.comment = (char *)0x0;\n          RStack_110.exponent = bignum_from_decimal(decimal);\n          RStack_110.modulus = bignum_from_decimal(decimal_00);\n          iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);\n          iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);\n          if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }\n          if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }\n          puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);\n          *(uchar **)pcVar16 = puVar19;\n          freersakey(&RStack_110);\n                    /* WARNING: Subroutine does not return */\n          safefree(pcVar5);\n        }" { (expression_statement "decimal_00 = pcVar6 + 1;" (assignment_expression "decimal_00 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x30b98);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x30b98)" identifier = (pointer_expression "*(code **)(puVar25 + 0x30b98)" * (cast_expression "(code **)(puVar25 + 0x30b98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30b98)" ( (binary_expression "puVar25 + 0x30b98" identifier + number_literal) ))))) ;) (expression_statement "*pcVar6 = '\0';" (assignment_expression "*pcVar6 = '\0'" (pointer_expression "*pcVar6" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10);" (assignment_expression "iVar4 = (*pcVar26)(decimal_00,iVar24 + 0x6d10)" identifier = (call_expression "(*pcVar26)(decimal_00,iVar24 + 0x6d10)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(decimal_00,iVar24 + 0x6d10)" ( identifier , (binary_expression "iVar24 + 0x6d10" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = decimal_00 + iVar4;" (assignment_expression "pcVar6 = decimal_00 + iVar4" identifier = (binary_expression "decimal_00 + iVar4" identifier + identifier)) ;) (if_statement "if (*pcVar6 == '\0') {\n            s = (char *)0x0;\n          }\n          else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }" if (parenthesized_expression "(*pcVar6 == '\0')" ( (binary_expression "*pcVar6 == '\0'" (pointer_expression "*pcVar6" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            s = (char *)0x0;\n          }" { (expression_statement "s = (char *)0x0;" (assignment_expression "s = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }" else (compound_statement "{\n            if (*pcVar6 != ' ') goto LAB_00039a0c;\n            s = pcVar6 + 1;\n            *pcVar6 = '\0';\n          }" { (if_statement "if (*pcVar6 != ' ') goto LAB_00039a0c;" if (parenthesized_expression "(*pcVar6 != ' ')" ( (binary_expression "*pcVar6 != ' '" (pointer_expression "*pcVar6" * identifier) != (char_literal "' '" ' character ')) )) (goto_statement "goto LAB_00039a0c;" goto statement_identifier ;)) (expression_statement "s = pcVar6 + 1;" (assignment_expression "s = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar6 = '\0';" (assignment_expression "*pcVar6 = '\0'" (pointer_expression "*pcVar6" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "RStack_110.bits = 0;" (assignment_expression "RStack_110.bits = 0" (field_expression "RStack_110.bits" identifier . field_identifier) = number_literal) ;) (expression_statement "RStack_110.bytes = 0;" (assignment_expression "RStack_110.bytes = 0" (field_expression "RStack_110.bytes" identifier . field_identifier) = number_literal) ;) (expression_statement "RStack_110.modulus = (char *)0x0;" (assignment_expression "RStack_110.modulus = (char *)0x0" (field_expression "RStack_110.modulus" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.exponent = (char *)0x0;" (assignment_expression "RStack_110.exponent = (char *)0x0" (field_expression "RStack_110.exponent" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.private_exponent = (char *)0x0;" (assignment_expression "RStack_110.private_exponent = (char *)0x0" (field_expression "RStack_110.private_exponent" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.p = (char *)0x0;" (assignment_expression "RStack_110.p = (char *)0x0" (field_expression "RStack_110.p" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.q = (char *)0x0;" (assignment_expression "RStack_110.q = (char *)0x0" (field_expression "RStack_110.q" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.iqmp = (char *)0x0;" (assignment_expression "RStack_110.iqmp = (char *)0x0" (field_expression "RStack_110.iqmp" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.comment = (char *)0x0;" (assignment_expression "RStack_110.comment = (char *)0x0" (field_expression "RStack_110.comment" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.exponent = bignum_from_decimal(decimal);" (assignment_expression "RStack_110.exponent = bignum_from_decimal(decimal)" (field_expression "RStack_110.exponent" identifier . field_identifier) = (call_expression "bignum_from_decimal(decimal)" identifier (argument_list "(decimal)" ( identifier )))) ;) (expression_statement "RStack_110.modulus = bignum_from_decimal(decimal_00);" (assignment_expression "RStack_110.modulus = bignum_from_decimal(decimal_00)" (field_expression "RStack_110.modulus" identifier . field_identifier) = (call_expression "bignum_from_decimal(decimal_00)" identifier (argument_list "(decimal_00)" ( identifier )))) ;) (expression_statement "iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10);" (assignment_expression "iVar4 = (**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10)" identifier = (call_expression "(**(code **)(puVar25 + 0x30ba8))(pcVar5,0,10)" (parenthesized_expression "(**(code **)(puVar25 + 0x30ba8))" ( (pointer_expression "**(code **)(puVar25 + 0x30ba8)" * (pointer_expression "*(code **)(puVar25 + 0x30ba8)" * (cast_expression "(code **)(puVar25 + 0x30ba8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30ba8)" ( (binary_expression "puVar25 + 0x30ba8" identifier + number_literal) ))))) )) (argument_list "(pcVar5,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus);" (assignment_expression "iVar24 = bignum_bitcount((Bignum_conflict)RStack_110.modulus)" identifier = (call_expression "bignum_bitcount((Bignum_conflict)RStack_110.modulus)" identifier (argument_list "((Bignum_conflict)RStack_110.modulus)" ( (cast_expression "(Bignum_conflict)RStack_110.modulus" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "RStack_110.modulus" identifier . field_identifier)) )))) ;) (if_statement "if (iVar24 != iVar4) {\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }" if (parenthesized_expression "(iVar24 != iVar4)" ( (binary_expression "iVar24 != iVar4" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            freebn((Bignum_conflict)RStack_110.exponent);\n          }" { comment (expression_statement "freebn((Bignum_conflict)RStack_110.exponent);" (call_expression "freebn((Bignum_conflict)RStack_110.exponent)" identifier (argument_list "((Bignum_conflict)RStack_110.exponent)" ( (cast_expression "(Bignum_conflict)RStack_110.exponent" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "RStack_110.exponent" identifier . field_identifier)) ))) ;) })) (if_statement "if (in_a3 != (char **)0x0) {\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }" if (parenthesized_expression "(in_a3 != (char **)0x0)" ( (binary_expression "in_a3 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            if (s != (char *)0x0) {\n              s = dupstr(s);\n            }\n            *in_a3 = s;\n          }" { (if_statement "if (s != (char *)0x0) {\n              s = dupstr(s);\n            }" if (parenthesized_expression "(s != (char *)0x0)" ( (binary_expression "s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              s = dupstr(s);\n            }" { (expression_statement "s = dupstr(s);" (assignment_expression "s = dupstr(s)" identifier = (call_expression "dupstr(s)" identifier (argument_list "(s)" ( identifier )))) ;) })) (expression_statement "*in_a3 = s;" (assignment_expression "*in_a3 = s" (pointer_expression "*in_a3" * identifier) = identifier) ;) })) (expression_statement "puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags);" (assignment_expression "puVar19 = rsa_public_blob(&RStack_110,&pFVar18->_flags)" identifier = (call_expression "rsa_public_blob(&RStack_110,&pFVar18->_flags)" identifier (argument_list "(&RStack_110,&pFVar18->_flags)" ( (pointer_expression "&RStack_110" & identifier) , (pointer_expression "&pFVar18->_flags" & (field_expression "pFVar18->_flags" identifier -> field_identifier)) )))) ;) (expression_statement "*(uchar **)pcVar16 = puVar19;" (assignment_expression "*(uchar **)pcVar16 = puVar19" (pointer_expression "*(uchar **)pcVar16" * (cast_expression "(uchar **)pcVar16" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "freersakey(&RStack_110);" (call_expression "freersakey(&RStack_110)" identifier (argument_list "(&RStack_110)" ( (pointer_expression "&RStack_110" & identifier) ))) ;) comment (expression_statement "safefree(pcVar5);" (call_expression "safefree(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) })) })) (labeled_statement "LAB_00039a0c:\n                    /* WARNING: Subroutine does not return */\n      safefree(pcVar5);" statement_identifier : comment (expression_statement "safefree(pcVar5);" (call_expression "safefree(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;)) })) (expression_statement "unaff_s4 = (FILE *)&RStack_110;" (assignment_expression "unaff_s4 = (FILE *)&RStack_110" identifier = (cast_expression "(FILE *)&RStack_110" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&RStack_110" & identifier))) ;) (expression_statement "puVar19 = (uchar *)0x1;" (assignment_expression "puVar19 = (uchar *)0x1" identifier = (cast_expression "(uchar *)0x1" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.bits = 0;" (assignment_expression "RStack_110.bits = 0" (field_expression "RStack_110.bits" identifier . field_identifier) = number_literal) ;) (expression_statement "RStack_110.bytes = 0;" (assignment_expression "RStack_110.bytes = 0" (field_expression "RStack_110.bytes" identifier . field_identifier) = number_literal) ;) (expression_statement "RStack_110.modulus = (char *)0x0;" (assignment_expression "RStack_110.modulus = (char *)0x0" (field_expression "RStack_110.modulus" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.exponent = (char *)0x0;" (assignment_expression "RStack_110.exponent = (char *)0x0" (field_expression "RStack_110.exponent" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.private_exponent = (char *)0x0;" (assignment_expression "RStack_110.private_exponent = (char *)0x0" (field_expression "RStack_110.private_exponent" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.p = (char *)0x0;" (assignment_expression "RStack_110.p = (char *)0x0" (field_expression "RStack_110.p" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.q = (char *)0x0;" (assignment_expression "RStack_110.q = (char *)0x0" (field_expression "RStack_110.q" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.iqmp = (char *)0x0;" (assignment_expression "RStack_110.iqmp = (char *)0x0" (field_expression "RStack_110.iqmp" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "RStack_110.comment = (char *)0x0;" (assignment_expression "RStack_110.comment = (char *)0x0" (field_expression "RStack_110.comment" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar3 = unaff_s4;" (assignment_expression "pFVar3 = unaff_s4" identifier = identifier) ;) (expression_statement "iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114);" (assignment_expression "iVar4 = loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114)" identifier = (call_expression "loadrsakey_main(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114)" identifier (argument_list "(fp,(RSAKey *)unaff_s4,1,in_a3,(char *)0x0,&pcStack_114)" ( identifier , (cast_expression "(RSAKey *)unaff_s4" ( (type_descriptor "RSAKey *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&pcStack_114" & identifier) )))) ;) (expression_statement "unaff_s0 = fp;" (assignment_expression "unaff_s0 = fp" identifier = identifier) ;) (if_statement "if (iVar4 == 0) goto LAB_00039a34;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039a34;" goto statement_identifier ;)) (expression_statement "pFVar3 = pFVar18;" (assignment_expression "pFVar3 = pFVar18" identifier = identifier) ;) (expression_statement "puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags);" (assignment_expression "puVar7 = rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags)" identifier = (call_expression "rsa_public_blob((RSAKey *)unaff_s4,&pFVar18->_flags)" identifier (argument_list "((RSAKey *)unaff_s4,&pFVar18->_flags)" ( (cast_expression "(RSAKey *)unaff_s4" ( (type_descriptor "RSAKey *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&pFVar18->_flags" & (field_expression "pFVar18->_flags" identifier -> field_identifier)) )))) ;) (expression_statement "*(uchar **)pcVar16 = puVar7;" (assignment_expression "*(uchar **)pcVar16 = puVar7" (pointer_expression "*(uchar **)pcVar16" * (cast_expression "(uchar **)pcVar16" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "freersakey((RSAKey *)unaff_s4);" (call_expression "freersakey((RSAKey *)unaff_s4)" identifier (argument_list "((RSAKey *)unaff_s4)" ( (cast_expression "(RSAKey *)unaff_s4" ( (type_descriptor "RSAKey *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) (if_statement "if (pFStack_ac == (Filename *)*piVar21) {\n    return iVar4;\n  }" if (parenthesized_expression "(pFStack_ac == (Filename *)*piVar21)" ( (binary_expression "pFStack_ac == (Filename *)*piVar21" identifier == (cast_expression "(Filename *)*piVar21" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x30c88);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x30c88)" identifier = (pointer_expression "*(code **)(puVar25 + 0x30c88)" * (cast_expression "(code **)(puVar25 + 0x30c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30c88)" ( (binary_expression "puVar25 + 0x30c88" identifier + number_literal) ))))) ;) (expression_statement "pFVar2 = pFStack_ac;" (assignment_expression "pFVar2 = pFStack_ac" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = *(int *)(pcVar26 + 0x3038c);" (assignment_expression "iVar4 = *(int *)(pcVar26 + 0x3038c)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x3038c)" * (cast_expression "(int *)(pcVar26 + 0x3038c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3038c)" ( (binary_expression "pcVar26 + 0x3038c" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = *(int **)(pcVar26 + 0x308b8);" (assignment_expression "piVar23 = *(int **)(pcVar26 + 0x308b8)" identifier = (pointer_expression "*(int **)(pcVar26 + 0x308b8)" * (cast_expression "(int **)(pcVar26 + 0x308b8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x308b8)" ( (binary_expression "pcVar26 + 0x308b8" identifier + number_literal) ))))) ;) (expression_statement "iStackY_16c = *piVar23;" (assignment_expression "iStackY_16c = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "puVar8 = (undefined4 *)(iVar4 + 0x6cd4);" (assignment_expression "puVar8 = (undefined4 *)(iVar4 + 0x6cd4)" identifier = (cast_expression "(undefined4 *)(iVar4 + 0x6cd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x6cd4)" ( (binary_expression "iVar4 + 0x6cd4" identifier + number_literal) )))) ;) (expression_statement "puVar12 = auStackY_416c;" (assignment_expression "puVar12 = auStackY_416c" identifier = identifier) ;) (do_statement "do {\n    puVar9 = puVar8 + 4;\n    puVar13 = puVar12 + 4;\n    *puVar12 = *puVar8;\n    uVar17 = puVar8[2];\n    uVar14 = puVar8[3];\n    puVar12[1] = puVar8[1];\n    puVar12[2] = uVar17;\n    puVar12[3] = uVar14;\n    puVar8 = puVar9;\n    puVar12 = puVar13;\n  } while (puVar9 != (undefined4 *)(iVar4 + 0x6cf4));" do (compound_statement "{\n    puVar9 = puVar8 + 4;\n    puVar13 = puVar12 + 4;\n    *puVar12 = *puVar8;\n    uVar17 = puVar8[2];\n    uVar14 = puVar8[3];\n    puVar12[1] = puVar8[1];\n    puVar12[2] = uVar17;\n    puVar12[3] = uVar14;\n    puVar8 = puVar9;\n    puVar12 = puVar13;\n  }" { (expression_statement "puVar9 = puVar8 + 4;" (assignment_expression "puVar9 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar12 + 4;" (assignment_expression "puVar13 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) (expression_statement "*puVar12 = *puVar8;" (assignment_expression "*puVar12 = *puVar8" (pointer_expression "*puVar12" * identifier) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "uVar17 = puVar8[2];" (assignment_expression "uVar17 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar8[3];" (assignment_expression "uVar14 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "puVar12[1] = puVar8[1];" (assignment_expression "puVar12[1] = puVar8[1]" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[2] = uVar17;" (assignment_expression "puVar12[2] = uVar17" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar14;" (assignment_expression "puVar12[3] = uVar14" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8 = puVar9;" (assignment_expression "puVar8 = puVar9" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(puVar9 != (undefined4 *)(iVar4 + 0x6cf4))" ( (binary_expression "puVar9 != (undefined4 *)(iVar4 + 0x6cf4)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x6cf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x6cf4)" ( (binary_expression "iVar4 + 0x6cf4" identifier + number_literal) )))) )) ;) (expression_statement "uVar10 = 3;" (assignment_expression "uVar10 = 3" identifier = number_literal) ;) (if_statement "if (puVar19 == (uchar *)0x0) {\n    uVar10 = 0;\n  }" if (parenthesized_expression "(puVar19 == (uchar *)0x0)" ( (binary_expression "puVar19 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar10 = 0;\n  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "pBVar15 = (Bignum_conflict)pFVar3->_IO_read_end;" (assignment_expression "pBVar15 = (Bignum_conflict)pFVar3->_IO_read_end" identifier = (cast_expression "(Bignum_conflict)pFVar3->_IO_read_end" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_read_end" identifier -> field_identifier))) ;) (expression_statement "*(undefined1 *)puVar13 = *(undefined1 *)puVar9;" (assignment_expression "*(undefined1 *)puVar13 = *(undefined1 *)puVar9" (pointer_expression "*(undefined1 *)puVar13" * (cast_expression "(undefined1 *)puVar13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar9" * (cast_expression "(undefined1 *)puVar9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uStackY_414a = 0;" (assignment_expression "uStackY_414a = 0" identifier = number_literal) ;) (expression_statement "uStackY_4148 = 0;" (assignment_expression "uStackY_4148 = 0" identifier = number_literal) ;) (expression_statement "uStackY_414b = uVar10;" (assignment_expression "uStackY_414b = uVar10" identifier = identifier) ;) (expression_statement "pFStackY_164 = unaff_s0;" (assignment_expression "pFStackY_164 = unaff_s0" identifier = identifier) ;) (expression_statement "piStackY_160 = piVar21;" (assignment_expression "piStackY_160 = piVar21" identifier = identifier) ;) (expression_statement "pcStackY_15c = pcVar16;" (assignment_expression "pcStackY_15c = pcVar16" identifier = identifier) ;) (expression_statement "pFStackY_158 = pFVar18;" (assignment_expression "pFStackY_158 = pFVar18" identifier = identifier) ;) (expression_statement "pFStackY_154 = unaff_s4;" (assignment_expression "pFStackY_154 = unaff_s4" identifier = identifier) ;) (expression_statement "piStackY_150 = in_stack_ffffff90;" (assignment_expression "piStackY_150 = in_stack_ffffff90" identifier = identifier) ;) (expression_statement "ppcStackY_14c = in_a3;" (assignment_expression "ppcStackY_14c = in_a3" identifier = identifier) ;) (expression_statement "iVar4 = bignum_bitcount(pBVar15);" (assignment_expression "iVar4 = bignum_bitcount(pBVar15)" identifier = (call_expression "bignum_bitcount(pBVar15)" identifier (argument_list "(pBVar15)" ( identifier )))) ;) (expression_statement "uStackY_4146 = (undefined1)((uint)iVar4 >> 0x18);" (assignment_expression "uStackY_4146 = (undefined1)((uint)iVar4 >> 0x18)" identifier = (call_expression "(undefined1)((uint)iVar4 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)iVar4 >> 0x18)" ( (binary_expression "(uint)iVar4 >> 0x18" (cast_expression "(uint)iVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);" (assignment_expression "iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end)" identifier = (call_expression "bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end)" identifier (argument_list "((Bignum_conflict)pFVar3->_IO_read_end)" ( (cast_expression "(Bignum_conflict)pFVar3->_IO_read_end" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_read_end" identifier -> field_identifier)) )))) ;) (expression_statement "uStackY_4145 = (undefined1)((uint)iVar4 >> 0x10);" (assignment_expression "uStackY_4145 = (undefined1)((uint)iVar4 >> 0x10)" identifier = (call_expression "(undefined1)((uint)iVar4 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)iVar4 >> 0x10)" ( (binary_expression "(uint)iVar4 >> 0x10" (cast_expression "(uint)iVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);" (assignment_expression "iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end)" identifier = (call_expression "bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end)" identifier (argument_list "((Bignum_conflict)pFVar3->_IO_read_end)" ( (cast_expression "(Bignum_conflict)pFVar3->_IO_read_end" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_read_end" identifier -> field_identifier)) )))) ;) (expression_statement "uStackY_4144 = (undefined1)((uint)iVar4 >> 8);" (assignment_expression "uStackY_4144 = (undefined1)((uint)iVar4 >> 8)" identifier = (call_expression "(undefined1)((uint)iVar4 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)iVar4 >> 8)" ( (binary_expression "(uint)iVar4 >> 8" (cast_expression "(uint)iVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end);" (assignment_expression "iVar4 = bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end)" identifier = (call_expression "bignum_bitcount((Bignum_conflict)pFVar3->_IO_read_end)" identifier (argument_list "((Bignum_conflict)pFVar3->_IO_read_end)" ( (cast_expression "(Bignum_conflict)pFVar3->_IO_read_end" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_read_end" identifier -> field_identifier)) )))) ;) (expression_statement "uStackY_4143 = (undefined1)iVar4;" (assignment_expression "uStackY_4143 = (undefined1)iVar4" identifier = (cast_expression "(undefined1)iVar4" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "iVar4 = ssh1_write_bignum(auStackY_4142,(Bignum_conflict)pFVar3->_IO_read_end);" (assignment_expression "iVar4 = ssh1_write_bignum(auStackY_4142,(Bignum_conflict)pFVar3->_IO_read_end)" identifier = (call_expression "ssh1_write_bignum(auStackY_4142,(Bignum_conflict)pFVar3->_IO_read_end)" identifier (argument_list "(auStackY_4142,(Bignum_conflict)pFVar3->_IO_read_end)" ( identifier , (cast_expression "(Bignum_conflict)pFVar3->_IO_read_end" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_read_end" identifier -> field_identifier)) )))) ;) (expression_statement "puVar7 = auStackY_4142 + iVar4;" (assignment_expression "puVar7 = auStackY_4142 + iVar4" identifier = (binary_expression "auStackY_4142 + iVar4" identifier + identifier)) ;) (expression_statement "iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_read_base);" (assignment_expression "iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_read_base)" identifier = (call_expression "ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_read_base)" identifier (argument_list "(puVar7,(Bignum_conflict)pFVar3->_IO_read_base)" ( identifier , (cast_expression "(Bignum_conflict)pFVar3->_IO_read_base" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_read_base" identifier -> field_identifier)) )))) ;) (expression_statement "pcVar16 = pFVar3->_IO_buf_end;" (assignment_expression "pcVar16 = pFVar3->_IO_buf_end" identifier = (field_expression "pFVar3->_IO_buf_end" identifier -> field_identifier)) ;) (expression_statement "puVar7 = puVar7 + iVar4;" (assignment_expression "puVar7 = puVar7 + iVar4" identifier = (binary_expression "puVar7 + iVar4" identifier + identifier)) ;) (if_statement "if (pcVar16 == (char *)0x0) {\n    blk = puVar7 + 4;\n    *puVar7 = '\0';\n    puVar7[1] = '\0';\n    puVar7[2] = '\0';\n    puVar7[3] = '\0';\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    *puVar7 = extraout_var;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[1] = extraout_var_00;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[2] = extraout_var_01;\n    uVar11 = (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[3] = uVar11;\n    uVar14 = (*pcVar27)(pcVar16);\n    (**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14);\n    iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    blk = puVar7 + 4 + iVar4;\n  }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    blk = puVar7 + 4;\n    *puVar7 = '\0';\n    puVar7[1] = '\0';\n    puVar7[2] = '\0';\n    puVar7[3] = '\0';\n  }" { (expression_statement "blk = puVar7 + 4;" (assignment_expression "blk = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "*puVar7 = '\0';" (assignment_expression "*puVar7 = '\0'" (pointer_expression "*puVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar7[1] = '\0';" (assignment_expression "puVar7[1] = '\0'" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar7[2] = '\0';" (assignment_expression "puVar7[2] = '\0'" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar7[3] = '\0';" (assignment_expression "puVar7[3] = '\0'" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n    (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    *puVar7 = extraout_var;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[1] = extraout_var_00;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[2] = extraout_var_01;\n    uVar11 = (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[3] = uVar11;\n    uVar14 = (*pcVar27)(pcVar16);\n    (**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14);\n    iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    blk = puVar7 + 4 + iVar4;\n  }" else (compound_statement "{\n    (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    *puVar7 = extraout_var;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[1] = extraout_var_00;\n    (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[2] = extraout_var_01;\n    uVar11 = (*pcVar27)(pcVar16);\n    pcVar27 = *(code **)(pcVar26 + 0x30840);\n    puVar7[3] = uVar11;\n    uVar14 = (*pcVar27)(pcVar16);\n    (**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14);\n    iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16);\n    blk = puVar7 + 4 + iVar4;\n  }" { (expression_statement "(**(code **)(pcVar26 + 0x30840))(pcVar16);" (call_expression "(**(code **)(pcVar26 + 0x30840))(pcVar16)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "pcVar27 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar27 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = extraout_var;" (assignment_expression "*puVar7 = extraout_var" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "(*pcVar27)(pcVar16);" (call_expression "(*pcVar27)(pcVar16)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "pcVar27 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar27 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = extraout_var_00;" (assignment_expression "puVar7[1] = extraout_var_00" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar27)(pcVar16);" (call_expression "(*pcVar27)(pcVar16)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "pcVar27 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar27 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = extraout_var_01;" (assignment_expression "puVar7[2] = extraout_var_01" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = (*pcVar27)(pcVar16);" (assignment_expression "uVar11 = (*pcVar27)(pcVar16)" identifier = (call_expression "(*pcVar27)(pcVar16)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "pcVar27 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar27 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar7[3] = uVar11;" (assignment_expression "puVar7[3] = uVar11" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar14 = (*pcVar27)(pcVar16);" (assignment_expression "uVar14 = (*pcVar27)(pcVar16)" identifier = (call_expression "(*pcVar27)(pcVar16)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14);" (call_expression "(**(code **)(pcVar26 + 0x308bc))(puVar7 + 4,pcVar16,uVar14)" (parenthesized_expression "(**(code **)(pcVar26 + 0x308bc))" ( (pointer_expression "**(code **)(pcVar26 + 0x308bc)" * (pointer_expression "*(code **)(pcVar26 + 0x308bc)" * (cast_expression "(code **)(pcVar26 + 0x308bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x308bc)" ( (binary_expression "pcVar26 + 0x308bc" identifier + number_literal) ))))) )) (argument_list "(puVar7 + 4,pcVar16,uVar14)" ( (binary_expression "puVar7 + 4" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16);" (assignment_expression "iVar4 = (**(code **)(pcVar26 + 0x30840))(pcVar16)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30840))(pcVar16)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "blk = puVar7 + 4 + iVar4;" (assignment_expression "blk = puVar7 + 4 + iVar4" identifier = (binary_expression "puVar7 + 4 + iVar4" (binary_expression "puVar7 + 4" identifier + number_literal) + identifier)) ;) }))) (expression_statement "puVar7 = blk + 4;" (assignment_expression "puVar7 = blk + 4" identifier = (binary_expression "blk + 4" identifier + number_literal)) ;) (expression_statement "iVar4 = random_byte();" (assignment_expression "iVar4 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "*blk = (uchar)iVar4;" (assignment_expression "*blk = (uchar)iVar4" (pointer_expression "*blk" * identifier) = (cast_expression "(uchar)iVar4" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "iVar4 = random_byte();" (assignment_expression "iVar4 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar15 = (Bignum_conflict)pFVar3->_IO_write_base;" (assignment_expression "pBVar15 = (Bignum_conflict)pFVar3->_IO_write_base" identifier = (cast_expression "(Bignum_conflict)pFVar3->_IO_write_base" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_write_base" identifier -> field_identifier))) ;) (expression_statement "blk[1] = (uchar)iVar4;" (assignment_expression "blk[1] = (uchar)iVar4" (subscript_expression "blk[1]" identifier [ number_literal ]) = (cast_expression "(uchar)iVar4" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "blk[2] = *blk;" (assignment_expression "blk[2] = *blk" (subscript_expression "blk[2]" identifier [ number_literal ]) = (pointer_expression "*blk" * identifier)) ;) (expression_statement "blk[3] = (uchar)iVar4;" (assignment_expression "blk[3] = (uchar)iVar4" (subscript_expression "blk[3]" identifier [ number_literal ]) = (cast_expression "(uchar)iVar4" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "iVar4 = ssh1_write_bignum(puVar7,pBVar15);" (assignment_expression "iVar4 = ssh1_write_bignum(puVar7,pBVar15)" identifier = (call_expression "ssh1_write_bignum(puVar7,pBVar15)" identifier (argument_list "(puVar7,pBVar15)" ( identifier , identifier )))) ;) (expression_statement "puVar7 = puVar7 + iVar4;" (assignment_expression "puVar7 = puVar7 + iVar4" identifier = (binary_expression "puVar7 + iVar4" identifier + identifier)) ;) (expression_statement "iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_buf_base);" (assignment_expression "iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_buf_base)" identifier = (call_expression "ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_buf_base)" identifier (argument_list "(puVar7,(Bignum_conflict)pFVar3->_IO_buf_base)" ( identifier , (cast_expression "(Bignum_conflict)pFVar3->_IO_buf_base" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_buf_base" identifier -> field_identifier)) )))) ;) (expression_statement "puVar7 = puVar7 + iVar4;" (assignment_expression "puVar7 = puVar7 + iVar4" identifier = (binary_expression "puVar7 + iVar4" identifier + identifier)) ;) (expression_statement "iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_end);" (assignment_expression "iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_end)" identifier = (call_expression "ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_end)" identifier (argument_list "(puVar7,(Bignum_conflict)pFVar3->_IO_write_end)" ( identifier , (cast_expression "(Bignum_conflict)pFVar3->_IO_write_end" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_write_end" identifier -> field_identifier)) )))) ;) (expression_statement "puVar7 = puVar7 + iVar4;" (assignment_expression "puVar7 = puVar7 + iVar4" identifier = (binary_expression "puVar7 + iVar4" identifier + identifier)) ;) (expression_statement "iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_ptr);" (assignment_expression "iVar4 = ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_ptr)" identifier = (call_expression "ssh1_write_bignum(puVar7,(Bignum_conflict)pFVar3->_IO_write_ptr)" identifier (argument_list "(puVar7,(Bignum_conflict)pFVar3->_IO_write_ptr)" ( identifier , (cast_expression "(Bignum_conflict)pFVar3->_IO_write_ptr" ( (type_descriptor "Bignum_conflict" type_identifier) ) (field_expression "pFVar3->_IO_write_ptr" identifier -> field_identifier)) )))) ;) (expression_statement "uVar22 = (int)(puVar7 + iVar4) - (int)blk;" (assignment_expression "uVar22 = (int)(puVar7 + iVar4) - (int)blk" identifier = (binary_expression "(int)(puVar7 + iVar4) - (int)blk" (cast_expression "(int)(puVar7 + iVar4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7 + iVar4)" ( (binary_expression "puVar7 + iVar4" identifier + identifier) ))) - (cast_expression "(int)blk" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar7 = puVar7 + iVar4;" (assignment_expression "puVar7 = puVar7 + iVar4" identifier = (binary_expression "puVar7 + iVar4" identifier + identifier)) ;) (while_statement "while ((uVar22 & 7) != 0) {\n    *puVar7 = '\0';\n    uVar22 = (int)(puVar7 + 1) - (int)blk;\n    puVar7 = puVar7 + 1;\n  }" while (parenthesized_expression "((uVar22 & 7) != 0)" ( (binary_expression "(uVar22 & 7) != 0" (parenthesized_expression "(uVar22 & 7)" ( (binary_expression "uVar22 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    *puVar7 = '\0';\n    uVar22 = (int)(puVar7 + 1) - (int)blk;\n    puVar7 = puVar7 + 1;\n  }" { (expression_statement "*puVar7 = '\0';" (assignment_expression "*puVar7 = '\0'" (pointer_expression "*puVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar22 = (int)(puVar7 + 1) - (int)blk;" (assignment_expression "uVar22 = (int)(puVar7 + 1) - (int)blk" identifier = (binary_expression "(int)(puVar7 + 1) - (int)blk" (cast_expression "(int)(puVar7 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) ))) - (cast_expression "(int)blk" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) })) (if_statement "if (puVar19 != (uchar *)0x0) {\n    MD5Init(&MStackY_41d8);\n    len = (**(code **)(pcVar26 + 0x30840))(puVar19);\n    MD5Update(&MStackY_41d8,puVar19,len);\n    MD5Final(auStackY_417c,&MStackY_41d8);\n    des3_encrypt_pubkey(auStackY_417c,blk,uVar22);\n                    /* WARNING: Subroutine does not return */\n    smemclr(auStackY_417c,0x10);\n  }" if (parenthesized_expression "(puVar19 != (uchar *)0x0)" ( (binary_expression "puVar19 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    MD5Init(&MStackY_41d8);\n    len = (**(code **)(pcVar26 + 0x30840))(puVar19);\n    MD5Update(&MStackY_41d8,puVar19,len);\n    MD5Final(auStackY_417c,&MStackY_41d8);\n    des3_encrypt_pubkey(auStackY_417c,blk,uVar22);\n                    /* WARNING: Subroutine does not return */\n    smemclr(auStackY_417c,0x10);\n  }" { (expression_statement "MD5Init(&MStackY_41d8);" (call_expression "MD5Init(&MStackY_41d8)" identifier (argument_list "(&MStackY_41d8)" ( (pointer_expression "&MStackY_41d8" & identifier) ))) ;) (expression_statement "len = (**(code **)(pcVar26 + 0x30840))(puVar19);" (assignment_expression "len = (**(code **)(pcVar26 + 0x30840))(puVar19)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30840))(puVar19)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(puVar19)" ( identifier )))) ;) (expression_statement "MD5Update(&MStackY_41d8,puVar19,len);" (call_expression "MD5Update(&MStackY_41d8,puVar19,len)" identifier (argument_list "(&MStackY_41d8,puVar19,len)" ( (pointer_expression "&MStackY_41d8" & identifier) , identifier , identifier ))) ;) (expression_statement "MD5Final(auStackY_417c,&MStackY_41d8);" (call_expression "MD5Final(auStackY_417c,&MStackY_41d8)" identifier (argument_list "(auStackY_417c,&MStackY_41d8)" ( identifier , (pointer_expression "&MStackY_41d8" & identifier) ))) ;) (expression_statement "des3_encrypt_pubkey(auStackY_417c,blk,uVar22);" (call_expression "des3_encrypt_pubkey(auStackY_417c,blk,uVar22)" identifier (argument_list "(auStackY_417c,blk,uVar22)" ( identifier , identifier , identifier ))) ;) comment (expression_statement "smemclr(auStackY_417c,0x10);" (call_expression "smemclr(auStackY_417c,0x10)" identifier (argument_list "(auStackY_417c,0x10)" ( identifier , number_literal ))) ;) })) (expression_statement "pcVar16 = (char *)(*(int *)(pcVar26 + 0x3038c) + -0x195c);" (assignment_expression "pcVar16 = (char *)(*(int *)(pcVar26 + 0x3038c) + -0x195c)" identifier = (cast_expression "(char *)(*(int *)(pcVar26 + 0x3038c) + -0x195c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x3038c) + -0x195c)" ( (binary_expression "*(int *)(pcVar26 + 0x3038c) + -0x195c" (pointer_expression "*(int *)(pcVar26 + 0x3038c)" * (cast_expression "(int *)(pcVar26 + 0x3038c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3038c)" ( (binary_expression "pcVar26 + 0x3038c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pFVar18 = f_open(pFVar2,pcVar16,1);" (assignment_expression "pFVar18 = f_open(pFVar2,pcVar16,1)" identifier = (call_expression "f_open(pFVar2,pcVar16,1)" identifier (argument_list "(pFVar2,pcVar16,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (pFVar18 != (FILE *)0x0) {\n    iVar20 = (int)puVar7 - (int)auStackY_416c;\n    pcVar16 = (char *)0x1;\n    iVar4 = (**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18);\n    iVar24 = (**(code **)(pcVar26 + 0x307ec))(pFVar18);\n    if (iVar24 == 0) {\n      uVar22 = (uint)(iVar20 == iVar4);\n      goto LAB_0003a054;\n    }\n  }" if (parenthesized_expression "(pFVar18 != (FILE *)0x0)" ( (binary_expression "pFVar18 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar20 = (int)puVar7 - (int)auStackY_416c;\n    pcVar16 = (char *)0x1;\n    iVar4 = (**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18);\n    iVar24 = (**(code **)(pcVar26 + 0x307ec))(pFVar18);\n    if (iVar24 == 0) {\n      uVar22 = (uint)(iVar20 == iVar4);\n      goto LAB_0003a054;\n    }\n  }" { (expression_statement "iVar20 = (int)puVar7 - (int)auStackY_416c;" (assignment_expression "iVar20 = (int)puVar7 - (int)auStackY_416c" identifier = (binary_expression "(int)puVar7 - (int)auStackY_416c" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)auStackY_416c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar16 = (char *)0x1;" (assignment_expression "pcVar16 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = (**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18);" (assignment_expression "iVar4 = (**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30880))(auStackY_416c,1,iVar20,pFVar18)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30880))" ( (pointer_expression "**(code **)(pcVar26 + 0x30880)" * (pointer_expression "*(code **)(pcVar26 + 0x30880)" * (cast_expression "(code **)(pcVar26 + 0x30880)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30880)" ( (binary_expression "pcVar26 + 0x30880" identifier + number_literal) ))))) )) (argument_list "(auStackY_416c,1,iVar20,pFVar18)" ( identifier , number_literal , identifier , identifier )))) ;) (expression_statement "iVar24 = (**(code **)(pcVar26 + 0x307ec))(pFVar18);" (assignment_expression "iVar24 = (**(code **)(pcVar26 + 0x307ec))(pFVar18)" identifier = (call_expression "(**(code **)(pcVar26 + 0x307ec))(pFVar18)" (parenthesized_expression "(**(code **)(pcVar26 + 0x307ec))" ( (pointer_expression "**(code **)(pcVar26 + 0x307ec)" * (pointer_expression "*(code **)(pcVar26 + 0x307ec)" * (cast_expression "(code **)(pcVar26 + 0x307ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x307ec)" ( (binary_expression "pcVar26 + 0x307ec" identifier + number_literal) ))))) )) (argument_list "(pFVar18)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) {\n      uVar22 = (uint)(iVar20 == iVar4);\n      goto LAB_0003a054;\n    }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar22 = (uint)(iVar20 == iVar4);\n      goto LAB_0003a054;\n    }" { (expression_statement "uVar22 = (uint)(iVar20 == iVar4);" (assignment_expression "uVar22 = (uint)(iVar20 == iVar4)" identifier = (call_expression "(uint)(iVar20 == iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar20 == iVar4)" ( (binary_expression "iVar20 == iVar4" identifier == identifier) )))) ;) (goto_statement "goto LAB_0003a054;" goto statement_identifier ;) })) })) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0003a054:\n  if (iStackY_16c == *piVar23) {\n    return uVar22;\n  }" statement_identifier : (if_statement "if (iStackY_16c == *piVar23) {\n    return uVar22;\n  }" if (parenthesized_expression "(iStackY_16c == *piVar23)" ( (binary_expression "iStackY_16c == *piVar23" identifier == (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n    return uVar22;\n  }" { (return_statement "return uVar22;" return identifier ;) }))) (expression_statement "pcVar26 = *(code **)(pcVar26 + 0x30898);" (assignment_expression "pcVar26 = *(code **)(pcVar26 + 0x30898)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30898)" * (cast_expression "(code **)(pcVar26 + 0x30898)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30898)" ( (binary_expression "pcVar26 + 0x30898" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = iStackY_16c;" (assignment_expression "iVar4 = iStackY_16c" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0));" (assignment_expression "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0))" identifier = (call_expression "match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0))" identifier (argument_list "(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0))" ( identifier , identifier , (cast_expression "(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x2ffac) + -0x1ac0)" ( (binary_expression "*(int *)(pcVar26 + 0x2ffac) + -0x1ac0" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c));\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));\n      if (iVar24 == 0) {\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }\n      else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      iVar4 = *(int *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    iVar4 = *(int *)(pcVar26 + 0x30048);\n  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330));\n    if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c));\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));\n      if (iVar24 == 0) {\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }\n      else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      iVar4 = *(int *)(pcVar26 + 0x30128);\n    }\n  }" { (expression_statement "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8));" (assignment_expression "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8))" identifier = (call_expression "match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8))" identifier (argument_list "(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8))" ( identifier , identifier , (cast_expression "(char *)(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" ( (binary_expression "*(int *)(pcVar26 + 0x2ffac) + -0x1ac8" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30070);\n    }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n      return *(int *)(pcVar26 + 0x30070);\n    }" { (return_statement "return *(int *)(pcVar26 + 0x30070);" return (pointer_expression "*(int *)(pcVar26 + 0x30070)" * (cast_expression "(int *)(pcVar26 + 0x30070)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30070)" ( (binary_expression "pcVar26 + 0x30070" identifier + number_literal) )))) ;) })) (expression_statement "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330));" (assignment_expression "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330))" identifier = (call_expression "match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330))" identifier (argument_list "(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330))" ( identifier , identifier , (cast_expression "(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3330)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x2ffac) + 0x3330)" ( (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3330" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (iVar24 != 0) {\n      return *(int *)(pcVar26 + 0x30124);\n    }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n      return *(int *)(pcVar26 + 0x30124);\n    }" { (return_statement "return *(int *)(pcVar26 + 0x30124);" return (pointer_expression "*(int *)(pcVar26 + 0x30124)" * (cast_expression "(int *)(pcVar26 + 0x30124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30124)" ( (binary_expression "pcVar26 + 0x30124" identifier + number_literal) )))) ;) })) (expression_statement "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c));" (assignment_expression "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c))" identifier = (call_expression "match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c))" identifier (argument_list "(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c))" ( identifier , identifier , (cast_expression "(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x331c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x2ffac) + 0x331c)" ( (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x331c" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));\n      if (iVar24 == 0) {\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }\n      else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      iVar4 = *(int *)(pcVar26 + 0x30128);\n    }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));\n      if (iVar24 == 0) {\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }\n      else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }\n    }" { (expression_statement "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308));" (assignment_expression "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308))" identifier = (call_expression "match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308))" identifier (argument_list "(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308))" ( identifier , identifier , (cast_expression "(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3308)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x2ffac) + 0x3308)" ( (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3308" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (iVar24 == 0) {\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }\n      else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));\n        iVar4 = *(int *)(pcVar26 + 0x30068);\n        if (iVar24 == 0) {\n          iVar4 = 0;\n        }\n      }" { (expression_statement "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344));" (assignment_expression "iVar24 = match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344))" identifier = (call_expression "match_ssh_id(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344))" identifier (argument_list "(iVar4,pcVar16,(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344))" ( identifier , identifier , (cast_expression "(char *)(*(int *)(pcVar26 + 0x2ffac) + 0x3344)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x2ffac) + 0x3344)" ( (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3344" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) ))) )))) ;) (expression_statement "iVar4 = *(int *)(pcVar26 + 0x30068);" (assignment_expression "iVar4 = *(int *)(pcVar26 + 0x30068)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x30068)" * (cast_expression "(int *)(pcVar26 + 0x30068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30068)" ( (binary_expression "pcVar26 + 0x30068" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) {\n          iVar4 = 0;\n        }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar4 = 0;\n        }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }" else (compound_statement "{\n        iVar4 = *(int *)(pcVar26 + 0x3012c);\n      }" { (expression_statement "iVar4 = *(int *)(pcVar26 + 0x3012c);" (assignment_expression "iVar4 = *(int *)(pcVar26 + 0x3012c)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x3012c)" * (cast_expression "(int *)(pcVar26 + 0x3012c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3012c)" ( (binary_expression "pcVar26 + 0x3012c" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n      iVar4 = *(int *)(pcVar26 + 0x30128);\n    }" else (compound_statement "{\n      iVar4 = *(int *)(pcVar26 + 0x30128);\n    }" { (expression_statement "iVar4 = *(int *)(pcVar26 + 0x30128);" (assignment_expression "iVar4 = *(int *)(pcVar26 + 0x30128)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x30128)" * (cast_expression "(int *)(pcVar26 + 0x30128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30128)" ( (binary_expression "pcVar26 + 0x30128" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n    iVar4 = *(int *)(pcVar26 + 0x30048);\n  }" else (compound_statement "{\n    iVar4 = *(int *)(pcVar26 + 0x30048);\n  }" { (expression_statement "iVar4 = *(int *)(pcVar26 + 0x30048);" (assignment_expression "iVar4 = *(int *)(pcVar26 + 0x30048)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x30048)" * (cast_expression "(int *)(pcVar26 + 0x30048)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30048)" ( (binary_expression "pcVar26 + 0x30048" identifier + number_literal) ))))) ;) }))) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "uint rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  undefined1 extraout_var;\n  undefined1 extraout_var_00;\n  undefined1 extraout_var_01;\n  undefined1 extraout_var_02;\n  undefined1 extraout_var_03;\n  undefined1 extraout_var_04;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined1 uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *unaff_s0;\n  undefined1 *puVar19;\n  int iVar20;\n  int *piVar21;\n  undefined1 *unaff_s2;\n  int *piVar22;\n  int *unaff_s4;\n  undefined1 *puVar23;\n  int *unaff_s7;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  char *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_41d8 [92];\n  undefined1 auStack_417c [16];\n  undefined4 auStack_416c [4];\n  undefined1 auStack_415c [17];\n  undefined1 uStack_414b;\n  undefined2 uStack_414a;\n  undefined2 uStack_4148;\n  undefined1 uStack_4146;\n  undefined1 uStack_4145;\n  undefined1 uStack_4144;\n  undefined1 uStack_4143;\n  undefined1 auStack_4142 [16342];\n  int iStack_16c;\n  int *piStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  int *piStack_150;\n  undefined4 *puStack_14c;\n  int *piStack_148;\n  code *pcStack_144;\n  undefined4 uStack_130;\n  int *piStack_12c;\n  undefined *puStack_128;\n  char *pcStack_120;\n  int *piStack_11c;\n  int aiStack_114 [10];\n  undefined1 auStack_ec [64];\n  int iStack_ac;\n  int *piStack_a8;\n  undefined *puStack_a4;\n  undefined1 *puStack_a0;\n  undefined4 *puStack_9c;\n  int *local_70;\n  undefined1 auStack_5c [64];\n  int local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  piVar17 = (int *)0x0;\n  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);\n  local_1c = *(int *)PTR___stack_chk_guard_0006a594;\n  piVar2 = (int *)f_open();\n  if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }\nLAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_128 = puVar25 + 0x38744;\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  piVar18 = (int *)0x0;\n  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  aiStack_114[0] = 0;\n  iStack_ac = *piVar21;\n  *puVar15 = 0;\n  *piVar17 = 0;\n  piStack_a8 = unaff_s0;\n  puStack_a0 = unaff_s2;\n  puStack_9c = param_2;\n  piVar5 = (int *)f_open();\n  if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }\nLAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(puStack_128 + -0x7abc);\n  pcVar28 = saversakey;\n  iVar3 = iStack_ac;\n  (*pcVar26)();\n  iVar9 = *(int *)(pcVar26 + 0x3038c);\n  piStack_150 = local_70;\n  piVar22 = *(int **)(pcVar26 + 0x308b8);\n  iStack_16c = *piVar22;\n  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);\n  puVar13 = auStack_416c;\n  do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));\n  uVar12 = 3;\n  if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }\n  iVar9 = piVar2[2];\n  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;\n  uStack_414a = 0;\n  uStack_4148 = 0;\n  uStack_414b = uVar12;\n  piStack_164 = piVar5;\n  piStack_160 = piVar21;\n  puStack_15c = puVar15;\n  piStack_158 = piVar17;\n  piStack_154 = unaff_s4;\n  puStack_14c = param_4;\n  piStack_148 = unaff_s7;\n  pcStack_144 = pcVar28;\n  bignum_bitcount(iVar9);\n  uStack_4146 = extraout_var;\n  bignum_bitcount(piVar2[2]);\n  uStack_4145 = extraout_var_01;\n  bignum_bitcount(piVar2[2]);\n  uStack_4144 = extraout_var_03;\n  uStack_4143 = bignum_bitcount(piVar2[2]);\n  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);\n  puVar19 = auStack_4142 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);\n  iVar24 = piVar2[8];\n  puVar19 = puVar19 + iVar9;\n  if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }\n  puVar19 = puVar23 + 4;\n  uVar12 = random_byte();\n  *puVar23 = uVar12;\n  uVar12 = random_byte();\n  iVar9 = piVar2[4];\n  puVar23[1] = uVar12;\n  puVar23[2] = *puVar23;\n  puVar23[3] = uVar12;\n  iVar9 = ssh1_write_bignum(puVar19,iVar9);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);\n  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;\n  puVar19 = puVar19 + iVar9;\n  while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }\n  if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }\n  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;\n  iVar3 = f_open(iVar3,iVar9,1);\n  if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }\n  uVar4 = 0;\nLAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar3 = iStack_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id();\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }\n  return uVar4;\n}\n\n" (function_definition "uint rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  undefined1 extraout_var;\n  undefined1 extraout_var_00;\n  undefined1 extraout_var_01;\n  undefined1 extraout_var_02;\n  undefined1 extraout_var_03;\n  undefined1 extraout_var_04;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined1 uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *unaff_s0;\n  undefined1 *puVar19;\n  int iVar20;\n  int *piVar21;\n  undefined1 *unaff_s2;\n  int *piVar22;\n  int *unaff_s4;\n  undefined1 *puVar23;\n  int *unaff_s7;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  char *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_41d8 [92];\n  undefined1 auStack_417c [16];\n  undefined4 auStack_416c [4];\n  undefined1 auStack_415c [17];\n  undefined1 uStack_414b;\n  undefined2 uStack_414a;\n  undefined2 uStack_4148;\n  undefined1 uStack_4146;\n  undefined1 uStack_4145;\n  undefined1 uStack_4144;\n  undefined1 uStack_4143;\n  undefined1 auStack_4142 [16342];\n  int iStack_16c;\n  int *piStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  int *piStack_150;\n  undefined4 *puStack_14c;\n  int *piStack_148;\n  code *pcStack_144;\n  undefined4 uStack_130;\n  int *piStack_12c;\n  undefined *puStack_128;\n  char *pcStack_120;\n  int *piStack_11c;\n  int aiStack_114 [10];\n  undefined1 auStack_ec [64];\n  int iStack_ac;\n  int *piStack_a8;\n  undefined *puStack_a4;\n  undefined1 *puStack_a0;\n  undefined4 *puStack_9c;\n  int *local_70;\n  undefined1 auStack_5c [64];\n  int local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  piVar17 = (int *)0x0;\n  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);\n  local_1c = *(int *)PTR___stack_chk_guard_0006a594;\n  piVar2 = (int *)f_open();\n  if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }\nLAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_128 = puVar25 + 0x38744;\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  piVar18 = (int *)0x0;\n  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  aiStack_114[0] = 0;\n  iStack_ac = *piVar21;\n  *puVar15 = 0;\n  *piVar17 = 0;\n  piStack_a8 = unaff_s0;\n  puStack_a0 = unaff_s2;\n  puStack_9c = param_2;\n  piVar5 = (int *)f_open();\n  if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }\nLAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(puStack_128 + -0x7abc);\n  pcVar28 = saversakey;\n  iVar3 = iStack_ac;\n  (*pcVar26)();\n  iVar9 = *(int *)(pcVar26 + 0x3038c);\n  piStack_150 = local_70;\n  piVar22 = *(int **)(pcVar26 + 0x308b8);\n  iStack_16c = *piVar22;\n  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);\n  puVar13 = auStack_416c;\n  do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));\n  uVar12 = 3;\n  if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }\n  iVar9 = piVar2[2];\n  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;\n  uStack_414a = 0;\n  uStack_4148 = 0;\n  uStack_414b = uVar12;\n  piStack_164 = piVar5;\n  piStack_160 = piVar21;\n  puStack_15c = puVar15;\n  piStack_158 = piVar17;\n  piStack_154 = unaff_s4;\n  puStack_14c = param_4;\n  piStack_148 = unaff_s7;\n  pcStack_144 = pcVar28;\n  bignum_bitcount(iVar9);\n  uStack_4146 = extraout_var;\n  bignum_bitcount(piVar2[2]);\n  uStack_4145 = extraout_var_01;\n  bignum_bitcount(piVar2[2]);\n  uStack_4144 = extraout_var_03;\n  uStack_4143 = bignum_bitcount(piVar2[2]);\n  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);\n  puVar19 = auStack_4142 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);\n  iVar24 = piVar2[8];\n  puVar19 = puVar19 + iVar9;\n  if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }\n  puVar19 = puVar23 + 4;\n  uVar12 = random_byte();\n  *puVar23 = uVar12;\n  uVar12 = random_byte();\n  iVar9 = piVar2[4];\n  puVar23[1] = uVar12;\n  puVar23[2] = *puVar23;\n  puVar23[3] = uVar12;\n  iVar9 = ssh1_write_bignum(puVar19,iVar9);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);\n  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;\n  puVar19 = puVar19 + iVar9;\n  while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }\n  if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }\n  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;\n  iVar3 = f_open(iVar3,iVar9,1);\n  if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }\n  uVar4 = 0;\nLAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar3 = iStack_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id();\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }\n  return uVar4;\n}" type_identifier (function_declarator "rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined1 extraout_var;\n  undefined1 extraout_var_00;\n  undefined1 extraout_var_01;\n  undefined1 extraout_var_02;\n  undefined1 extraout_var_03;\n  undefined1 extraout_var_04;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined1 uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *unaff_s0;\n  undefined1 *puVar19;\n  int iVar20;\n  int *piVar21;\n  undefined1 *unaff_s2;\n  int *piVar22;\n  int *unaff_s4;\n  undefined1 *puVar23;\n  int *unaff_s7;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  char *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_41d8 [92];\n  undefined1 auStack_417c [16];\n  undefined4 auStack_416c [4];\n  undefined1 auStack_415c [17];\n  undefined1 uStack_414b;\n  undefined2 uStack_414a;\n  undefined2 uStack_4148;\n  undefined1 uStack_4146;\n  undefined1 uStack_4145;\n  undefined1 uStack_4144;\n  undefined1 uStack_4143;\n  undefined1 auStack_4142 [16342];\n  int iStack_16c;\n  int *piStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  int *piStack_150;\n  undefined4 *puStack_14c;\n  int *piStack_148;\n  code *pcStack_144;\n  undefined4 uStack_130;\n  int *piStack_12c;\n  undefined *puStack_128;\n  char *pcStack_120;\n  int *piStack_11c;\n  int aiStack_114 [10];\n  undefined1 auStack_ec [64];\n  int iStack_ac;\n  int *piStack_a8;\n  undefined *puStack_a4;\n  undefined1 *puStack_a0;\n  undefined4 *puStack_9c;\n  int *local_70;\n  undefined1 auStack_5c [64];\n  int local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  piVar17 = (int *)0x0;\n  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);\n  local_1c = *(int *)PTR___stack_chk_guard_0006a594;\n  piVar2 = (int *)f_open();\n  if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }\nLAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_128 = puVar25 + 0x38744;\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  piVar18 = (int *)0x0;\n  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  aiStack_114[0] = 0;\n  iStack_ac = *piVar21;\n  *puVar15 = 0;\n  *piVar17 = 0;\n  piStack_a8 = unaff_s0;\n  puStack_a0 = unaff_s2;\n  puStack_9c = param_2;\n  piVar5 = (int *)f_open();\n  if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }\nLAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(puStack_128 + -0x7abc);\n  pcVar28 = saversakey;\n  iVar3 = iStack_ac;\n  (*pcVar26)();\n  iVar9 = *(int *)(pcVar26 + 0x3038c);\n  piStack_150 = local_70;\n  piVar22 = *(int **)(pcVar26 + 0x308b8);\n  iStack_16c = *piVar22;\n  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);\n  puVar13 = auStack_416c;\n  do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));\n  uVar12 = 3;\n  if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }\n  iVar9 = piVar2[2];\n  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;\n  uStack_414a = 0;\n  uStack_4148 = 0;\n  uStack_414b = uVar12;\n  piStack_164 = piVar5;\n  piStack_160 = piVar21;\n  puStack_15c = puVar15;\n  piStack_158 = piVar17;\n  piStack_154 = unaff_s4;\n  puStack_14c = param_4;\n  piStack_148 = unaff_s7;\n  pcStack_144 = pcVar28;\n  bignum_bitcount(iVar9);\n  uStack_4146 = extraout_var;\n  bignum_bitcount(piVar2[2]);\n  uStack_4145 = extraout_var_01;\n  bignum_bitcount(piVar2[2]);\n  uStack_4144 = extraout_var_03;\n  uStack_4143 = bignum_bitcount(piVar2[2]);\n  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);\n  puVar19 = auStack_4142 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);\n  iVar24 = piVar2[8];\n  puVar19 = puVar19 + iVar9;\n  if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }\n  puVar19 = puVar23 + 4;\n  uVar12 = random_byte();\n  *puVar23 = uVar12;\n  uVar12 = random_byte();\n  iVar9 = piVar2[4];\n  puVar23[1] = uVar12;\n  puVar23[2] = *puVar23;\n  puVar23[3] = uVar12;\n  iVar9 = ssh1_write_bignum(puVar19,iVar9);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);\n  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;\n  puVar19 = puVar19 + iVar9;\n  while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }\n  if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }\n  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;\n  iVar3 = f_open(iVar3,iVar9,1);\n  if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }\n  uVar4 = 0;\nLAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar3 = iStack_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id();\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }\n  return uVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined1 extraout_var;" type_identifier identifier ;) (declaration "undefined1 extraout_var_00;" type_identifier identifier ;) (declaration "undefined1 extraout_var_01;" type_identifier identifier ;) (declaration "undefined1 extraout_var_02;" type_identifier identifier ;) (declaration "undefined1 extraout_var_03;" type_identifier identifier ;) (declaration "undefined1 extraout_var_04;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *unaff_s0;" primitive_type (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined1 *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *unaff_s7;" primitive_type (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "undefined1 auStack_41d8 [92];" type_identifier (array_declarator "auStack_41d8 [92]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_417c [16];" type_identifier (array_declarator "auStack_417c [16]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_416c [4];" type_identifier (array_declarator "auStack_416c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_415c [17];" type_identifier (array_declarator "auStack_415c [17]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_414b;" type_identifier identifier ;) (declaration "undefined2 uStack_414a;" type_identifier identifier ;) (declaration "undefined2 uStack_4148;" type_identifier identifier ;) (declaration "undefined1 uStack_4146;" type_identifier identifier ;) (declaration "undefined1 uStack_4145;" type_identifier identifier ;) (declaration "undefined1 uStack_4144;" type_identifier identifier ;) (declaration "undefined1 uStack_4143;" type_identifier identifier ;) (declaration "undefined1 auStack_4142 [16342];" type_identifier (array_declarator "auStack_4142 [16342]" identifier [ number_literal ]) ;) (declaration "int iStack_16c;" primitive_type identifier ;) (declaration "int *piStack_164;" primitive_type (pointer_declarator "*piStack_164" * identifier) ;) (declaration "int *piStack_160;" primitive_type (pointer_declarator "*piStack_160" * identifier) ;) (declaration "undefined4 *puStack_15c;" type_identifier (pointer_declarator "*puStack_15c" * identifier) ;) (declaration "int *piStack_158;" primitive_type (pointer_declarator "*piStack_158" * identifier) ;) (declaration "int *piStack_154;" primitive_type (pointer_declarator "*piStack_154" * identifier) ;) (declaration "int *piStack_150;" primitive_type (pointer_declarator "*piStack_150" * identifier) ;) (declaration "undefined4 *puStack_14c;" type_identifier (pointer_declarator "*puStack_14c" * identifier) ;) (declaration "int *piStack_148;" primitive_type (pointer_declarator "*piStack_148" * identifier) ;) (declaration "code *pcStack_144;" type_identifier (pointer_declarator "*pcStack_144" * identifier) ;) (declaration "undefined4 uStack_130;" type_identifier identifier ;) (declaration "int *piStack_12c;" primitive_type (pointer_declarator "*piStack_12c" * identifier) ;) (declaration "undefined *puStack_128;" type_identifier (pointer_declarator "*puStack_128" * identifier) ;) (declaration "char *pcStack_120;" primitive_type (pointer_declarator "*pcStack_120" * identifier) ;) (declaration "int *piStack_11c;" primitive_type (pointer_declarator "*piStack_11c" * identifier) ;) (declaration "int aiStack_114 [10];" primitive_type (array_declarator "aiStack_114 [10]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_ec [64];" type_identifier (array_declarator "auStack_ec [64]" identifier [ number_literal ]) ;) (declaration "int iStack_ac;" primitive_type identifier ;) (declaration "int *piStack_a8;" primitive_type (pointer_declarator "*piStack_a8" * identifier) ;) (declaration "undefined *puStack_a4;" type_identifier (pointer_declarator "*puStack_a4" * identifier) ;) (declaration "undefined1 *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "undefined4 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "int *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined1 auStack_5c [64];" type_identifier (array_declarator "auStack_5c [64]" identifier [ number_literal ]) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0006a594;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0006a594" identifier = identifier) ;) (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);" (assignment_expression "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x6cc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x6cc0)" ( (binary_expression "PTR_DAT_0006a068 + 0x6cc0" identifier + number_literal) )))) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_0006a594;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_0006a594" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0006a594" * (cast_expression "(int *)PTR___stack_chk_guard_0006a594" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar2 = (int *)f_open();" (assignment_expression "piVar2 = (int *)f_open()" identifier = (cast_expression "(int *)f_open()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "f_open()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = 0;\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" else (compound_statement "{\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" { (expression_statement "unaff_s2 = auStack_5c;" (assignment_expression "unaff_s2 = auStack_5c" identifier = identifier) ;) (expression_statement "puVar15 = (undefined4 *)&DAT_00000040;" (assignment_expression "puVar15 = (undefined4 *)&DAT_00000040" identifier = (cast_expression "(undefined4 *)&DAT_00000040" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000040" & identifier))) ;) (expression_statement "piVar17 = piVar2;" (assignment_expression "piVar17 = piVar2" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);" (assignment_expression "iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_fgets_0006a588)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_fgets_0006a588)" ( (pointer_expression "*(code *)PTR_fgets_0006a588" * (cast_expression "(code *)PTR_fgets_0006a588" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (expression_statement "unaff_s0 = piVar2;" (assignment_expression "unaff_s0 = piVar2" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }" { (expression_statement "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);" (assignment_expression "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x6cd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x6cd4)" ( (binary_expression "PTR_DAT_0006a068 + 0x6cd4" identifier + number_literal) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2)" identifier = (call_expression "(*(code *)PTR_strcmp_0006a5c8)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strcmp_0006a5c8)" ( (pointer_expression "*(code *)PTR_strcmp_0006a5c8" * (cast_expression "(code *)PTR_strcmp_0006a5c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s2)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }" { (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (int *)0x0;" (assignment_expression "local_70 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = param_2;" (assignment_expression "param_4 = param_2" identifier = identifier) ;) (expression_statement "uVar4 = FUN_00038b60(piVar2);" (assignment_expression "uVar4 = FUN_00038b60(piVar2)" identifier = (call_expression "FUN_00038b60(piVar2)" identifier (argument_list "(piVar2)" ( identifier )))) ;) (goto_statement "goto LAB_00039880;" goto statement_identifier ;) })) })) (expression_statement "(*(code *)PTR_fclose_0006a4c8)(piVar2);" (call_expression "(*(code *)PTR_fclose_0006a4c8)(piVar2)" (parenthesized_expression "(*(code *)PTR_fclose_0006a4c8)" ( (pointer_expression "*(code *)PTR_fclose_0006a4c8" * (cast_expression "(code *)PTR_fclose_0006a4c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar2)" ( identifier ))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }" statement_identifier : (if_statement "if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar1)" ( (binary_expression "local_1c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "puVar25 = PTR___stack_chk_fail_0006a574;" (assignment_expression "puVar25 = PTR___stack_chk_fail_0006a574" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0006a574)();" (call_expression "(*(code *)PTR___stack_chk_fail_0006a574)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0006a574)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0006a574" * (cast_expression "(code *)PTR___stack_chk_fail_0006a574" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_128 = puVar25 + 0x38744;" (assignment_expression "puStack_128 = puVar25 + 0x38744" identifier = (binary_expression "puVar25 + 0x38744" identifier + number_literal)) ;) (expression_statement "puStack_a4 = puVar1;" (assignment_expression "puStack_a4 = puVar1" identifier = identifier) ;) (expression_statement "piVar21 = *(int **)(puVar25 + 0x30ca8);" (assignment_expression "piVar21 = *(int **)(puVar25 + 0x30ca8)" identifier = (pointer_expression "*(int **)(puVar25 + 0x30ca8)" * (cast_expression "(int **)(puVar25 + 0x30ca8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x30ca8)" ( (binary_expression "puVar25 + 0x30ca8" identifier + number_literal) ))))) ;) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);" (assignment_expression "piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" identifier = (cast_expression "(int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" ( (binary_expression "*(int *)(puVar25 + 0x3077c) + 0x6cc0" (pointer_expression "*(int *)(puVar25 + 0x3077c)" * (cast_expression "(int *)(puVar25 + 0x3077c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x3077c)" ( (binary_expression "puVar25 + 0x3077c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "aiStack_114[0] = 0;" (assignment_expression "aiStack_114[0] = 0" (subscript_expression "aiStack_114[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_ac = *piVar21;" (assignment_expression "iStack_ac = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "*piVar17 = 0;" (assignment_expression "*piVar17 = 0" (pointer_expression "*piVar17" * identifier) = number_literal) ;) (expression_statement "piStack_a8 = unaff_s0;" (assignment_expression "piStack_a8 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_a0 = unaff_s2;" (assignment_expression "puStack_a0 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_9c = param_2;" (assignment_expression "puStack_9c = param_2" identifier = identifier) ;) (expression_statement "piVar5 = (int *)f_open();" (assignment_expression "piVar5 = (int *)f_open()" identifier = (cast_expression "(int *)f_open()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "f_open()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }" { (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4" (subscript_expression "aiStack_114[0]" identifier [ number_literal ]) = (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cc4" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" * (cast_expression "(int *)(puStack_128 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_00039a34:\n    uVar4 = 0;" statement_identifier : (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;)) (expression_statement "piVar5 = unaff_s0;" (assignment_expression "piVar5 = unaff_s0" identifier = identifier) ;) (if_statement "if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }" if (parenthesized_expression "(local_70 != (int *)0x0)" ( (binary_expression "local_70 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *local_70 = aiStack_114[0];\n    }" { (expression_statement "*local_70 = aiStack_114[0];" (assignment_expression "*local_70 = aiStack_114[0]" (pointer_expression "*local_70" * identifier) = (subscript_expression "aiStack_114[0]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" else (compound_statement "{\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" { (expression_statement "piVar18 = piVar5;" (assignment_expression "piVar18 = piVar5" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40)" identifier = (call_expression "(**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7aa8))" ( (pointer_expression "**(code **)(puStack_128 + -0x7aa8)" * (pointer_expression "*(code **)(puStack_128 + -0x7aa8)" * (cast_expression "(code **)(puStack_128 + -0x7aa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7aa8)" ( (binary_expression "puStack_128 + -0x7aa8" identifier + number_literal) ))))) )) (argument_list "(auStack_ec,0x40)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s0 = piVar5;" (assignment_expression "unaff_s0 = piVar5" identifier = identifier) ;) (if_statement "if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }" if (parenthesized_expression "((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0))" ( (binary_expression "(iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)" ( (comma_expression "iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" identifier = (call_expression "(**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7a68))" ( (pointer_expression "**(code **)(puStack_128 + -0x7a68)" * (pointer_expression "*(code **)(puStack_128 + -0x7a68)" * (cast_expression "(code **)(puStack_128 + -0x7a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7a68)" ( (binary_expression "puStack_128 + -0x7a68" identifier + number_literal) ))))) )) (argument_list "(auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" ( identifier , (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cd4" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" * (cast_expression "(int *)(puStack_128 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }" { (expression_statement "unaff_s7 = *(int **)(puStack_128 + -0x7fc8);" (assignment_expression "unaff_s7 = *(int **)(puStack_128 + -0x7fc8)" identifier = (pointer_expression "*(int **)(puStack_128 + -0x7fc8)" * (cast_expression "(int **)(puStack_128 + -0x7fc8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puStack_128 + -0x7ac0))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7ac0))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7ac0))" ( (pointer_expression "**(code **)(puStack_128 + -0x7ac0)" * (pointer_expression "*(code **)(puStack_128 + -0x7ac0)" * (cast_expression "(code **)(puStack_128 + -0x7ac0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7ac0)" ( (binary_expression "puStack_128 + -0x7ac0" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "uVar6 = fgetline(piVar5);" (assignment_expression "uVar6 = fgetline(piVar5)" identifier = (call_expression "fgetline(piVar5)" identifier (argument_list "(piVar5)" ( identifier )))) ;) (expression_statement "unaff_s4 = (int *)chomp(uVar6);" (assignment_expression "unaff_s4 = (int *)chomp(uVar6)" identifier = (cast_expression "(int *)chomp(uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "chomp(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))))) ;) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" identifier = (binary_expression "unaff_s7 + 0x1b44" identifier + number_literal)) ;) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4)" identifier = (call_expression "(**(code **)(puStack_128 + -0x7bac))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7bac))" ( (pointer_expression "**(code **)(puStack_128 + -0x7bac)" * (pointer_expression "*(code **)(puStack_128 + -0x7bac)" * (cast_expression "(code **)(puStack_128 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7bac)" ( (binary_expression "puStack_128 + -0x7bac" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "pcVar7 = (char *)((int)unaff_s4 + iVar3);" (assignment_expression "pcVar7 = (char *)((int)unaff_s4 + iVar3)" identifier = (cast_expression "(char *)((int)unaff_s4 + iVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + iVar3)" ( (binary_expression "(int)unaff_s4 + iVar3" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" if (parenthesized_expression "(*pcVar7 == ' ')" ( (binary_expression "*pcVar7 == ' '" (pointer_expression "*pcVar7" * identifier) == (char_literal "' '" ' character ')) )) (compound_statement "{\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }" { (expression_statement "pcStack_120 = pcVar7 + 1;" (assignment_expression "pcStack_120 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7bac);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7bac)" identifier = (pointer_expression "*(code **)(puStack_128 + -0x7bac)" * (cast_expression "(code **)(puStack_128 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7bac)" ( (binary_expression "puStack_128 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" identifier = (binary_expression "unaff_s7 + 0x1b44" identifier + number_literal)) ;) (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar3 = (*pcVar26)(pcStack_120);" (assignment_expression "iVar3 = (*pcVar26)(pcStack_120)" identifier = (call_expression "(*pcVar26)(pcStack_120)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(pcStack_120)" ( identifier )))) ;) (expression_statement "pcVar7 = pcStack_120 + iVar3;" (assignment_expression "pcVar7 = pcStack_120 + iVar3" identifier = (binary_expression "pcStack_120 + iVar3" identifier + identifier)) ;) (expression_statement "piVar18 = (int *)(int)*pcVar7;" (assignment_expression "piVar18 = (int *)(int)*pcVar7" identifier = (cast_expression "(int *)(int)*pcVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar7" * identifier)))) ;) (expression_statement "piStack_11c = piVar18;" (assignment_expression "piStack_11c = piVar18" identifier = identifier) ;) (if_statement "if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;" if (parenthesized_expression "(piVar18 != (int *)&DAT_00000020)" ( (binary_expression "piVar18 != (int *)&DAT_00000020" identifier != (cast_expression "(int *)&DAT_00000020" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000020" & identifier))) )) (goto_statement "goto LAB_00039a0c;" goto statement_identifier ;)) (expression_statement "pcVar27 = pcVar7 + 1;" (assignment_expression "pcVar27 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7bac);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7bac)" identifier = (pointer_expression "*(code **)(puStack_128 + -0x7bac)" * (cast_expression "(code **)(puStack_128 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7bac)" ( (binary_expression "puStack_128 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" identifier = (binary_expression "unaff_s7 + 0x1b44" identifier + number_literal)) ;) (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar3 = (*pcVar26)(pcVar27);" (assignment_expression "iVar3 = (*pcVar26)(pcVar27)" identifier = (call_expression "(*pcVar26)(pcVar27)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "pcVar7 = pcStack_120;" (assignment_expression "pcVar7 = pcStack_120" identifier = identifier) ;) (expression_statement "pcVar8 = pcVar27 + iVar3;" (assignment_expression "pcVar8 = pcVar27 + iVar3" identifier = (binary_expression "pcVar27 + iVar3" identifier + identifier)) ;) (if_statement "if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" if (parenthesized_expression "((int *)(int)*pcVar8 == (int *)0x0)" ( (binary_expression "(int *)(int)*pcVar8 == (int *)0x0" (cast_expression "(int *)(int)*pcVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar8" * identifier))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcStack_120 = (char *)0x0;\n        }" { (expression_statement "pcStack_120 = (char *)0x0;" (assignment_expression "pcStack_120 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" else (compound_statement "{\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" { (expression_statement "piVar18 = piStack_11c;" (assignment_expression "piVar18 = piStack_11c" identifier = identifier) ;) (if_statement "if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;" if (parenthesized_expression "((int *)(int)*pcVar8 != piStack_11c)" ( (binary_expression "(int *)(int)*pcVar8 != piStack_11c" (cast_expression "(int *)(int)*pcVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pcVar8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar8" * identifier))) != identifier) )) (goto_statement "goto LAB_00039a0c;" goto statement_identifier ;)) (expression_statement "pcStack_120 = pcVar8 + 1;" (assignment_expression "pcStack_120 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar8 = '\0';" (assignment_expression "*pcVar8 = '\0'" (pointer_expression "*pcVar8" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "unaff_s7 = aiStack_114 + 1;" (assignment_expression "unaff_s7 = aiStack_114 + 1" identifier = (binary_expression "aiStack_114 + 1" identifier + number_literal)) ;) (expression_statement "aiStack_114[1] = 0;" (assignment_expression "aiStack_114[1] = 0" (subscript_expression "aiStack_114[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[2] = 0;" (assignment_expression "aiStack_114[2] = 0" (subscript_expression "aiStack_114[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[3] = 0;" (assignment_expression "aiStack_114[3] = 0" (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[4] = 0;" (assignment_expression "aiStack_114[4] = 0" (subscript_expression "aiStack_114[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[5] = 0;" (assignment_expression "aiStack_114[5] = 0" (subscript_expression "aiStack_114[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[6] = 0;" (assignment_expression "aiStack_114[6] = 0" (subscript_expression "aiStack_114[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[7] = 0;" (assignment_expression "aiStack_114[7] = 0" (subscript_expression "aiStack_114[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[8] = 0;" (assignment_expression "aiStack_114[8] = 0" (subscript_expression "aiStack_114[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[9] = 0;" (assignment_expression "aiStack_114[9] = 0" (subscript_expression "aiStack_114[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[4] = bignum_from_decimal(pcVar7);" (assignment_expression "aiStack_114[4] = bignum_from_decimal(pcVar7)" (subscript_expression "aiStack_114[4]" identifier [ number_literal ]) = (call_expression "bignum_from_decimal(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "aiStack_114[3] = bignum_from_decimal(pcVar27);" (assignment_expression "aiStack_114[3] = bignum_from_decimal(pcVar27)" (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) = (call_expression "bignum_from_decimal(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "piVar18 = (int *)0xa;" (assignment_expression "piVar18 = (int *)0xa" identifier = (cast_expression "(int *)0xa" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4)" identifier = (call_expression "(**(code **)(puStack_128 + -0x7b9c))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b9c))" ( (pointer_expression "**(code **)(puStack_128 + -0x7b9c)" * (pointer_expression "*(code **)(puStack_128 + -0x7b9c)" * (cast_expression "(code **)(puStack_128 + -0x7b9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7b9c)" ( (binary_expression "puStack_128 + -0x7b9c" identifier + number_literal) ))))) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "iVar9 = bignum_bitcount(aiStack_114[3]);" (assignment_expression "iVar9 = bignum_bitcount(aiStack_114[3])" identifier = (call_expression "bignum_bitcount(aiStack_114[3])" identifier (argument_list "(aiStack_114[3])" ( (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }" if (parenthesized_expression "(iVar9 == iVar3)" ( (binary_expression "iVar9 == iVar3" identifier == identifier) )) (compound_statement "{\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }" { (if_statement "if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }" { (expression_statement "pcVar7 = pcStack_120;" (assignment_expression "pcVar7 = pcStack_120" identifier = identifier) ;) (if_statement "if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }" if (parenthesized_expression "(pcStack_120 != (char *)0x0)" ( (binary_expression "pcStack_120 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }" { (expression_statement "pcVar7 = (char *)dupstr(pcStack_120);" (assignment_expression "pcVar7 = (char *)dupstr(pcStack_120)" identifier = (cast_expression "(char *)dupstr(pcStack_120)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dupstr(pcStack_120)" identifier (argument_list "(pcStack_120)" ( identifier ))))) ;) })) (expression_statement "*param_4 = pcVar7;" (assignment_expression "*param_4 = pcVar7" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" identifier = identifier) ;) (expression_statement "uVar6 = rsa_public_blob(unaff_s7);" (assignment_expression "uVar6 = rsa_public_blob(unaff_s7)" identifier = (call_expression "rsa_public_blob(unaff_s7)" identifier (argument_list "(unaff_s7)" ( identifier )))) ;) (expression_statement "*puVar15 = uVar6;" (assignment_expression "*puVar15 = uVar6" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "freersakey(unaff_s7);" (call_expression "freersakey(unaff_s7)" identifier (argument_list "(unaff_s7)" ( identifier ))) ;) (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "(**(code **)(puStack_128 + -0x7b68))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7b68))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b68))" ( (pointer_expression "**(code **)(puStack_128 + -0x7b68)" * (pointer_expression "*(code **)(puStack_128 + -0x7b68)" * (cast_expression "(code **)(puStack_128 + -0x7b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7b68)" ( (binary_expression "puStack_128 + -0x7b68" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00039a44;" goto statement_identifier ;) })) (expression_statement "freebn(aiStack_114[4]);" (call_expression "freebn(aiStack_114[4])" identifier (argument_list "(aiStack_114[4])" ( (subscript_expression "aiStack_114[4]" identifier [ number_literal ]) ))) ;) (expression_statement "freebn(aiStack_114[3]);" (call_expression "freebn(aiStack_114[3])" identifier (argument_list "(aiStack_114[3])" ( (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) ))) ;) (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c" (subscript_expression "aiStack_114[0]" identifier [ number_literal ]) = (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6d1c" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" * (cast_expression "(int *)(puStack_128 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" else (compound_statement "{\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" { (labeled_statement "LAB_00039a0c:\n        safefree(unaff_s4);" statement_identifier : (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier ))) ;)) (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8" (subscript_expression "aiStack_114[0]" identifier [ number_literal ]) = (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cf8" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" * (cast_expression "(int *)(puStack_128 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_128 + -0x7fc8)" ( (binary_expression "puStack_128 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "(**(code **)(puStack_128 + -0x7b68))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7b68))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b68))" ( (pointer_expression "**(code **)(puStack_128 + -0x7b68)" * (pointer_expression "*(code **)(puStack_128 + -0x7b68)" * (cast_expression "(code **)(puStack_128 + -0x7b68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7b68)" ( (binary_expression "puStack_128 + -0x7b68" identifier + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (goto_statement "goto LAB_00039a34;" goto statement_identifier ;) })) (expression_statement "piStack_12c = aiStack_114;" (assignment_expression "piStack_12c = aiStack_114" identifier = identifier) ;) (expression_statement "unaff_s4 = aiStack_114 + 1;" (assignment_expression "unaff_s4 = aiStack_114 + 1" identifier = (binary_expression "aiStack_114 + 1" identifier + number_literal)) ;) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" identifier = number_literal) ;) (expression_statement "piVar18 = (int *)0x1;" (assignment_expression "piVar18 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aiStack_114[1] = 0;" (assignment_expression "aiStack_114[1] = 0" (subscript_expression "aiStack_114[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[2] = 0;" (assignment_expression "aiStack_114[2] = 0" (subscript_expression "aiStack_114[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[3] = 0;" (assignment_expression "aiStack_114[3] = 0" (subscript_expression "aiStack_114[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[4] = 0;" (assignment_expression "aiStack_114[4] = 0" (subscript_expression "aiStack_114[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[5] = 0;" (assignment_expression "aiStack_114[5] = 0" (subscript_expression "aiStack_114[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[6] = 0;" (assignment_expression "aiStack_114[6] = 0" (subscript_expression "aiStack_114[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[7] = 0;" (assignment_expression "aiStack_114[7] = 0" (subscript_expression "aiStack_114[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[8] = 0;" (assignment_expression "aiStack_114[8] = 0" (subscript_expression "aiStack_114[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_114[9] = 0;" (assignment_expression "aiStack_114[9] = 0" (subscript_expression "aiStack_114[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2 = unaff_s4;" (assignment_expression "piVar2 = unaff_s4" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);" (assignment_expression "iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4)" identifier = (call_expression "FUN_00038b60(piVar5,unaff_s4,1,param_4)" identifier (argument_list "(piVar5,unaff_s4,1,param_4)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 == 0) goto LAB_00039a34;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00039a34;" goto statement_identifier ;)) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" identifier = identifier) ;) (expression_statement "uVar6 = rsa_public_blob(unaff_s4);" (assignment_expression "uVar6 = rsa_public_blob(unaff_s4)" identifier = (call_expression "rsa_public_blob(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "*puVar15 = uVar6;" (assignment_expression "*puVar15 = uVar6" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "freersakey(unaff_s4);" (call_expression "freersakey(unaff_s4)" identifier (argument_list "(unaff_s4)" ( identifier ))) ;) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }" statement_identifier : (if_statement "if (iStack_ac == *piVar21) {\n    return uVar4;\n  }" if (parenthesized_expression "(iStack_ac == *piVar21)" ( (binary_expression "iStack_ac == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7abc);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7abc)" identifier = (pointer_expression "*(code **)(puStack_128 + -0x7abc)" * (cast_expression "(code **)(puStack_128 + -0x7abc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_128 + -0x7abc)" ( (binary_expression "puStack_128 + -0x7abc" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = saversakey;" (assignment_expression "pcVar28 = saversakey" identifier = identifier) ;) (expression_statement "iVar3 = iStack_ac;" (assignment_expression "iVar3 = iStack_ac" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = *(int *)(pcVar26 + 0x3038c);" (assignment_expression "iVar9 = *(int *)(pcVar26 + 0x3038c)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x3038c)" * (cast_expression "(int *)(pcVar26 + 0x3038c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3038c)" ( (binary_expression "pcVar26 + 0x3038c" identifier + number_literal) ))))) ;) (expression_statement "piStack_150 = local_70;" (assignment_expression "piStack_150 = local_70" identifier = identifier) ;) (expression_statement "piVar22 = *(int **)(pcVar26 + 0x308b8);" (assignment_expression "piVar22 = *(int **)(pcVar26 + 0x308b8)" identifier = (pointer_expression "*(int **)(pcVar26 + 0x308b8)" * (cast_expression "(int **)(pcVar26 + 0x308b8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x308b8)" ( (binary_expression "pcVar26 + 0x308b8" identifier + number_literal) ))))) ;) (expression_statement "iStack_16c = *piVar22;" (assignment_expression "iStack_16c = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x6cd4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x6cd4)" identifier = (cast_expression "(undefined4 *)(iVar9 + 0x6cd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x6cd4)" ( (binary_expression "iVar9 + 0x6cd4" identifier + number_literal) )))) ;) (expression_statement "puVar13 = auStack_416c;" (assignment_expression "puVar13 = auStack_416c" identifier = identifier) ;) (do_statement "do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));" do (compound_statement "{\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  }" { (expression_statement "puVar11 = puVar10 + 4;" (assignment_expression "puVar11 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar13 + 4;" (assignment_expression "puVar14 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "*puVar13 = *puVar10;" (assignment_expression "*puVar13 = *puVar10" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar16 = puVar10[2];" (assignment_expression "uVar16 = puVar10[2]" identifier = (subscript_expression "puVar10[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar10[3];" (assignment_expression "uVar6 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (expression_statement "puVar13[1] = puVar10[1];" (assignment_expression "puVar13[1] = puVar10[1]" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = (subscript_expression "puVar10[1]" identifier [ number_literal ])) ;) (expression_statement "puVar13[2] = uVar16;" (assignment_expression "puVar13[2] = uVar16" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar6;" (assignment_expression "puVar13[3] = uVar6" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" identifier = identifier) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != (undefined4 *)(iVar9 + 0x6cf4))" ( (binary_expression "puVar11 != (undefined4 *)(iVar9 + 0x6cf4)" identifier != (cast_expression "(undefined4 *)(iVar9 + 0x6cf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x6cf4)" ( (binary_expression "iVar9 + 0x6cf4" identifier + number_literal) )))) )) ;) (expression_statement "uVar12 = 3;" (assignment_expression "uVar12 = 3" identifier = number_literal) ;) (if_statement "if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar12 = 0;\n  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) })) (expression_statement "iVar9 = piVar2[2];" (assignment_expression "iVar9 = piVar2[2]" identifier = (subscript_expression "piVar2[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar14 = *(undefined1 *)puVar11;" (assignment_expression "*(undefined1 *)puVar14 = *(undefined1 *)puVar11" (pointer_expression "*(undefined1 *)puVar14" * (cast_expression "(undefined1 *)puVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar11" * (cast_expression "(undefined1 *)puVar11" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uStack_414a = 0;" (assignment_expression "uStack_414a = 0" identifier = number_literal) ;) (expression_statement "uStack_4148 = 0;" (assignment_expression "uStack_4148 = 0" identifier = number_literal) ;) (expression_statement "uStack_414b = uVar12;" (assignment_expression "uStack_414b = uVar12" identifier = identifier) ;) (expression_statement "piStack_164 = piVar5;" (assignment_expression "piStack_164 = piVar5" identifier = identifier) ;) (expression_statement "piStack_160 = piVar21;" (assignment_expression "piStack_160 = piVar21" identifier = identifier) ;) (expression_statement "puStack_15c = puVar15;" (assignment_expression "puStack_15c = puVar15" identifier = identifier) ;) (expression_statement "piStack_158 = piVar17;" (assignment_expression "piStack_158 = piVar17" identifier = identifier) ;) (expression_statement "piStack_154 = unaff_s4;" (assignment_expression "piStack_154 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_14c = param_4;" (assignment_expression "puStack_14c = param_4" identifier = identifier) ;) (expression_statement "piStack_148 = unaff_s7;" (assignment_expression "piStack_148 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_144 = pcVar28;" (assignment_expression "pcStack_144 = pcVar28" identifier = identifier) ;) (expression_statement "bignum_bitcount(iVar9);" (call_expression "bignum_bitcount(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))) ;) (expression_statement "uStack_4146 = extraout_var;" (assignment_expression "uStack_4146 = extraout_var" identifier = identifier) ;) (expression_statement "bignum_bitcount(piVar2[2]);" (call_expression "bignum_bitcount(piVar2[2])" identifier (argument_list "(piVar2[2])" ( (subscript_expression "piVar2[2]" identifier [ number_literal ]) ))) ;) (expression_statement "uStack_4145 = extraout_var_01;" (assignment_expression "uStack_4145 = extraout_var_01" identifier = identifier) ;) (expression_statement "bignum_bitcount(piVar2[2]);" (call_expression "bignum_bitcount(piVar2[2])" identifier (argument_list "(piVar2[2])" ( (subscript_expression "piVar2[2]" identifier [ number_literal ]) ))) ;) (expression_statement "uStack_4144 = extraout_var_03;" (assignment_expression "uStack_4144 = extraout_var_03" identifier = identifier) ;) (expression_statement "uStack_4143 = bignum_bitcount(piVar2[2]);" (assignment_expression "uStack_4143 = bignum_bitcount(piVar2[2])" identifier = (call_expression "bignum_bitcount(piVar2[2])" identifier (argument_list "(piVar2[2])" ( (subscript_expression "piVar2[2]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);" (assignment_expression "iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2])" identifier = (call_expression "ssh1_write_bignum(auStack_4142,piVar2[2])" identifier (argument_list "(auStack_4142,piVar2[2])" ( identifier , (subscript_expression "piVar2[2]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar19 = auStack_4142 + iVar9;" (assignment_expression "puVar19 = auStack_4142 + iVar9" identifier = (binary_expression "auStack_4142 + iVar9" identifier + identifier)) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[3])" identifier = (call_expression "ssh1_write_bignum(puVar19,piVar2[3])" identifier (argument_list "(puVar19,piVar2[3])" ( identifier , (subscript_expression "piVar2[3]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar24 = piVar2[8];" (assignment_expression "iVar24 = piVar2[8]" identifier = (subscript_expression "piVar2[8]" identifier [ number_literal ])) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (if_statement "if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }" { (expression_statement "puVar23 = puVar19 + 4;" (assignment_expression "puVar23 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[2] = 0;" (assignment_expression "puVar19[2] = 0" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[3] = 0;" (assignment_expression "puVar19[3] = 0" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" else (compound_statement "{\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" { (expression_statement "(**(code **)(pcVar26 + 0x30840))(iVar24);" (call_expression "(**(code **)(pcVar26 + 0x30840))(iVar24)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "*puVar19 = extraout_var_00;" (assignment_expression "*puVar19 = extraout_var_00" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar19[1] = extraout_var_02;" (assignment_expression "puVar19[1] = extraout_var_02" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier ))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar19[2] = extraout_var_04;" (assignment_expression "puVar19[2] = extraout_var_04" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = (*pcVar28)(iVar24);" (assignment_expression "uVar12 = (*pcVar28)(iVar24)" identifier = (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier )))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) ;) (expression_statement "puVar19[3] = uVar12;" (assignment_expression "puVar19[3] = uVar12" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar6 = (*pcVar28)(iVar24);" (assignment_expression "uVar6 = (*pcVar28)(iVar24)" identifier = (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(iVar24)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);" (call_expression "(**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6)" (parenthesized_expression "(**(code **)(pcVar26 + 0x308bc))" ( (pointer_expression "**(code **)(pcVar26 + 0x308bc)" * (pointer_expression "*(code **)(pcVar26 + 0x308bc)" * (cast_expression "(code **)(pcVar26 + 0x308bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x308bc)" ( (binary_expression "pcVar26 + 0x308bc" identifier + number_literal) ))))) )) (argument_list "(puVar19 + 4,iVar24,uVar6)" ( (binary_expression "puVar19 + 4" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);" (assignment_expression "iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30840))(iVar24)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(iVar24)" ( identifier )))) ;) (expression_statement "puVar23 = puVar19 + 4 + iVar9;" (assignment_expression "puVar23 = puVar19 + 4 + iVar9" identifier = (binary_expression "puVar19 + 4 + iVar9" (binary_expression "puVar19 + 4" identifier + number_literal) + identifier)) ;) }))) (expression_statement "puVar19 = puVar23 + 4;" (assignment_expression "puVar19 = puVar23 + 4" identifier = (binary_expression "puVar23 + 4" identifier + number_literal)) ;) (expression_statement "uVar12 = random_byte();" (assignment_expression "uVar12 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "*puVar23 = uVar12;" (assignment_expression "*puVar23 = uVar12" (pointer_expression "*puVar23" * identifier) = identifier) ;) (expression_statement "uVar12 = random_byte();" (assignment_expression "uVar12 = random_byte()" identifier = (call_expression "random_byte()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar9 = piVar2[4];" (assignment_expression "iVar9 = piVar2[4]" identifier = (subscript_expression "piVar2[4]" identifier [ number_literal ])) ;) (expression_statement "puVar23[1] = uVar12;" (assignment_expression "puVar23[1] = uVar12" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = *puVar23;" (assignment_expression "puVar23[2] = *puVar23" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "puVar23[3] = uVar12;" (assignment_expression "puVar23[3] = uVar12" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,iVar9);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,iVar9)" identifier = (call_expression "ssh1_write_bignum(puVar19,iVar9)" identifier (argument_list "(puVar19,iVar9)" ( identifier , identifier )))) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[7])" identifier = (call_expression "ssh1_write_bignum(puVar19,piVar2[7])" identifier (argument_list "(puVar19,piVar2[7])" ( identifier , (subscript_expression "piVar2[7]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[6])" identifier = (call_expression "ssh1_write_bignum(puVar19,piVar2[6])" identifier (argument_list "(puVar19,piVar2[6])" ( identifier , (subscript_expression "piVar2[6]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[5])" identifier = (call_expression "ssh1_write_bignum(puVar19,piVar2[5])" identifier (argument_list "(puVar19,piVar2[5])" ( identifier , (subscript_expression "piVar2[5]" identifier [ number_literal ]) )))) ;) (expression_statement "uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;" (assignment_expression "uVar4 = (int)(puVar19 + iVar9) - (int)puVar23" identifier = (binary_expression "(int)(puVar19 + iVar9) - (int)puVar23" (cast_expression "(int)(puVar19 + iVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar19 + iVar9)" ( (binary_expression "puVar19 + iVar9" identifier + identifier) ))) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" identifier = (binary_expression "puVar19 + iVar9" identifier + identifier)) ;) (while_statement "while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }" while (parenthesized_expression "((uVar4 & 7) != 0)" ( (binary_expression "(uVar4 & 7) != 0" (parenthesized_expression "(uVar4 & 7)" ( (binary_expression "uVar4 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }" { (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "uVar4 = (int)(puVar19 + 1) - (int)puVar23;" (assignment_expression "uVar4 = (int)(puVar19 + 1) - (int)puVar23" identifier = (binary_expression "(int)(puVar19 + 1) - (int)puVar23" (cast_expression "(int)(puVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar19 + 1)" ( (binary_expression "puVar19 + 1" identifier + number_literal) ))) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) })) (if_statement "if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }" if (parenthesized_expression "(piVar18 != (int *)0x0)" ( (binary_expression "piVar18 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }" { (expression_statement "MD5Init(auStack_41d8);" (call_expression "MD5Init(auStack_41d8)" identifier (argument_list "(auStack_41d8)" ( identifier ))) ;) (expression_statement "uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);" (assignment_expression "uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30840))(piVar18)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" ( (pointer_expression "**(code **)(pcVar26 + 0x30840)" * (pointer_expression "*(code **)(pcVar26 + 0x30840)" * (cast_expression "(code **)(pcVar26 + 0x30840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30840)" ( (binary_expression "pcVar26 + 0x30840" identifier + number_literal) ))))) )) (argument_list "(piVar18)" ( identifier )))) ;) (expression_statement "MD5Update(auStack_41d8,piVar18,uVar6);" (call_expression "MD5Update(auStack_41d8,piVar18,uVar6)" identifier (argument_list "(auStack_41d8,piVar18,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "MD5Final(auStack_417c,auStack_41d8);" (call_expression "MD5Final(auStack_417c,auStack_41d8)" identifier (argument_list "(auStack_417c,auStack_41d8)" ( identifier , identifier ))) ;) (expression_statement "des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);" (call_expression "des3_encrypt_pubkey(auStack_417c,puVar23,uVar4)" identifier (argument_list "(auStack_417c,puVar23,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "smemclr(auStack_417c,0x10);" (call_expression "smemclr(auStack_417c,0x10)" identifier (argument_list "(auStack_417c,0x10)" ( identifier , number_literal ))) ;) })) (expression_statement "iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;" (assignment_expression "iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c" identifier = (binary_expression "*(int *)(pcVar26 + 0x3038c) + -0x195c" (pointer_expression "*(int *)(pcVar26 + 0x3038c)" * (cast_expression "(int *)(pcVar26 + 0x3038c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3038c)" ( (binary_expression "pcVar26 + 0x3038c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar3 = f_open(iVar3,iVar9,1);" (assignment_expression "iVar3 = f_open(iVar3,iVar9,1)" identifier = (call_expression "f_open(iVar3,iVar9,1)" identifier (argument_list "(iVar3,iVar9,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }" { (expression_statement "iVar20 = (int)puVar19 - (int)auStack_416c;" (assignment_expression "iVar20 = (int)puVar19 - (int)auStack_416c" identifier = (binary_expression "(int)puVar19 - (int)auStack_416c" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)auStack_416c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);" (assignment_expression "iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3)" identifier = (call_expression "(**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30880))" ( (pointer_expression "**(code **)(pcVar26 + 0x30880)" * (pointer_expression "*(code **)(pcVar26 + 0x30880)" * (cast_expression "(code **)(pcVar26 + 0x30880)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30880)" ( (binary_expression "pcVar26 + 0x30880" identifier + number_literal) ))))) )) (argument_list "(auStack_416c,1,iVar20,iVar3)" ( identifier , number_literal , identifier , identifier )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3)" identifier = (call_expression "(**(code **)(pcVar26 + 0x307ec))(iVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x307ec))" ( (pointer_expression "**(code **)(pcVar26 + 0x307ec)" * (pointer_expression "*(code **)(pcVar26 + 0x307ec)" * (cast_expression "(code **)(pcVar26 + 0x307ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x307ec)" ( (binary_expression "pcVar26 + 0x307ec" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }" { (expression_statement "uVar4 = (uint)(iVar20 == iVar24);" (assignment_expression "uVar4 = (uint)(iVar20 == iVar24)" identifier = (call_expression "(uint)(iVar20 == iVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar20 == iVar24)" ( (binary_expression "iVar20 == iVar24" identifier == identifier) )))) ;) (goto_statement "goto LAB_0003a054;" goto statement_identifier ;) })) })) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }" statement_identifier : (if_statement "if (iStack_16c == *piVar22) {\n    return uVar4;\n  }" if (parenthesized_expression "(iStack_16c == *piVar22)" ( (binary_expression "iStack_16c == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "pcVar26 = *(code **)(pcVar26 + 0x30898);" (assignment_expression "pcVar26 = *(code **)(pcVar26 + 0x30898)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x30898)" * (cast_expression "(code **)(pcVar26 + 0x30898)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x30898)" ( (binary_expression "pcVar26 + 0x30898" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iStack_16c;" (assignment_expression "iVar3 = iStack_16c" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar24 = match_ssh_id();" (assignment_expression "iVar24 = match_ssh_id()" identifier = (call_expression "match_ssh_id()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }" { (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + -0x1ac8" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n      return *(uint *)(pcVar26 + 0x30070);\n    }" { (return_statement "return *(uint *)(pcVar26 + 0x30070);" return (pointer_expression "*(uint *)(pcVar26 + 0x30070)" * (cast_expression "(uint *)(pcVar26 + 0x30070)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30070)" ( (binary_expression "pcVar26 + 0x30070" identifier + number_literal) )))) ;) })) (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3330" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n      return *(uint *)(pcVar26 + 0x30124);\n    }" { (return_statement "return *(uint *)(pcVar26 + 0x30124);" return (pointer_expression "*(uint *)(pcVar26 + 0x30124)" * (cast_expression "(uint *)(pcVar26 + 0x30124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30124)" ( (binary_expression "pcVar26 + 0x30124" identifier + number_literal) )))) ;) })) (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x331c" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }" { (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3308" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }" { (expression_statement "iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);" (assignment_expression "iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" identifier = (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" identifier (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" ( identifier , identifier , (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3344" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" * (cast_expression "(int *)(pcVar26 + 0x2ffac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x2ffac)" ( (binary_expression "pcVar26 + 0x2ffac" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30068);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30068)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0x30068)" * (cast_expression "(uint *)(pcVar26 + 0x30068)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30068)" ( (binary_expression "pcVar26 + 0x30068" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n          uVar4 = 0;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar4 = 0;\n        }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" else (compound_statement "{\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" { (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x3012c);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x3012c)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0x3012c)" * (cast_expression "(uint *)(pcVar26 + 0x3012c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x3012c)" ( (binary_expression "pcVar26 + 0x3012c" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" else (compound_statement "{\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" { (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30128);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30128)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0x30128)" * (cast_expression "(uint *)(pcVar26 + 0x30128)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30128)" ( (binary_expression "pcVar26 + 0x30128" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" else (compound_statement "{\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" { (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30048);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30048)" identifier = (pointer_expression "*(uint *)(pcVar26 + 0x30048)" * (cast_expression "(uint *)(pcVar26 + 0x30048)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x30048)" ( (binary_expression "pcVar26 + 0x30048" identifier + number_literal) ))))) ;) }))) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 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 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 (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 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 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 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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)) ;) (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto 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 = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (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 = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) }) (else_clause else (compound_statement { (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 ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (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) ))))) ;) (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 ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (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 )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (goto_statement goto statement_identifier ;)) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_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)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = (binary_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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 = (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 )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (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 ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 ( (binary_expression IDENT + LIT) , 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 )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = 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 , 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)\n\n{\n  undefined *puVar1;\n  undefined1 extraout_var;\n  undefined1 extraout_var_00;\n  undefined1 extraout_var_01;\n  undefined1 extraout_var_02;\n  undefined1 extraout_var_03;\n  undefined1 extraout_var_04;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined1 uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *unaff_s0;\n  undefined1 *puVar19;\n  int iVar20;\n  int *piVar21;\n  undefined1 *unaff_s2;\n  int *piVar22;\n  int *unaff_s4;\n  undefined1 *puVar23;\n  int *unaff_s7;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  char *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_41d8 [92];\n  undefined1 auStack_417c [16];\n  undefined4 auStack_416c [4];\n  undefined1 auStack_415c [17];\n  undefined1 uStack_414b;\n  undefined2 uStack_414a;\n  undefined2 uStack_4148;\n  undefined1 uStack_4146;\n  undefined1 uStack_4145;\n  undefined1 uStack_4144;\n  undefined1 uStack_4143;\n  undefined1 auStack_4142 [16342];\n  int iStack_16c;\n  int *piStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  int *piStack_150;\n  undefined4 *puStack_14c;\n  int *piStack_148;\n  code *pcStack_144;\n  undefined4 uStack_130;\n  int *piStack_12c;\n  undefined *puStack_128;\n  char *pcStack_120;\n  int *piStack_11c;\n  int aiStack_114 [10];\n  undefined1 auStack_ec [64];\n  int iStack_ac;\n  int *piStack_a8;\n  undefined *puStack_a4;\n  undefined1 *puStack_a0;\n  undefined4 *puStack_9c;\n  int *local_70;\n  undefined1 auStack_5c [64];\n  int local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  piVar17 = (int *)0x0;\n  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);\n  local_1c = *(int *)PTR___stack_chk_guard_0006a594;\n  piVar2 = (int *)f_open();\n  if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }\nLAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_128 = puVar25 + 0x38744;\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  piVar18 = (int *)0x0;\n  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  aiStack_114[0] = 0;\n  iStack_ac = *piVar21;\n  *puVar15 = 0;\n  *piVar17 = 0;\n  piStack_a8 = unaff_s0;\n  puStack_a0 = unaff_s2;\n  puStack_9c = param_2;\n  piVar5 = (int *)f_open();\n  if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }\nLAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(puStack_128 + -0x7abc);\n  pcVar28 = saversakey;\n  iVar3 = iStack_ac;\n  (*pcVar26)();\n  iVar9 = *(int *)(pcVar26 + 0x3038c);\n  piStack_150 = local_70;\n  piVar22 = *(int **)(pcVar26 + 0x308b8);\n  iStack_16c = *piVar22;\n  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);\n  puVar13 = auStack_416c;\n  do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));\n  uVar12 = 3;\n  if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }\n  iVar9 = piVar2[2];\n  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;\n  uStack_414a = 0;\n  uStack_4148 = 0;\n  uStack_414b = uVar12;\n  piStack_164 = piVar5;\n  piStack_160 = piVar21;\n  puStack_15c = puVar15;\n  piStack_158 = piVar17;\n  piStack_154 = unaff_s4;\n  puStack_14c = param_4;\n  piStack_148 = unaff_s7;\n  pcStack_144 = pcVar28;\n  bignum_bitcount(iVar9);\n  uStack_4146 = extraout_var;\n  bignum_bitcount(piVar2[2]);\n  uStack_4145 = extraout_var_01;\n  bignum_bitcount(piVar2[2]);\n  uStack_4144 = extraout_var_03;\n  uStack_4143 = bignum_bitcount(piVar2[2]);\n  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);\n  puVar19 = auStack_4142 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);\n  iVar24 = piVar2[8];\n  puVar19 = puVar19 + iVar9;\n  if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }\n  puVar19 = puVar23 + 4;\n  uVar12 = random_byte();\n  *puVar23 = uVar12;\n  uVar12 = random_byte();\n  iVar9 = piVar2[4];\n  puVar23[1] = uVar12;\n  puVar23[2] = *puVar23;\n  puVar23[3] = uVar12;\n  iVar9 = ssh1_write_bignum(puVar19,iVar9);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);\n  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;\n  puVar19 = puVar19 + iVar9;\n  while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }\n  if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }\n  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;\n  iVar3 = f_open(iVar3,iVar9,1);\n  if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }\n  uVar4 = 0;\nLAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar3 = iStack_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id();\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }\n  return uVar4;\n}" (type_identifier "uint") (function_declarator "rsakey_encrypted(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)" (identifier "rsakey_encrypted") (parameter_list "(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (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") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined1 extraout_var;\n  undefined1 extraout_var_00;\n  undefined1 extraout_var_01;\n  undefined1 extraout_var_02;\n  undefined1 extraout_var_03;\n  undefined1 extraout_var_04;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined1 uVar12;\n  undefined4 *puVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int *piVar18;\n  int *unaff_s0;\n  undefined1 *puVar19;\n  int iVar20;\n  int *piVar21;\n  undefined1 *unaff_s2;\n  int *piVar22;\n  int *unaff_s4;\n  undefined1 *puVar23;\n  int *unaff_s7;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  char *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_41d8 [92];\n  undefined1 auStack_417c [16];\n  undefined4 auStack_416c [4];\n  undefined1 auStack_415c [17];\n  undefined1 uStack_414b;\n  undefined2 uStack_414a;\n  undefined2 uStack_4148;\n  undefined1 uStack_4146;\n  undefined1 uStack_4145;\n  undefined1 uStack_4144;\n  undefined1 uStack_4143;\n  undefined1 auStack_4142 [16342];\n  int iStack_16c;\n  int *piStack_164;\n  int *piStack_160;\n  undefined4 *puStack_15c;\n  int *piStack_158;\n  int *piStack_154;\n  int *piStack_150;\n  undefined4 *puStack_14c;\n  int *piStack_148;\n  code *pcStack_144;\n  undefined4 uStack_130;\n  int *piStack_12c;\n  undefined *puStack_128;\n  char *pcStack_120;\n  int *piStack_11c;\n  int aiStack_114 [10];\n  undefined1 auStack_ec [64];\n  int iStack_ac;\n  int *piStack_a8;\n  undefined *puStack_a4;\n  undefined1 *puStack_a0;\n  undefined4 *puStack_9c;\n  int *local_70;\n  undefined1 auStack_5c [64];\n  int local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_0006a594;\n  piVar17 = (int *)0x0;\n  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);\n  local_1c = *(int *)PTR___stack_chk_guard_0006a594;\n  piVar2 = (int *)f_open();\n  if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }\nLAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }\n  puVar25 = PTR___stack_chk_fail_0006a574;\n  (*(code *)PTR___stack_chk_fail_0006a574)();\n  puStack_128 = puVar25 + 0x38744;\n  puStack_a4 = puVar1;\n  piVar21 = *(int **)(puVar25 + 0x30ca8);\n  piVar18 = (int *)0x0;\n  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);\n  aiStack_114[0] = 0;\n  iStack_ac = *piVar21;\n  *puVar15 = 0;\n  *piVar17 = 0;\n  piStack_a8 = unaff_s0;\n  puStack_a0 = unaff_s2;\n  puStack_9c = param_2;\n  piVar5 = (int *)f_open();\n  if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }\nLAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(puStack_128 + -0x7abc);\n  pcVar28 = saversakey;\n  iVar3 = iStack_ac;\n  (*pcVar26)();\n  iVar9 = *(int *)(pcVar26 + 0x3038c);\n  piStack_150 = local_70;\n  piVar22 = *(int **)(pcVar26 + 0x308b8);\n  iStack_16c = *piVar22;\n  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);\n  puVar13 = auStack_416c;\n  do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));\n  uVar12 = 3;\n  if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }\n  iVar9 = piVar2[2];\n  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;\n  uStack_414a = 0;\n  uStack_4148 = 0;\n  uStack_414b = uVar12;\n  piStack_164 = piVar5;\n  piStack_160 = piVar21;\n  puStack_15c = puVar15;\n  piStack_158 = piVar17;\n  piStack_154 = unaff_s4;\n  puStack_14c = param_4;\n  piStack_148 = unaff_s7;\n  pcStack_144 = pcVar28;\n  bignum_bitcount(iVar9);\n  uStack_4146 = extraout_var;\n  bignum_bitcount(piVar2[2]);\n  uStack_4145 = extraout_var_01;\n  bignum_bitcount(piVar2[2]);\n  uStack_4144 = extraout_var_03;\n  uStack_4143 = bignum_bitcount(piVar2[2]);\n  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);\n  puVar19 = auStack_4142 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);\n  iVar24 = piVar2[8];\n  puVar19 = puVar19 + iVar9;\n  if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }\n  puVar19 = puVar23 + 4;\n  uVar12 = random_byte();\n  *puVar23 = uVar12;\n  uVar12 = random_byte();\n  iVar9 = piVar2[4];\n  puVar23[1] = uVar12;\n  puVar23[2] = *puVar23;\n  puVar23[3] = uVar12;\n  iVar9 = ssh1_write_bignum(puVar19,iVar9);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);\n  puVar19 = puVar19 + iVar9;\n  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);\n  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;\n  puVar19 = puVar19 + iVar9;\n  while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }\n  if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }\n  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;\n  iVar3 = f_open(iVar3,iVar9,1);\n  if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }\n  uVar4 = 0;\nLAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x30898);\n  iVar3 = iStack_16c;\n  (*pcVar26)();\n  iVar24 = match_ssh_id();\n  if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }\n  return uVar4;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined1 extraout_var;" (type_identifier "undefined1") (identifier "extraout_var") (; ";")) (declaration "undefined1 extraout_var_00;" (type_identifier "undefined1") (identifier "extraout_var_00") (; ";")) (declaration "undefined1 extraout_var_01;" (type_identifier "undefined1") (identifier "extraout_var_01") (; ";")) (declaration "undefined1 extraout_var_02;" (type_identifier "undefined1") (identifier "extraout_var_02") (; ";")) (declaration "undefined1 extraout_var_03;" (type_identifier "undefined1") (identifier "extraout_var_03") (; ";")) (declaration "undefined1 extraout_var_04;" (type_identifier "undefined1") (identifier "extraout_var_04") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined1 uVar12;" (type_identifier "undefined1") (identifier "uVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int *unaff_s0;" (primitive_type "int") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "undefined1 *puVar19;" (type_identifier "undefined1") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "undefined1 *unaff_s2;" (type_identifier "undefined1") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "int *unaff_s4;" (primitive_type "int") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "undefined1 *puVar23;" (type_identifier "undefined1") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int *unaff_s7;" (primitive_type "int") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "undefined *puVar25;" (type_identifier "undefined") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "char *pcVar27;" (primitive_type "char") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "undefined1 auStack_41d8 [92];" (type_identifier "undefined1") (array_declarator "auStack_41d8 [92]" (identifier "auStack_41d8") ([ "[") (number_literal "92") (] "]")) (; ";")) (declaration "undefined1 auStack_417c [16];" (type_identifier "undefined1") (array_declarator "auStack_417c [16]" (identifier "auStack_417c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 auStack_416c [4];" (type_identifier "undefined4") (array_declarator "auStack_416c [4]" (identifier "auStack_416c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_415c [17];" (type_identifier "undefined1") (array_declarator "auStack_415c [17]" (identifier "auStack_415c") ([ "[") (number_literal "17") (] "]")) (; ";")) (declaration "undefined1 uStack_414b;" (type_identifier "undefined1") (identifier "uStack_414b") (; ";")) (declaration "undefined2 uStack_414a;" (type_identifier "undefined2") (identifier "uStack_414a") (; ";")) (declaration "undefined2 uStack_4148;" (type_identifier "undefined2") (identifier "uStack_4148") (; ";")) (declaration "undefined1 uStack_4146;" (type_identifier "undefined1") (identifier "uStack_4146") (; ";")) (declaration "undefined1 uStack_4145;" (type_identifier "undefined1") (identifier "uStack_4145") (; ";")) (declaration "undefined1 uStack_4144;" (type_identifier "undefined1") (identifier "uStack_4144") (; ";")) (declaration "undefined1 uStack_4143;" (type_identifier "undefined1") (identifier "uStack_4143") (; ";")) (declaration "undefined1 auStack_4142 [16342];" (type_identifier "undefined1") (array_declarator "auStack_4142 [16342]" (identifier "auStack_4142") ([ "[") (number_literal "16342") (] "]")) (; ";")) (declaration "int iStack_16c;" (primitive_type "int") (identifier "iStack_16c") (; ";")) (declaration "int *piStack_164;" (primitive_type "int") (pointer_declarator "*piStack_164" (* "*") (identifier "piStack_164")) (; ";")) (declaration "int *piStack_160;" (primitive_type "int") (pointer_declarator "*piStack_160" (* "*") (identifier "piStack_160")) (; ";")) (declaration "undefined4 *puStack_15c;" (type_identifier "undefined4") (pointer_declarator "*puStack_15c" (* "*") (identifier "puStack_15c")) (; ";")) (declaration "int *piStack_158;" (primitive_type "int") (pointer_declarator "*piStack_158" (* "*") (identifier "piStack_158")) (; ";")) (declaration "int *piStack_154;" (primitive_type "int") (pointer_declarator "*piStack_154" (* "*") (identifier "piStack_154")) (; ";")) (declaration "int *piStack_150;" (primitive_type "int") (pointer_declarator "*piStack_150" (* "*") (identifier "piStack_150")) (; ";")) (declaration "undefined4 *puStack_14c;" (type_identifier "undefined4") (pointer_declarator "*puStack_14c" (* "*") (identifier "puStack_14c")) (; ";")) (declaration "int *piStack_148;" (primitive_type "int") (pointer_declarator "*piStack_148" (* "*") (identifier "piStack_148")) (; ";")) (declaration "code *pcStack_144;" (type_identifier "code") (pointer_declarator "*pcStack_144" (* "*") (identifier "pcStack_144")) (; ";")) (declaration "undefined4 uStack_130;" (type_identifier "undefined4") (identifier "uStack_130") (; ";")) (declaration "int *piStack_12c;" (primitive_type "int") (pointer_declarator "*piStack_12c" (* "*") (identifier "piStack_12c")) (; ";")) (declaration "undefined *puStack_128;" (type_identifier "undefined") (pointer_declarator "*puStack_128" (* "*") (identifier "puStack_128")) (; ";")) (declaration "char *pcStack_120;" (primitive_type "char") (pointer_declarator "*pcStack_120" (* "*") (identifier "pcStack_120")) (; ";")) (declaration "int *piStack_11c;" (primitive_type "int") (pointer_declarator "*piStack_11c" (* "*") (identifier "piStack_11c")) (; ";")) (declaration "int aiStack_114 [10];" (primitive_type "int") (array_declarator "aiStack_114 [10]" (identifier "aiStack_114") ([ "[") (number_literal "10") (] "]")) (; ";")) (declaration "undefined1 auStack_ec [64];" (type_identifier "undefined1") (array_declarator "auStack_ec [64]" (identifier "auStack_ec") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "int iStack_ac;" (primitive_type "int") (identifier "iStack_ac") (; ";")) (declaration "int *piStack_a8;" (primitive_type "int") (pointer_declarator "*piStack_a8" (* "*") (identifier "piStack_a8")) (; ";")) (declaration "undefined *puStack_a4;" (type_identifier "undefined") (pointer_declarator "*puStack_a4" (* "*") (identifier "puStack_a4")) (; ";")) (declaration "undefined1 *puStack_a0;" (type_identifier "undefined1") (pointer_declarator "*puStack_a0" (* "*") (identifier "puStack_a0")) (; ";")) (declaration "undefined4 *puStack_9c;" (type_identifier "undefined4") (pointer_declarator "*puStack_9c" (* "*") (identifier "puStack_9c")) (; ";")) (declaration "int *local_70;" (primitive_type "int") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "undefined1 auStack_5c [64];" (type_identifier "undefined1") (array_declarator "auStack_5c [64]" (identifier "auStack_5c") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0006a594;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0006a594" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0006a594")) (; ";")) (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" (identifier "piVar17") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);" (assignment_expression "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x6cc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0006a068 + 0x6cc0)" (( "(") (binary_expression "PTR_DAT_0006a068 + 0x6cc0" (identifier "PTR_DAT_0006a068") (+ "+") (number_literal "0x6cc0")) () ")")))) (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_0006a594;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_0006a594" (identifier "local_1c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0006a594" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0006a594" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0006a594")))) (; ";")) (expression_statement "piVar2 = (int *)f_open();" (assignment_expression "piVar2 = (int *)f_open()" (identifier "piVar2") (= "=") (cast_expression "(int *)f_open()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "f_open()" (identifier "f_open") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n    uVar4 = 0;\n  }\n  else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar4 = 0;\n  }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" (else "else") (compound_statement "{\n    unaff_s2 = auStack_5c;\n    puVar15 = (undefined4 *)&DAT_00000040;\n    piVar17 = piVar2;\n    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);\n    unaff_s0 = piVar2;\n    if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }\n    (*(code *)PTR_fclose_0006a4c8)(piVar2);\n    uVar4 = 0;\n  }" ({ "{") (expression_statement "unaff_s2 = auStack_5c;" (assignment_expression "unaff_s2 = auStack_5c" (identifier "unaff_s2") (= "=") (identifier "auStack_5c")) (; ";")) (expression_statement "puVar15 = (undefined4 *)&DAT_00000040;" (assignment_expression "puVar15 = (undefined4 *)&DAT_00000040" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)&DAT_00000040" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000040" (& "&") (identifier "DAT_00000040")))) (; ";")) (expression_statement "piVar17 = piVar2;" (assignment_expression "piVar17 = piVar2" (identifier "piVar17") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);" (assignment_expression "iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_fgets_0006a588)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_fgets_0006a588)" (( "(") (pointer_expression "*(code *)PTR_fgets_0006a588" (* "*") (cast_expression "(code *)PTR_fgets_0006a588" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fgets_0006a588"))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")")))) (; ";")) (expression_statement "unaff_s0 = piVar2;" (assignment_expression "unaff_s0 = piVar2" (identifier "unaff_s0") (= "=") (identifier "piVar2")) (; ";")) (if_statement "if (iVar3 != 0) {\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);\n      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);\n      if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }\n    }" ({ "{") (expression_statement "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);" (assignment_expression "puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x6cd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0006a068 + 0x6cd4)" (( "(") (binary_expression "PTR_DAT_0006a068 + 0x6cd4" (identifier "PTR_DAT_0006a068") (+ "+") (number_literal "0x6cd4")) () ")")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_0006a5c8)(unaff_s2)" (parenthesized_expression "(*(code *)PTR_strcmp_0006a5c8)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0006a5c8" (* "*") (cast_expression "(code *)PTR_strcmp_0006a5c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0006a5c8"))) () ")")) (argument_list "(unaff_s2)" (( "(") (identifier "unaff_s2") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar17 = (int *)0x0;\n        local_70 = (int *)0x0;\n        puVar15 = (undefined4 *)0x0;\n        param_4 = param_2;\n        uVar4 = FUN_00038b60(piVar2);\n        goto LAB_00039880;\n      }" ({ "{") (expression_statement "piVar17 = (int *)0x0;" (assignment_expression "piVar17 = (int *)0x0" (identifier "piVar17") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_70 = (int *)0x0;" (assignment_expression "local_70 = (int *)0x0" (identifier "local_70") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_4 = param_2;" (assignment_expression "param_4 = param_2" (identifier "param_4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar4 = FUN_00038b60(piVar2);" (assignment_expression "uVar4 = FUN_00038b60(piVar2)" (identifier "uVar4") (= "=") (call_expression "FUN_00038b60(piVar2)" (identifier "FUN_00038b60") (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")")))) (; ";")) (goto_statement "goto LAB_00039880;" (goto "goto") (statement_identifier "LAB_00039880") (; ";")) (} "}"))) (} "}"))) (expression_statement "(*(code *)PTR_fclose_0006a4c8)(piVar2);" (call_expression "(*(code *)PTR_fclose_0006a4c8)(piVar2)" (parenthesized_expression "(*(code *)PTR_fclose_0006a4c8)" (( "(") (pointer_expression "*(code *)PTR_fclose_0006a4c8" (* "*") (cast_expression "(code *)PTR_fclose_0006a4c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fclose_0006a4c8"))) () ")")) (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")"))) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00039880:\n  if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }" (statement_identifier "LAB_00039880") (: ":") (if_statement "if (local_1c == *(int *)puVar1) {\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(local_1c == *(int *)puVar1)" (( "(") (binary_expression "local_1c == *(int *)puVar1" (identifier "local_1c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return uVar4;\n  }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (expression_statement "puVar25 = PTR___stack_chk_fail_0006a574;" (assignment_expression "puVar25 = PTR___stack_chk_fail_0006a574" (identifier "puVar25") (= "=") (identifier "PTR___stack_chk_fail_0006a574")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0006a574)();" (call_expression "(*(code *)PTR___stack_chk_fail_0006a574)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0006a574)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0006a574" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0006a574" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0006a574"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_128 = puVar25 + 0x38744;" (assignment_expression "puStack_128 = puVar25 + 0x38744" (identifier "puStack_128") (= "=") (binary_expression "puVar25 + 0x38744" (identifier "puVar25") (+ "+") (number_literal "0x38744"))) (; ";")) (expression_statement "puStack_a4 = puVar1;" (assignment_expression "puStack_a4 = puVar1" (identifier "puStack_a4") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "piVar21 = *(int **)(puVar25 + 0x30ca8);" (assignment_expression "piVar21 = *(int **)(puVar25 + 0x30ca8)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(puVar25 + 0x30ca8)" (* "*") (cast_expression "(int **)(puVar25 + 0x30ca8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x30ca8)" (( "(") (binary_expression "puVar25 + 0x30ca8" (identifier "puVar25") (+ "+") (number_literal "0x30ca8")) () ")"))))) (; ";")) (expression_statement "piVar18 = (int *)0x0;" (assignment_expression "piVar18 = (int *)0x0" (identifier "piVar18") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);" (assignment_expression "piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar25 + 0x3077c) + 0x6cc0)" (( "(") (binary_expression "*(int *)(puVar25 + 0x3077c) + 0x6cc0" (pointer_expression "*(int *)(puVar25 + 0x3077c)" (* "*") (cast_expression "(int *)(puVar25 + 0x3077c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x3077c)" (( "(") (binary_expression "puVar25 + 0x3077c" (identifier "puVar25") (+ "+") (number_literal "0x3077c")) () ")")))) (+ "+") (number_literal "0x6cc0")) () ")")))) (; ";")) (expression_statement "aiStack_114[0] = 0;" (assignment_expression "aiStack_114[0] = 0" (subscript_expression "aiStack_114[0]" (identifier "aiStack_114") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_ac = *piVar21;" (assignment_expression "iStack_ac = *piVar21" (identifier "iStack_ac") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar17 = 0;" (assignment_expression "*piVar17 = 0" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_a8 = unaff_s0;" (assignment_expression "piStack_a8 = unaff_s0" (identifier "piStack_a8") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "puStack_a0 = unaff_s2;" (assignment_expression "puStack_a0 = unaff_s2" (identifier "puStack_a0") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_9c = param_2;" (assignment_expression "puStack_9c = param_2" (identifier "puStack_9c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "piVar5 = (int *)f_open();" (assignment_expression "piVar5 = (int *)f_open()" (identifier "piVar5") (= "=") (cast_expression "(int *)f_open()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "f_open()" (identifier "f_open") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }\n  else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;\nLAB_00039a34:\n    uVar4 = 0;\n    piVar5 = unaff_s0;\n    if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }\n  }" ({ "{") (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4" (subscript_expression "aiStack_114[0]" (identifier "aiStack_114") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cc4" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_128 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_128 + -0x7fc8)" (( "(") (binary_expression "puStack_128 + -0x7fc8" (identifier "puStack_128") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x6cc4"))) (; ";")) (labeled_statement "LAB_00039a34:\n    uVar4 = 0;" (statement_identifier "LAB_00039a34") (: ":") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar5 = unaff_s0;" (assignment_expression "piVar5 = unaff_s0" (identifier "piVar5") (= "=") (identifier "unaff_s0")) (; ";")) (if_statement "if (local_70 != (int *)0x0) {\n      *local_70 = aiStack_114[0];\n    }" (if "if") (parenthesized_expression "(local_70 != (int *)0x0)" (( "(") (binary_expression "local_70 != (int *)0x0" (identifier "local_70") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *local_70 = aiStack_114[0];\n    }" ({ "{") (expression_statement "*local_70 = aiStack_114[0];" (assignment_expression "*local_70 = aiStack_114[0]" (pointer_expression "*local_70" (* "*") (identifier "local_70")) (= "=") (subscript_expression "aiStack_114[0]" (identifier "aiStack_114") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" (else "else") (compound_statement "{\n    piVar18 = piVar5;\n    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);\n    unaff_s0 = piVar5;\n    if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }\n    piStack_12c = aiStack_114;\n    unaff_s4 = aiStack_114 + 1;\n    uStack_130 = 0;\n    piVar18 = (int *)0x1;\n    aiStack_114[1] = 0;\n    aiStack_114[2] = 0;\n    aiStack_114[3] = 0;\n    aiStack_114[4] = 0;\n    aiStack_114[5] = 0;\n    aiStack_114[6] = 0;\n    aiStack_114[7] = 0;\n    aiStack_114[8] = 0;\n    aiStack_114[9] = 0;\n    piVar2 = unaff_s4;\n    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);\n    if (iVar3 == 0) goto LAB_00039a34;\n    piVar2 = piVar17;\n    uVar6 = rsa_public_blob(unaff_s4);\n    *puVar15 = uVar6;\n    freersakey(unaff_s4);\n    uVar4 = 1;\n  }" ({ "{") (expression_statement "piVar18 = piVar5;" (assignment_expression "piVar18 = piVar5" (identifier "piVar18") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7aa8))" (( "(") (pointer_expression "**(code **)(puStack_128 + -0x7aa8)" (* "*") (pointer_expression "*(code **)(puStack_128 + -0x7aa8)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7aa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7aa8)" (( "(") (binary_expression "puStack_128 + -0x7aa8" (identifier "puStack_128") (+ "+") (number_literal "-0x7aa8")) () ")"))))) () ")")) (argument_list "(auStack_ec,0x40)" (( "(") (identifier "auStack_ec") (, ",") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "unaff_s0 = piVar5;" (assignment_expression "unaff_s0 = piVar5" (identifier "unaff_s0") (= "=") (identifier "piVar5")) (; ";")) (if_statement "if ((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }" (if "if") (parenthesized_expression "((iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0))" (( "(") (binary_expression "(iVar3 == 0) ||\n       (iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)" (( "(") (comma_expression "iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puStack_128 + -0x7a68))\n                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7a68))" (( "(") (pointer_expression "**(code **)(puStack_128 + -0x7a68)" (* "*") (pointer_expression "*(code **)(puStack_128 + -0x7a68)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7a68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7a68)" (( "(") (binary_expression "puStack_128 + -0x7a68" (identifier "puStack_128") (+ "+") (number_literal "-0x7a68")) () ")"))))) () ")")) (argument_list "(auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4)" (( "(") (identifier "auStack_ec") (, ",") (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cd4" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_128 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_128 + -0x7fc8)" (( "(") (binary_expression "puStack_128 + -0x7fc8" (identifier "puStack_128") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x6cd4")) () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);\n      (**(code **)(puStack_128 + -0x7ac0))(piVar5);\n      uVar6 = fgetline(piVar5);\n      unaff_s4 = (int *)chomp(uVar6);\n      piVar2 = unaff_s7 + 0x1b44;\n      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);\n      pcVar7 = (char *)((int)unaff_s4 + iVar3);\n      if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }\n      (**(code **)(puStack_128 + -0x7b68))(piVar5);\n      goto LAB_00039a34;\n    }" ({ "{") (expression_statement "unaff_s7 = *(int **)(puStack_128 + -0x7fc8);" (assignment_expression "unaff_s7 = *(int **)(puStack_128 + -0x7fc8)" (identifier "unaff_s7") (= "=") (pointer_expression "*(int **)(puStack_128 + -0x7fc8)" (* "*") (cast_expression "(int **)(puStack_128 + -0x7fc8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7fc8)" (( "(") (binary_expression "puStack_128 + -0x7fc8" (identifier "puStack_128") (+ "+") (number_literal "-0x7fc8")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puStack_128 + -0x7ac0))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7ac0))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7ac0))" (( "(") (pointer_expression "**(code **)(puStack_128 + -0x7ac0)" (* "*") (pointer_expression "*(code **)(puStack_128 + -0x7ac0)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7ac0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7ac0)" (( "(") (binary_expression "puStack_128 + -0x7ac0" (identifier "puStack_128") (+ "+") (number_literal "-0x7ac0")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (expression_statement "uVar6 = fgetline(piVar5);" (assignment_expression "uVar6 = fgetline(piVar5)" (identifier "uVar6") (= "=") (call_expression "fgetline(piVar5)" (identifier "fgetline") (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")")))) (; ";")) (expression_statement "unaff_s4 = (int *)chomp(uVar6);" (assignment_expression "unaff_s4 = (int *)chomp(uVar6)" (identifier "unaff_s4") (= "=") (cast_expression "(int *)chomp(uVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "chomp(uVar6)" (identifier "chomp") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))))) (; ";")) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" (identifier "piVar2") (= "=") (binary_expression "unaff_s7 + 0x1b44" (identifier "unaff_s7") (+ "+") (number_literal "0x1b44"))) (; ";")) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puStack_128 + -0x7bac))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7bac))" (( "(") (pointer_expression "**(code **)(puStack_128 + -0x7bac)" (* "*") (pointer_expression "*(code **)(puStack_128 + -0x7bac)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7bac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7bac)" (( "(") (binary_expression "puStack_128 + -0x7bac" (identifier "puStack_128") (+ "+") (number_literal "-0x7bac")) () ")"))))) () ")")) (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")")))) (; ";")) (expression_statement "pcVar7 = (char *)((int)unaff_s4 + iVar3);" (assignment_expression "pcVar7 = (char *)((int)unaff_s4 + iVar3)" (identifier "pcVar7") (= "=") (cast_expression "(char *)((int)unaff_s4 + iVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + iVar3)" (( "(") (binary_expression "(int)unaff_s4 + iVar3" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (if_statement "if (*pcVar7 == ' ') {\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }\n      else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" (if "if") (parenthesized_expression "(*pcVar7 == ' ')" (( "(") (binary_expression "*pcVar7 == ' '" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n        pcStack_120 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcStack_120);\n        pcVar7 = pcStack_120 + iVar3;\n        piVar18 = (int *)(int)*pcVar7;\n        piStack_11c = piVar18;\n        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;\n        pcVar27 = pcVar7 + 1;\n        pcVar26 = *(code **)(puStack_128 + -0x7bac);\n        piVar2 = unaff_s7 + 0x1b44;\n        *pcVar7 = '\0';\n        iVar3 = (*pcVar26)(pcVar27);\n        pcVar7 = pcStack_120;\n        pcVar8 = pcVar27 + iVar3;\n        if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }\n        unaff_s7 = aiStack_114 + 1;\n        aiStack_114[1] = 0;\n        aiStack_114[2] = 0;\n        aiStack_114[3] = 0;\n        aiStack_114[4] = 0;\n        aiStack_114[5] = 0;\n        aiStack_114[6] = 0;\n        aiStack_114[7] = 0;\n        aiStack_114[8] = 0;\n        aiStack_114[9] = 0;\n        aiStack_114[4] = bignum_from_decimal(pcVar7);\n        aiStack_114[3] = bignum_from_decimal(pcVar27);\n        piVar18 = (int *)0xa;\n        piVar2 = (int *)0x0;\n        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);\n        iVar9 = bignum_bitcount(aiStack_114[3]);\n        if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }\n        freebn(aiStack_114[4]);\n        freebn(aiStack_114[3]);\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;\n      }" ({ "{") (expression_statement "pcStack_120 = pcVar7 + 1;" (assignment_expression "pcStack_120 = pcVar7 + 1" (identifier "pcStack_120") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7bac);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7bac)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(puStack_128 + -0x7bac)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7bac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7bac)" (( "(") (binary_expression "puStack_128 + -0x7bac" (identifier "puStack_128") (+ "+") (number_literal "-0x7bac")) () ")"))))) (; ";")) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" (identifier "piVar2") (= "=") (binary_expression "unaff_s7 + 0x1b44" (identifier "unaff_s7") (+ "+") (number_literal "0x1b44"))) (; ";")) (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar3 = (*pcVar26)(pcStack_120);" (assignment_expression "iVar3 = (*pcVar26)(pcStack_120)" (identifier "iVar3") (= "=") (call_expression "(*pcVar26)(pcStack_120)" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "(pcStack_120)" (( "(") (identifier "pcStack_120") () ")")))) (; ";")) (expression_statement "pcVar7 = pcStack_120 + iVar3;" (assignment_expression "pcVar7 = pcStack_120 + iVar3" (identifier "pcVar7") (= "=") (binary_expression "pcStack_120 + iVar3" (identifier "pcStack_120") (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "piVar18 = (int *)(int)*pcVar7;" (assignment_expression "piVar18 = (int *)(int)*pcVar7" (identifier "piVar18") (= "=") (cast_expression "(int *)(int)*pcVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))))) (; ";")) (expression_statement "piStack_11c = piVar18;" (assignment_expression "piStack_11c = piVar18" (identifier "piStack_11c") (= "=") (identifier "piVar18")) (; ";")) (if_statement "if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;" (if "if") (parenthesized_expression "(piVar18 != (int *)&DAT_00000020)" (( "(") (binary_expression "piVar18 != (int *)&DAT_00000020" (identifier "piVar18") (!= "!=") (cast_expression "(int *)&DAT_00000020" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000020" (& "&") (identifier "DAT_00000020")))) () ")")) (goto_statement "goto LAB_00039a0c;" (goto "goto") (statement_identifier "LAB_00039a0c") (; ";"))) (expression_statement "pcVar27 = pcVar7 + 1;" (assignment_expression "pcVar27 = pcVar7 + 1" (identifier "pcVar27") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7bac);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7bac)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(puStack_128 + -0x7bac)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7bac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7bac)" (( "(") (binary_expression "puStack_128 + -0x7bac" (identifier "puStack_128") (+ "+") (number_literal "-0x7bac")) () ")"))))) (; ";")) (expression_statement "piVar2 = unaff_s7 + 0x1b44;" (assignment_expression "piVar2 = unaff_s7 + 0x1b44" (identifier "piVar2") (= "=") (binary_expression "unaff_s7 + 0x1b44" (identifier "unaff_s7") (+ "+") (number_literal "0x1b44"))) (; ";")) (expression_statement "*pcVar7 = '\0';" (assignment_expression "*pcVar7 = '\0'" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar3 = (*pcVar26)(pcVar27);" (assignment_expression "iVar3 = (*pcVar26)(pcVar27)" (identifier "iVar3") (= "=") (call_expression "(*pcVar26)(pcVar27)" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "(pcVar27)" (( "(") (identifier "pcVar27") () ")")))) (; ";")) (expression_statement "pcVar7 = pcStack_120;" (assignment_expression "pcVar7 = pcStack_120" (identifier "pcVar7") (= "=") (identifier "pcStack_120")) (; ";")) (expression_statement "pcVar8 = pcVar27 + iVar3;" (assignment_expression "pcVar8 = pcVar27 + iVar3" (identifier "pcVar8") (= "=") (binary_expression "pcVar27 + iVar3" (identifier "pcVar27") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if ((int *)(int)*pcVar8 == (int *)0x0) {\n          pcStack_120 = (char *)0x0;\n        }\n        else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" (if "if") (parenthesized_expression "((int *)(int)*pcVar8 == (int *)0x0)" (( "(") (binary_expression "(int *)(int)*pcVar8 == (int *)0x0" (cast_expression "(int *)(int)*pcVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcStack_120 = (char *)0x0;\n        }" ({ "{") (expression_statement "pcStack_120 = (char *)0x0;" (assignment_expression "pcStack_120 = (char *)0x0" (identifier "pcStack_120") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" (else "else") (compound_statement "{\n          piVar18 = piStack_11c;\n          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;\n          pcStack_120 = pcVar8 + 1;\n          *pcVar8 = '\0';\n        }" ({ "{") (expression_statement "piVar18 = piStack_11c;" (assignment_expression "piVar18 = piStack_11c" (identifier "piVar18") (= "=") (identifier "piStack_11c")) (; ";")) (if_statement "if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;" (if "if") (parenthesized_expression "((int *)(int)*pcVar8 != piStack_11c)" (( "(") (binary_expression "(int *)(int)*pcVar8 != piStack_11c" (cast_expression "(int *)(int)*pcVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")))) (!= "!=") (identifier "piStack_11c")) () ")")) (goto_statement "goto LAB_00039a0c;" (goto "goto") (statement_identifier "LAB_00039a0c") (; ";"))) (expression_statement "pcStack_120 = pcVar8 + 1;" (assignment_expression "pcStack_120 = pcVar8 + 1" (identifier "pcStack_120") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar8 = '\0';" (assignment_expression "*pcVar8 = '\0'" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (expression_statement "unaff_s7 = aiStack_114 + 1;" (assignment_expression "unaff_s7 = aiStack_114 + 1" (identifier "unaff_s7") (= "=") (binary_expression "aiStack_114 + 1" (identifier "aiStack_114") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "aiStack_114[1] = 0;" (assignment_expression "aiStack_114[1] = 0" (subscript_expression "aiStack_114[1]" (identifier "aiStack_114") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[2] = 0;" (assignment_expression "aiStack_114[2] = 0" (subscript_expression "aiStack_114[2]" (identifier "aiStack_114") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[3] = 0;" (assignment_expression "aiStack_114[3] = 0" (subscript_expression "aiStack_114[3]" (identifier "aiStack_114") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[4] = 0;" (assignment_expression "aiStack_114[4] = 0" (subscript_expression "aiStack_114[4]" (identifier "aiStack_114") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[5] = 0;" (assignment_expression "aiStack_114[5] = 0" (subscript_expression "aiStack_114[5]" (identifier "aiStack_114") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[6] = 0;" (assignment_expression "aiStack_114[6] = 0" (subscript_expression "aiStack_114[6]" (identifier "aiStack_114") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[7] = 0;" (assignment_expression "aiStack_114[7] = 0" (subscript_expression "aiStack_114[7]" (identifier "aiStack_114") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[8] = 0;" (assignment_expression "aiStack_114[8] = 0" (subscript_expression "aiStack_114[8]" (identifier "aiStack_114") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[9] = 0;" (assignment_expression "aiStack_114[9] = 0" (subscript_expression "aiStack_114[9]" (identifier "aiStack_114") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[4] = bignum_from_decimal(pcVar7);" (assignment_expression "aiStack_114[4] = bignum_from_decimal(pcVar7)" (subscript_expression "aiStack_114[4]" (identifier "aiStack_114") ([ "[") (number_literal "4") (] "]")) (= "=") (call_expression "bignum_from_decimal(pcVar7)" (identifier "bignum_from_decimal") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (; ";")) (expression_statement "aiStack_114[3] = bignum_from_decimal(pcVar27);" (assignment_expression "aiStack_114[3] = bignum_from_decimal(pcVar27)" (subscript_expression "aiStack_114[3]" (identifier "aiStack_114") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "bignum_from_decimal(pcVar27)" (identifier "bignum_from_decimal") (argument_list "(pcVar27)" (( "(") (identifier "pcVar27") () ")")))) (; ";")) (expression_statement "piVar18 = (int *)0xa;" (assignment_expression "piVar18 = (int *)0xa" (identifier "piVar18") (= "=") (cast_expression "(int *)0xa" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) (; ";")) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);" (assignment_expression "iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puStack_128 + -0x7b9c))(unaff_s4)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b9c))" (( "(") (pointer_expression "**(code **)(puStack_128 + -0x7b9c)" (* "*") (pointer_expression "*(code **)(puStack_128 + -0x7b9c)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7b9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7b9c)" (( "(") (binary_expression "puStack_128 + -0x7b9c" (identifier "puStack_128") (+ "+") (number_literal "-0x7b9c")) () ")"))))) () ")")) (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")")))) (; ";")) (expression_statement "iVar9 = bignum_bitcount(aiStack_114[3]);" (assignment_expression "iVar9 = bignum_bitcount(aiStack_114[3])" (identifier "iVar9") (= "=") (call_expression "bignum_bitcount(aiStack_114[3])" (identifier "bignum_bitcount") (argument_list "(aiStack_114[3])" (( "(") (subscript_expression "aiStack_114[3]" (identifier "aiStack_114") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar9 == iVar3) {\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }" (if "if") (parenthesized_expression "(iVar9 == iVar3)" (( "(") (binary_expression "iVar9 == iVar3" (identifier "iVar9") (== "==") (identifier "iVar3")) () ")")) (compound_statement "{\n          if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }\n          piVar2 = piVar17;\n          uVar6 = rsa_public_blob(unaff_s7);\n          *puVar15 = uVar6;\n          freersakey(unaff_s7);\n          safefree(unaff_s4);\n          (**(code **)(puStack_128 + -0x7b68))(piVar5);\n          uVar4 = 1;\n          goto LAB_00039a44;\n        }" ({ "{") (if_statement "if (param_4 != (undefined4 *)0x0) {\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar7 = pcStack_120;\n            if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }\n            *param_4 = pcVar7;\n          }" ({ "{") (expression_statement "pcVar7 = pcStack_120;" (assignment_expression "pcVar7 = pcStack_120" (identifier "pcVar7") (= "=") (identifier "pcStack_120")) (; ";")) (if_statement "if (pcStack_120 != (char *)0x0) {\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }" (if "if") (parenthesized_expression "(pcStack_120 != (char *)0x0)" (( "(") (binary_expression "pcStack_120 != (char *)0x0" (identifier "pcStack_120") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pcVar7 = (char *)dupstr(pcStack_120);\n            }" ({ "{") (expression_statement "pcVar7 = (char *)dupstr(pcStack_120);" (assignment_expression "pcVar7 = (char *)dupstr(pcStack_120)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dupstr(pcStack_120)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dupstr(pcStack_120)" (identifier "dupstr") (argument_list "(pcStack_120)" (( "(") (identifier "pcStack_120") () ")"))))) (; ";")) (} "}"))) (expression_statement "*param_4 = pcVar7;" (assignment_expression "*param_4 = pcVar7" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "pcVar7")) (; ";")) (} "}"))) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" (identifier "piVar2") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "uVar6 = rsa_public_blob(unaff_s7);" (assignment_expression "uVar6 = rsa_public_blob(unaff_s7)" (identifier "uVar6") (= "=") (call_expression "rsa_public_blob(unaff_s7)" (identifier "rsa_public_blob") (argument_list "(unaff_s7)" (( "(") (identifier "unaff_s7") () ")")))) (; ";")) (expression_statement "*puVar15 = uVar6;" (assignment_expression "*puVar15 = uVar6" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "freersakey(unaff_s7);" (call_expression "freersakey(unaff_s7)" (identifier "freersakey") (argument_list "(unaff_s7)" (( "(") (identifier "unaff_s7") () ")"))) (; ";")) (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" (identifier "safefree") (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_128 + -0x7b68))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7b68))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b68))" (( "(") (pointer_expression "**(code **)(puStack_128 + -0x7b68)" (* "*") (pointer_expression "*(code **)(puStack_128 + -0x7b68)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7b68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7b68)" (( "(") (binary_expression "puStack_128 + -0x7b68" (identifier "puStack_128") (+ "+") (number_literal "-0x7b68")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00039a44;" (goto "goto") (statement_identifier "LAB_00039a44") (; ";")) (} "}"))) (expression_statement "freebn(aiStack_114[4]);" (call_expression "freebn(aiStack_114[4])" (identifier "freebn") (argument_list "(aiStack_114[4])" (( "(") (subscript_expression "aiStack_114[4]" (identifier "aiStack_114") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "freebn(aiStack_114[3]);" (call_expression "freebn(aiStack_114[3])" (identifier "freebn") (argument_list "(aiStack_114[3])" (( "(") (subscript_expression "aiStack_114[3]" (identifier "aiStack_114") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" (identifier "safefree") (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")"))) (; ";")) (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c" (subscript_expression "aiStack_114[0]" (identifier "aiStack_114") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6d1c" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_128 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_128 + -0x7fc8)" (( "(") (binary_expression "puStack_128 + -0x7fc8" (identifier "puStack_128") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x6d1c"))) (; ";")) (} "}")) (else_clause "else {\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" (else "else") (compound_statement "{\nLAB_00039a0c:\n        safefree(unaff_s4);\n        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;\n      }" ({ "{") (labeled_statement "LAB_00039a0c:\n        safefree(unaff_s4);" (statement_identifier "LAB_00039a0c") (: ":") (expression_statement "safefree(unaff_s4);" (call_expression "safefree(unaff_s4)" (identifier "safefree") (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")"))) (; ";"))) (expression_statement "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;" (assignment_expression "aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8" (subscript_expression "aiStack_114[0]" (identifier "aiStack_114") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "*(int *)(puStack_128 + -0x7fc8) + 0x6cf8" (pointer_expression "*(int *)(puStack_128 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_128 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_128 + -0x7fc8)" (( "(") (binary_expression "puStack_128 + -0x7fc8" (identifier "puStack_128") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x6cf8"))) (; ";")) (} "}")))) (expression_statement "(**(code **)(puStack_128 + -0x7b68))(piVar5);" (call_expression "(**(code **)(puStack_128 + -0x7b68))(piVar5)" (parenthesized_expression "(**(code **)(puStack_128 + -0x7b68))" (( "(") (pointer_expression "**(code **)(puStack_128 + -0x7b68)" (* "*") (pointer_expression "*(code **)(puStack_128 + -0x7b68)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7b68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7b68)" (( "(") (binary_expression "puStack_128 + -0x7b68" (identifier "puStack_128") (+ "+") (number_literal "-0x7b68")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (goto_statement "goto LAB_00039a34;" (goto "goto") (statement_identifier "LAB_00039a34") (; ";")) (} "}"))) (expression_statement "piStack_12c = aiStack_114;" (assignment_expression "piStack_12c = aiStack_114" (identifier "piStack_12c") (= "=") (identifier "aiStack_114")) (; ";")) (expression_statement "unaff_s4 = aiStack_114 + 1;" (assignment_expression "unaff_s4 = aiStack_114 + 1" (identifier "unaff_s4") (= "=") (binary_expression "aiStack_114 + 1" (identifier "aiStack_114") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uStack_130 = 0;" (assignment_expression "uStack_130 = 0" (identifier "uStack_130") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar18 = (int *)0x1;" (assignment_expression "piVar18 = (int *)0x1" (identifier "piVar18") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "aiStack_114[1] = 0;" (assignment_expression "aiStack_114[1] = 0" (subscript_expression "aiStack_114[1]" (identifier "aiStack_114") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[2] = 0;" (assignment_expression "aiStack_114[2] = 0" (subscript_expression "aiStack_114[2]" (identifier "aiStack_114") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[3] = 0;" (assignment_expression "aiStack_114[3] = 0" (subscript_expression "aiStack_114[3]" (identifier "aiStack_114") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[4] = 0;" (assignment_expression "aiStack_114[4] = 0" (subscript_expression "aiStack_114[4]" (identifier "aiStack_114") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[5] = 0;" (assignment_expression "aiStack_114[5] = 0" (subscript_expression "aiStack_114[5]" (identifier "aiStack_114") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[6] = 0;" (assignment_expression "aiStack_114[6] = 0" (subscript_expression "aiStack_114[6]" (identifier "aiStack_114") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[7] = 0;" (assignment_expression "aiStack_114[7] = 0" (subscript_expression "aiStack_114[7]" (identifier "aiStack_114") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[8] = 0;" (assignment_expression "aiStack_114[8] = 0" (subscript_expression "aiStack_114[8]" (identifier "aiStack_114") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "aiStack_114[9] = 0;" (assignment_expression "aiStack_114[9] = 0" (subscript_expression "aiStack_114[9]" (identifier "aiStack_114") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2 = unaff_s4;" (assignment_expression "piVar2 = unaff_s4" (identifier "piVar2") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);" (assignment_expression "iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4)" (identifier "iVar3") (= "=") (call_expression "FUN_00038b60(piVar5,unaff_s4,1,param_4)" (identifier "FUN_00038b60") (argument_list "(piVar5,unaff_s4,1,param_4)" (( "(") (identifier "piVar5") (, ",") (identifier "unaff_s4") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_00039a34;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00039a34;" (goto "goto") (statement_identifier "LAB_00039a34") (; ";"))) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" (identifier "piVar2") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "uVar6 = rsa_public_blob(unaff_s4);" (assignment_expression "uVar6 = rsa_public_blob(unaff_s4)" (identifier "uVar6") (= "=") (call_expression "rsa_public_blob(unaff_s4)" (identifier "rsa_public_blob") (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")")))) (; ";")) (expression_statement "*puVar15 = uVar6;" (assignment_expression "*puVar15 = uVar6" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "freersakey(unaff_s4);" (call_expression "freersakey(unaff_s4)" (identifier "freersakey") (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")"))) (; ";")) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_00039a44:\n  if (iStack_ac == *piVar21) {\n    return uVar4;\n  }" (statement_identifier "LAB_00039a44") (: ":") (if_statement "if (iStack_ac == *piVar21) {\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(iStack_ac == *piVar21)" (( "(") (binary_expression "iStack_ac == *piVar21" (identifier "iStack_ac") (== "==") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) (compound_statement "{\n    return uVar4;\n  }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (expression_statement "pcVar26 = *(code **)(puStack_128 + -0x7abc);" (assignment_expression "pcVar26 = *(code **)(puStack_128 + -0x7abc)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(puStack_128 + -0x7abc)" (* "*") (cast_expression "(code **)(puStack_128 + -0x7abc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_128 + -0x7abc)" (( "(") (binary_expression "puStack_128 + -0x7abc" (identifier "puStack_128") (+ "+") (number_literal "-0x7abc")) () ")"))))) (; ";")) (expression_statement "pcVar28 = saversakey;" (assignment_expression "pcVar28 = saversakey" (identifier "pcVar28") (= "=") (identifier "saversakey")) (; ";")) (expression_statement "iVar3 = iStack_ac;" (assignment_expression "iVar3 = iStack_ac" (identifier "iVar3") (= "=") (identifier "iStack_ac")) (; ";")) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(pcVar26 + 0x3038c);" (assignment_expression "iVar9 = *(int *)(pcVar26 + 0x3038c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(pcVar26 + 0x3038c)" (* "*") (cast_expression "(int *)(pcVar26 + 0x3038c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x3038c)" (( "(") (binary_expression "pcVar26 + 0x3038c" (identifier "pcVar26") (+ "+") (number_literal "0x3038c")) () ")"))))) (; ";")) (expression_statement "piStack_150 = local_70;" (assignment_expression "piStack_150 = local_70" (identifier "piStack_150") (= "=") (identifier "local_70")) (; ";")) (expression_statement "piVar22 = *(int **)(pcVar26 + 0x308b8);" (assignment_expression "piVar22 = *(int **)(pcVar26 + 0x308b8)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar26 + 0x308b8)" (* "*") (cast_expression "(int **)(pcVar26 + 0x308b8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x308b8)" (( "(") (binary_expression "pcVar26 + 0x308b8" (identifier "pcVar26") (+ "+") (number_literal "0x308b8")) () ")"))))) (; ";")) (expression_statement "iStack_16c = *piVar22;" (assignment_expression "iStack_16c = *piVar22" (identifier "iStack_16c") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)(iVar9 + 0x6cd4);" (assignment_expression "puVar10 = (undefined4 *)(iVar9 + 0x6cd4)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)(iVar9 + 0x6cd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x6cd4)" (( "(") (binary_expression "iVar9 + 0x6cd4" (identifier "iVar9") (+ "+") (number_literal "0x6cd4")) () ")")))) (; ";")) (expression_statement "puVar13 = auStack_416c;" (assignment_expression "puVar13 = auStack_416c" (identifier "puVar13") (= "=") (identifier "auStack_416c")) (; ";")) (do_statement "do {\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));" (do "do") (compound_statement "{\n    puVar11 = puVar10 + 4;\n    puVar14 = puVar13 + 4;\n    *puVar13 = *puVar10;\n    uVar16 = puVar10[2];\n    uVar6 = puVar10[3];\n    puVar13[1] = puVar10[1];\n    puVar13[2] = uVar16;\n    puVar13[3] = uVar6;\n    puVar10 = puVar11;\n    puVar13 = puVar14;\n  }" ({ "{") (expression_statement "puVar11 = puVar10 + 4;" (assignment_expression "puVar11 = puVar10 + 4" (identifier "puVar11") (= "=") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar14 = puVar13 + 4;" (assignment_expression "puVar14 = puVar13 + 4" (identifier "puVar14") (= "=") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar13 = *puVar10;" (assignment_expression "*puVar13 = *puVar10" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "uVar16 = puVar10[2];" (assignment_expression "uVar16 = puVar10[2]" (identifier "uVar16") (= "=") (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar10[3];" (assignment_expression "uVar6 = puVar10[3]" (identifier "uVar6") (= "=") (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar13[1] = puVar10[1];" (assignment_expression "puVar13[1] = puVar10[1]" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar13[2] = uVar16;" (assignment_expression "puVar13[2] = uVar16" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar13[3] = uVar6;" (assignment_expression "puVar13[3] = uVar6" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" (identifier "puVar10") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" (identifier "puVar13") (= "=") (identifier "puVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined4 *)(iVar9 + 0x6cf4))" (( "(") (binary_expression "puVar11 != (undefined4 *)(iVar9 + 0x6cf4)" (identifier "puVar11") (!= "!=") (cast_expression "(undefined4 *)(iVar9 + 0x6cf4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x6cf4)" (( "(") (binary_expression "iVar9 + 0x6cf4" (identifier "iVar9") (+ "+") (number_literal "0x6cf4")) () ")")))) () ")")) (; ";")) (expression_statement "uVar12 = 3;" (assignment_expression "uVar12 = 3" (identifier "uVar12") (= "=") (number_literal "3")) (; ";")) (if_statement "if (piVar18 == (int *)0x0) {\n    uVar12 = 0;\n  }" (if "if") (parenthesized_expression "(piVar18 == (int *)0x0)" (( "(") (binary_expression "piVar18 == (int *)0x0" (identifier "piVar18") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar12 = 0;\n  }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar9 = piVar2[2];" (assignment_expression "iVar9 = piVar2[2]" (identifier "iVar9") (= "=") (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)puVar14 = *(undefined1 *)puVar11;" (assignment_expression "*(undefined1 *)puVar14 = *(undefined1 *)puVar11" (pointer_expression "*(undefined1 *)puVar14" (* "*") (cast_expression "(undefined1 *)puVar14" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (= "=") (pointer_expression "*(undefined1 *)puVar11" (* "*") (cast_expression "(undefined1 *)puVar11" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11")))) (; ";")) (expression_statement "uStack_414a = 0;" (assignment_expression "uStack_414a = 0" (identifier "uStack_414a") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_4148 = 0;" (assignment_expression "uStack_4148 = 0" (identifier "uStack_4148") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_414b = uVar12;" (assignment_expression "uStack_414b = uVar12" (identifier "uStack_414b") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "piStack_164 = piVar5;" (assignment_expression "piStack_164 = piVar5" (identifier "piStack_164") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "piStack_160 = piVar21;" (assignment_expression "piStack_160 = piVar21" (identifier "piStack_160") (= "=") (identifier "piVar21")) (; ";")) (expression_statement "puStack_15c = puVar15;" (assignment_expression "puStack_15c = puVar15" (identifier "puStack_15c") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "piStack_158 = piVar17;" (assignment_expression "piStack_158 = piVar17" (identifier "piStack_158") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "piStack_154 = unaff_s4;" (assignment_expression "piStack_154 = unaff_s4" (identifier "piStack_154") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "puStack_14c = param_4;" (assignment_expression "puStack_14c = param_4" (identifier "puStack_14c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "piStack_148 = unaff_s7;" (assignment_expression "piStack_148 = unaff_s7" (identifier "piStack_148") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pcStack_144 = pcVar28;" (assignment_expression "pcStack_144 = pcVar28" (identifier "pcStack_144") (= "=") (identifier "pcVar28")) (; ";")) (expression_statement "bignum_bitcount(iVar9);" (call_expression "bignum_bitcount(iVar9)" (identifier "bignum_bitcount") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "uStack_4146 = extraout_var;" (assignment_expression "uStack_4146 = extraout_var" (identifier "uStack_4146") (= "=") (identifier "extraout_var")) (; ";")) (expression_statement "bignum_bitcount(piVar2[2]);" (call_expression "bignum_bitcount(piVar2[2])" (identifier "bignum_bitcount") (argument_list "(piVar2[2])" (( "(") (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (expression_statement "uStack_4145 = extraout_var_01;" (assignment_expression "uStack_4145 = extraout_var_01" (identifier "uStack_4145") (= "=") (identifier "extraout_var_01")) (; ";")) (expression_statement "bignum_bitcount(piVar2[2]);" (call_expression "bignum_bitcount(piVar2[2])" (identifier "bignum_bitcount") (argument_list "(piVar2[2])" (( "(") (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (expression_statement "uStack_4144 = extraout_var_03;" (assignment_expression "uStack_4144 = extraout_var_03" (identifier "uStack_4144") (= "=") (identifier "extraout_var_03")) (; ";")) (expression_statement "uStack_4143 = bignum_bitcount(piVar2[2]);" (assignment_expression "uStack_4143 = bignum_bitcount(piVar2[2])" (identifier "uStack_4143") (= "=") (call_expression "bignum_bitcount(piVar2[2])" (identifier "bignum_bitcount") (argument_list "(piVar2[2])" (( "(") (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (expression_statement "iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);" (assignment_expression "iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2])" (identifier "iVar9") (= "=") (call_expression "ssh1_write_bignum(auStack_4142,piVar2[2])" (identifier "ssh1_write_bignum") (argument_list "(auStack_4142,piVar2[2])" (( "(") (identifier "auStack_4142") (, ",") (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (expression_statement "puVar19 = auStack_4142 + iVar9;" (assignment_expression "puVar19 = auStack_4142 + iVar9" (identifier "puVar19") (= "=") (binary_expression "auStack_4142 + iVar9" (identifier "auStack_4142") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[3])" (identifier "iVar9") (= "=") (call_expression "ssh1_write_bignum(puVar19,piVar2[3])" (identifier "ssh1_write_bignum") (argument_list "(puVar19,piVar2[3])" (( "(") (identifier "puVar19") (, ",") (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (expression_statement "iVar24 = piVar2[8];" (assignment_expression "iVar24 = piVar2[8]" (identifier "iVar24") (= "=") (subscript_expression "piVar2[8]" (identifier "piVar2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" (identifier "puVar19") (= "=") (binary_expression "puVar19 + iVar9" (identifier "puVar19") (+ "+") (identifier "iVar9"))) (; ";")) (if_statement "if (iVar24 == 0) {\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }\n  else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar23 = puVar19 + 4;\n    *puVar19 = 0;\n    puVar19[1] = 0;\n    puVar19[2] = 0;\n    puVar19[3] = 0;\n  }" ({ "{") (expression_statement "puVar23 = puVar19 + 4;" (assignment_expression "puVar23 = puVar19 + 4" (identifier "puVar23") (= "=") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19[1] = 0;" (assignment_expression "puVar19[1] = 0" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19[2] = 0;" (assignment_expression "puVar19[2] = 0" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19[3] = 0;" (assignment_expression "puVar19[3] = 0" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar26 + 0x30840))(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    *puVar19 = extraout_var_00;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[1] = extraout_var_02;\n    (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[2] = extraout_var_04;\n    uVar12 = (*pcVar28)(iVar24);\n    pcVar28 = *(code **)(pcVar26 + 0x30840);\n    puVar19[3] = uVar12;\n    uVar6 = (*pcVar28)(iVar24);\n    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);\n    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);\n    puVar23 = puVar19 + 4 + iVar9;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar26 + 0x30840))(iVar24);" (call_expression "(**(code **)(pcVar26 + 0x30840))(iVar24)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x30840)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x30840)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30840)" (( "(") (binary_expression "pcVar26 + 0x30840" (identifier "pcVar26") (+ "+") (number_literal "0x30840")) () ")"))))) () ")")) (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")"))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x30840)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30840)" (( "(") (binary_expression "pcVar26 + 0x30840" (identifier "pcVar26") (+ "+") (number_literal "0x30840")) () ")"))))) (; ";")) (expression_statement "*puVar19 = extraout_var_00;" (assignment_expression "*puVar19 = extraout_var_00" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "extraout_var_00")) (; ";")) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")"))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x30840)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30840)" (( "(") (binary_expression "pcVar26 + 0x30840" (identifier "pcVar26") (+ "+") (number_literal "0x30840")) () ")"))))) (; ";")) (expression_statement "puVar19[1] = extraout_var_02;" (assignment_expression "puVar19[1] = extraout_var_02" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "extraout_var_02")) (; ";")) (expression_statement "(*pcVar28)(iVar24);" (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")"))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x30840)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30840)" (( "(") (binary_expression "pcVar26 + 0x30840" (identifier "pcVar26") (+ "+") (number_literal "0x30840")) () ")"))))) (; ";")) (expression_statement "puVar19[2] = extraout_var_04;" (assignment_expression "puVar19[2] = extraout_var_04" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "extraout_var_04")) (; ";")) (expression_statement "uVar12 = (*pcVar28)(iVar24);" (assignment_expression "uVar12 = (*pcVar28)(iVar24)" (identifier "uVar12") (= "=") (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")")))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x30840);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x30840)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x30840)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30840)" (( "(") (binary_expression "pcVar26 + 0x30840" (identifier "pcVar26") (+ "+") (number_literal "0x30840")) () ")"))))) (; ";")) (expression_statement "puVar19[3] = uVar12;" (assignment_expression "puVar19[3] = uVar12" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar6 = (*pcVar28)(iVar24);" (assignment_expression "uVar6 = (*pcVar28)(iVar24)" (identifier "uVar6") (= "=") (call_expression "(*pcVar28)(iVar24)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);" (call_expression "(**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6)" (parenthesized_expression "(**(code **)(pcVar26 + 0x308bc))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x308bc)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x308bc)" (* "*") (cast_expression "(code **)(pcVar26 + 0x308bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x308bc)" (( "(") (binary_expression "pcVar26 + 0x308bc" (identifier "pcVar26") (+ "+") (number_literal "0x308bc")) () ")"))))) () ")")) (argument_list "(puVar19 + 4,iVar24,uVar6)" (( "(") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4")) (, ",") (identifier "iVar24") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);" (assignment_expression "iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(pcVar26 + 0x30840))(iVar24)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x30840)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x30840)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30840)" (( "(") (binary_expression "pcVar26 + 0x30840" (identifier "pcVar26") (+ "+") (number_literal "0x30840")) () ")"))))) () ")")) (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")")))) (; ";")) (expression_statement "puVar23 = puVar19 + 4 + iVar9;" (assignment_expression "puVar23 = puVar19 + 4 + iVar9" (identifier "puVar23") (= "=") (binary_expression "puVar19 + 4 + iVar9" (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4")) (+ "+") (identifier "iVar9"))) (; ";")) (} "}")))) (expression_statement "puVar19 = puVar23 + 4;" (assignment_expression "puVar19 = puVar23 + 4" (identifier "puVar19") (= "=") (binary_expression "puVar23 + 4" (identifier "puVar23") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar12 = random_byte();" (assignment_expression "uVar12 = random_byte()" (identifier "uVar12") (= "=") (call_expression "random_byte()" (identifier "random_byte") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*puVar23 = uVar12;" (assignment_expression "*puVar23 = uVar12" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = random_byte();" (assignment_expression "uVar12 = random_byte()" (identifier "uVar12") (= "=") (call_expression "random_byte()" (identifier "random_byte") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar9 = piVar2[4];" (assignment_expression "iVar9 = piVar2[4]" (identifier "iVar9") (= "=") (subscript_expression "piVar2[4]" (identifier "piVar2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar23[1] = uVar12;" (assignment_expression "puVar23[1] = uVar12" (subscript_expression "puVar23[1]" (identifier "puVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar23[2] = *puVar23;" (assignment_expression "puVar23[2] = *puVar23" (subscript_expression "puVar23[2]" (identifier "puVar23") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "puVar23[3] = uVar12;" (assignment_expression "puVar23[3] = uVar12" (subscript_expression "puVar23[3]" (identifier "puVar23") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,iVar9);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,iVar9)" (identifier "iVar9") (= "=") (call_expression "ssh1_write_bignum(puVar19,iVar9)" (identifier "ssh1_write_bignum") (argument_list "(puVar19,iVar9)" (( "(") (identifier "puVar19") (, ",") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" (identifier "puVar19") (= "=") (binary_expression "puVar19 + iVar9" (identifier "puVar19") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[7])" (identifier "iVar9") (= "=") (call_expression "ssh1_write_bignum(puVar19,piVar2[7])" (identifier "ssh1_write_bignum") (argument_list "(puVar19,piVar2[7])" (( "(") (identifier "puVar19") (, ",") (subscript_expression "piVar2[7]" (identifier "piVar2") ([ "[") (number_literal "7") (] "]")) () ")")))) (; ";")) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" (identifier "puVar19") (= "=") (binary_expression "puVar19 + iVar9" (identifier "puVar19") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[6])" (identifier "iVar9") (= "=") (call_expression "ssh1_write_bignum(puVar19,piVar2[6])" (identifier "ssh1_write_bignum") (argument_list "(puVar19,piVar2[6])" (( "(") (identifier "puVar19") (, ",") (subscript_expression "piVar2[6]" (identifier "piVar2") ([ "[") (number_literal "6") (] "]")) () ")")))) (; ";")) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" (identifier "puVar19") (= "=") (binary_expression "puVar19 + iVar9" (identifier "puVar19") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);" (assignment_expression "iVar9 = ssh1_write_bignum(puVar19,piVar2[5])" (identifier "iVar9") (= "=") (call_expression "ssh1_write_bignum(puVar19,piVar2[5])" (identifier "ssh1_write_bignum") (argument_list "(puVar19,piVar2[5])" (( "(") (identifier "puVar19") (, ",") (subscript_expression "piVar2[5]" (identifier "piVar2") ([ "[") (number_literal "5") (] "]")) () ")")))) (; ";")) (expression_statement "uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;" (assignment_expression "uVar4 = (int)(puVar19 + iVar9) - (int)puVar23" (identifier "uVar4") (= "=") (binary_expression "(int)(puVar19 + iVar9) - (int)puVar23" (cast_expression "(int)(puVar19 + iVar9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar19 + iVar9)" (( "(") (binary_expression "puVar19 + iVar9" (identifier "puVar19") (+ "+") (identifier "iVar9")) () ")"))) (- "-") (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")))) (; ";")) (expression_statement "puVar19 = puVar19 + iVar9;" (assignment_expression "puVar19 = puVar19 + iVar9" (identifier "puVar19") (= "=") (binary_expression "puVar19 + iVar9" (identifier "puVar19") (+ "+") (identifier "iVar9"))) (; ";")) (while_statement "while ((uVar4 & 7) != 0) {\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }" (while "while") (parenthesized_expression "((uVar4 & 7) != 0)" (( "(") (binary_expression "(uVar4 & 7) != 0" (parenthesized_expression "(uVar4 & 7)" (( "(") (binary_expression "uVar4 & 7" (identifier "uVar4") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *puVar19 = 0;\n    uVar4 = (int)(puVar19 + 1) - (int)puVar23;\n    puVar19 = puVar19 + 1;\n  }" ({ "{") (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = (int)(puVar19 + 1) - (int)puVar23;" (assignment_expression "uVar4 = (int)(puVar19 + 1) - (int)puVar23" (identifier "uVar4") (= "=") (binary_expression "(int)(puVar19 + 1) - (int)puVar23" (cast_expression "(int)(puVar19 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar19 + 1)" (( "(") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1")) () ")"))) (- "-") (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (piVar18 != (int *)0x0) {\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }" (if "if") (parenthesized_expression "(piVar18 != (int *)0x0)" (( "(") (binary_expression "piVar18 != (int *)0x0" (identifier "piVar18") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    MD5Init(auStack_41d8);\n    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);\n    MD5Update(auStack_41d8,piVar18,uVar6);\n    MD5Final(auStack_417c,auStack_41d8);\n    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);\n    smemclr(auStack_417c,0x10);\n  }" ({ "{") (expression_statement "MD5Init(auStack_41d8);" (call_expression "MD5Init(auStack_41d8)" (identifier "MD5Init") (argument_list "(auStack_41d8)" (( "(") (identifier "auStack_41d8") () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);" (assignment_expression "uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar26 + 0x30840))(piVar18)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30840))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x30840)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x30840)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30840)" (( "(") (binary_expression "pcVar26 + 0x30840" (identifier "pcVar26") (+ "+") (number_literal "0x30840")) () ")"))))) () ")")) (argument_list "(piVar18)" (( "(") (identifier "piVar18") () ")")))) (; ";")) (expression_statement "MD5Update(auStack_41d8,piVar18,uVar6);" (call_expression "MD5Update(auStack_41d8,piVar18,uVar6)" (identifier "MD5Update") (argument_list "(auStack_41d8,piVar18,uVar6)" (( "(") (identifier "auStack_41d8") (, ",") (identifier "piVar18") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "MD5Final(auStack_417c,auStack_41d8);" (call_expression "MD5Final(auStack_417c,auStack_41d8)" (identifier "MD5Final") (argument_list "(auStack_417c,auStack_41d8)" (( "(") (identifier "auStack_417c") (, ",") (identifier "auStack_41d8") () ")"))) (; ";")) (expression_statement "des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);" (call_expression "des3_encrypt_pubkey(auStack_417c,puVar23,uVar4)" (identifier "des3_encrypt_pubkey") (argument_list "(auStack_417c,puVar23,uVar4)" (( "(") (identifier "auStack_417c") (, ",") (identifier "puVar23") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "smemclr(auStack_417c,0x10);" (call_expression "smemclr(auStack_417c,0x10)" (identifier "smemclr") (argument_list "(auStack_417c,0x10)" (( "(") (identifier "auStack_417c") (, ",") (number_literal "0x10") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;" (assignment_expression "iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c" (identifier "iVar9") (= "=") (binary_expression "*(int *)(pcVar26 + 0x3038c) + -0x195c" (pointer_expression "*(int *)(pcVar26 + 0x3038c)" (* "*") (cast_expression "(int *)(pcVar26 + 0x3038c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x3038c)" (( "(") (binary_expression "pcVar26 + 0x3038c" (identifier "pcVar26") (+ "+") (number_literal "0x3038c")) () ")")))) (+ "+") (number_literal "-0x195c"))) (; ";")) (expression_statement "iVar3 = f_open(iVar3,iVar9,1);" (assignment_expression "iVar3 = f_open(iVar3,iVar9,1)" (identifier "iVar3") (= "=") (call_expression "f_open(iVar3,iVar9,1)" (identifier "f_open") (argument_list "(iVar3,iVar9,1)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar9") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar20 = (int)puVar19 - (int)auStack_416c;\n    iVar9 = 1;\n    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);\n    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);\n    if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }\n  }" ({ "{") (expression_statement "iVar20 = (int)puVar19 - (int)auStack_416c;" (assignment_expression "iVar20 = (int)puVar19 - (int)auStack_416c" (identifier "iVar20") (= "=") (binary_expression "(int)puVar19 - (int)auStack_416c" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (- "-") (cast_expression "(int)auStack_416c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "auStack_416c")))) (; ";")) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);" (assignment_expression "iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3)" (identifier "iVar24") (= "=") (call_expression "(**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x30880))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x30880)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x30880)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30880)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30880)" (( "(") (binary_expression "pcVar26 + 0x30880" (identifier "pcVar26") (+ "+") (number_literal "0x30880")) () ")"))))) () ")")) (argument_list "(auStack_416c,1,iVar20,iVar3)" (( "(") (identifier "auStack_416c") (, ",") (number_literal "1") (, ",") (identifier "iVar20") (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);" (assignment_expression "iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar26 + 0x307ec))(iVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x307ec))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x307ec)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x307ec)" (* "*") (cast_expression "(code **)(pcVar26 + 0x307ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x307ec)" (( "(") (binary_expression "pcVar26 + 0x307ec" (identifier "pcVar26") (+ "+") (number_literal "0x307ec")) () ")"))))) () ")")) (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (uint)(iVar20 == iVar24);\n      goto LAB_0003a054;\n    }" ({ "{") (expression_statement "uVar4 = (uint)(iVar20 == iVar24);" (assignment_expression "uVar4 = (uint)(iVar20 == iVar24)" (identifier "uVar4") (= "=") (call_expression "(uint)(iVar20 == iVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar20 == iVar24)" (( "(") (binary_expression "iVar20 == iVar24" (identifier "iVar20") (== "==") (identifier "iVar24")) () ")")))) (; ";")) (goto_statement "goto LAB_0003a054;" (goto "goto") (statement_identifier "LAB_0003a054") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0003a054:\n  if (iStack_16c == *piVar22) {\n    return uVar4;\n  }" (statement_identifier "LAB_0003a054") (: ":") (if_statement "if (iStack_16c == *piVar22) {\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(iStack_16c == *piVar22)" (( "(") (binary_expression "iStack_16c == *piVar22" (identifier "iStack_16c") (== "==") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n    return uVar4;\n  }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (expression_statement "pcVar26 = *(code **)(pcVar26 + 0x30898);" (assignment_expression "pcVar26 = *(code **)(pcVar26 + 0x30898)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x30898)" (* "*") (cast_expression "(code **)(pcVar26 + 0x30898)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x30898)" (( "(") (binary_expression "pcVar26 + 0x30898" (identifier "pcVar26") (+ "+") (number_literal "0x30898")) () ")"))))) (; ";")) (expression_statement "iVar3 = iStack_16c;" (assignment_expression "iVar3 = iStack_16c" (identifier "iVar3") (= "=") (identifier "iStack_16c")) (; ";")) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar24 = match_ssh_id();" (assignment_expression "iVar24 = match_ssh_id()" (identifier "iVar24") (= "=") (call_expression "match_ssh_id()" (identifier "match_ssh_id") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar24 == 0) {\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }\n  else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);\n    if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }\n    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);\n    if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }\n  }" ({ "{") (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" (identifier "iVar24") (= "=") (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" (identifier "match_ssh_id") (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar9") (, ",") (binary_expression "*(int *)(pcVar26 + 0x2ffac) + -0x1ac8" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" (* "*") (cast_expression "(int *)(pcVar26 + 0x2ffac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x2ffac)" (( "(") (binary_expression "pcVar26 + 0x2ffac" (identifier "pcVar26") (+ "+") (number_literal "0x2ffac")) () ")")))) (+ "+") (number_literal "-0x1ac8")) () ")")))) (; ";")) (if_statement "if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30070);\n    }" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return *(uint *)(pcVar26 + 0x30070);\n    }" ({ "{") (return_statement "return *(uint *)(pcVar26 + 0x30070);" (return "return") (pointer_expression "*(uint *)(pcVar26 + 0x30070)" (* "*") (cast_expression "(uint *)(pcVar26 + 0x30070)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x30070)" (( "(") (binary_expression "pcVar26 + 0x30070" (identifier "pcVar26") (+ "+") (number_literal "0x30070")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" (identifier "iVar24") (= "=") (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" (identifier "match_ssh_id") (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar9") (, ",") (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3330" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" (* "*") (cast_expression "(int *)(pcVar26 + 0x2ffac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x2ffac)" (( "(") (binary_expression "pcVar26 + 0x2ffac" (identifier "pcVar26") (+ "+") (number_literal "0x2ffac")) () ")")))) (+ "+") (number_literal "0x3330")) () ")")))) (; ";")) (if_statement "if (iVar24 != 0) {\n      return *(uint *)(pcVar26 + 0x30124);\n    }" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return *(uint *)(pcVar26 + 0x30124);\n    }" ({ "{") (return_statement "return *(uint *)(pcVar26 + 0x30124);" (return "return") (pointer_expression "*(uint *)(pcVar26 + 0x30124)" (* "*") (cast_expression "(uint *)(pcVar26 + 0x30124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x30124)" (( "(") (binary_expression "pcVar26 + 0x30124" (identifier "pcVar26") (+ "+") (number_literal "0x30124")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" (identifier "iVar24") (= "=") (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" (identifier "match_ssh_id") (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar9") (, ",") (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x331c" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" (* "*") (cast_expression "(int *)(pcVar26 + 0x2ffac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x2ffac)" (( "(") (binary_expression "pcVar26 + 0x2ffac" (identifier "pcVar26") (+ "+") (number_literal "0x2ffac")) () ")")))) (+ "+") (number_literal "0x331c")) () ")")))) (; ";")) (if_statement "if (iVar24 == 0) {\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }\n    else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);\n      if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }\n    }" ({ "{") (expression_statement "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);" (assignment_expression "iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" (identifier "iVar24") (= "=") (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" (identifier "match_ssh_id") (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar9") (, ",") (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3308" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" (* "*") (cast_expression "(int *)(pcVar26 + 0x2ffac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x2ffac)" (( "(") (binary_expression "pcVar26 + 0x2ffac" (identifier "pcVar26") (+ "+") (number_literal "0x2ffac")) () ")")))) (+ "+") (number_literal "0x3308")) () ")")))) (; ";")) (if_statement "if (iVar24 == 0) {\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }\n      else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);\n        uVar4 = *(uint *)(pcVar26 + 0x30068);\n        if (iVar3 == 0) {\n          uVar4 = 0;\n        }\n      }" ({ "{") (expression_statement "iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);" (assignment_expression "iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" (identifier "iVar3") (= "=") (call_expression "match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" (identifier "match_ssh_id") (argument_list "(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar9") (, ",") (binary_expression "*(int *)(pcVar26 + 0x2ffac) + 0x3344" (pointer_expression "*(int *)(pcVar26 + 0x2ffac)" (* "*") (cast_expression "(int *)(pcVar26 + 0x2ffac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x2ffac)" (( "(") (binary_expression "pcVar26 + 0x2ffac" (identifier "pcVar26") (+ "+") (number_literal "0x2ffac")) () ")")))) (+ "+") (number_literal "0x3344")) () ")")))) (; ";")) (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30068);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30068)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(pcVar26 + 0x30068)" (* "*") (cast_expression "(uint *)(pcVar26 + 0x30068)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x30068)" (( "(") (binary_expression "pcVar26 + 0x30068" (identifier "pcVar26") (+ "+") (number_literal "0x30068")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\n          uVar4 = 0;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = 0;\n        }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" (else "else") (compound_statement "{\n        uVar4 = *(uint *)(pcVar26 + 0x3012c);\n      }" ({ "{") (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x3012c);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x3012c)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(pcVar26 + 0x3012c)" (* "*") (cast_expression "(uint *)(pcVar26 + 0x3012c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x3012c)" (( "(") (binary_expression "pcVar26 + 0x3012c" (identifier "pcVar26") (+ "+") (number_literal "0x3012c")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" (else "else") (compound_statement "{\n      uVar4 = *(uint *)(pcVar26 + 0x30128);\n    }" ({ "{") (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30128);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30128)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(pcVar26 + 0x30128)" (* "*") (cast_expression "(uint *)(pcVar26 + 0x30128)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x30128)" (( "(") (binary_expression "pcVar26 + 0x30128" (identifier "pcVar26") (+ "+") (number_literal "0x30128")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" (else "else") (compound_statement "{\n    uVar4 = *(uint *)(pcVar26 + 0x30048);\n  }" ({ "{") (expression_statement "uVar4 = *(uint *)(pcVar26 + 0x30048);" (assignment_expression "uVar4 = *(uint *)(pcVar26 + 0x30048)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(pcVar26 + 0x30048)" (* "*") (cast_expression "(uint *)(pcVar26 + 0x30048)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x30048)" (( "(") (binary_expression "pcVar26 + 0x30048" (identifier "pcVar26") (+ "+") (number_literal "0x30048")) () ")"))))) (; ";")) (} "}")))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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: (primitive_type) 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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_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: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_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))) (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (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 (identifier) (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: (parenthesized_expression (comma_expression left: (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) (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))))) right: (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: (primitive_type) 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: (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)))) (expression_statement (assignment_expression left: (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) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (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: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_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)) 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: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (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: (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 (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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 (binary_expression left: (identifier) right: (number_literal)) (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (while_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (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) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) 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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (return_statement (identifier)))))

/* WARNING: Type propagation algorithm not settling */

uint MASKED(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 *param_4)

{
  undefined *puVar1;
  undefined1 extraout_var;
  undefined1 extraout_var_00;
  undefined1 extraout_var_01;
  undefined1 extraout_var_02;
  undefined1 extraout_var_03;
  undefined1 extraout_var_04;
  int *piVar2;
  int iVar3;
  uint uVar4;
  int *piVar5;
  undefined4 uVar6;
  char *pcVar7;
  char *pcVar8;
  int iVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  undefined1 uVar12;
  undefined4 *puVar13;
  undefined4 *puVar14;
  undefined4 *puVar15;
  undefined4 uVar16;
  int *piVar17;
  int *piVar18;
  int *unaff_s0;
  undefined1 *puVar19;
  int iVar20;
  int *piVar21;
  undefined1 *unaff_s2;
  int *piVar22;
  int *unaff_s4;
  undefined1 *puVar23;
  int *unaff_s7;
  int iVar24;
  undefined *puVar25;
  code *pcVar26;
  char *pcVar27;
  code *pcVar28;
  undefined1 auStack_41d8 [92];
  undefined1 auStack_417c [16];
  undefined4 auStack_416c [4];
  undefined1 auStack_415c [17];
  undefined1 uStack_414b;
  undefined2 uStack_414a;
  undefined2 uStack_4148;
  undefined1 uStack_4146;
  undefined1 uStack_4145;
  undefined1 uStack_4144;
  undefined1 uStack_4143;
  undefined1 auStack_4142 [16342];
  int iStack_16c;
  int *piStack_164;
  int *piStack_160;
  undefined4 *puStack_15c;
  int *piStack_158;
  int *piStack_154;
  int *piStack_150;
  undefined4 *puStack_14c;
  int *piStack_148;
  code *pcStack_144;
  undefined4 uStack_130;
  int *piStack_12c;
  undefined *puStack_128;
  char *pcStack_120;
  int *piStack_11c;
  int aiStack_114 [10];
  undefined1 auStack_ec [64];
  int iStack_ac;
  int *piStack_a8;
  undefined *puStack_a4;
  undefined1 *puStack_a0;
  undefined4 *puStack_9c;
  int *local_70;
  undefined1 auStack_5c [64];
  int local_1c;
  
  puVar1 = PTR___stack_chk_guard_0006a594;
  piVar17 = (int *)0x0;
  puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cc0);
  local_1c = *(int *)PTR___stack_chk_guard_0006a594;
  piVar2 = (int *)f_open();
  if (piVar2 == (int *)0x0) {
    uVar4 = 0;
  }
  else {
    unaff_s2 = auStack_5c;
    puVar15 = (undefined4 *)&DAT_00000040;
    piVar17 = piVar2;
    iVar3 = (*(code *)PTR_fgets_0006a588)(unaff_s2);
    unaff_s0 = piVar2;
    if (iVar3 != 0) {
      puVar15 = (undefined4 *)(PTR_DAT_0006a068 + 0x6cd4);
      iVar3 = (*(code *)PTR_strcmp_0006a5c8)(unaff_s2);
      if (iVar3 == 0) {
        piVar17 = (int *)0x0;
        local_70 = (int *)0x0;
        puVar15 = (undefined4 *)0x0;
        param_4 = param_2;
        uVar4 = FUN_00038b60(piVar2);
        goto LAB_00039880;
      }
    }
    (*(code *)PTR_fclose_0006a4c8)(piVar2);
    uVar4 = 0;
  }
LAB_00039880:
  if (local_1c == *(int *)puVar1) {
    return uVar4;
  }
  puVar25 = PTR___stack_chk_fail_0006a574;
  (*(code *)PTR___stack_chk_fail_0006a574)();
  puStack_128 = puVar25 + 0x38744;
  puStack_a4 = puVar1;
  piVar21 = *(int **)(puVar25 + 0x30ca8);
  piVar18 = (int *)0x0;
  piVar2 = (int *)(*(int *)(puVar25 + 0x3077c) + 0x6cc0);
  aiStack_114[0] = 0;
  iStack_ac = *piVar21;
  *puVar15 = 0;
  *piVar17 = 0;
  piStack_a8 = unaff_s0;
  puStack_a0 = unaff_s2;
  puStack_9c = param_2;
  piVar5 = (int *)f_open();
  if (piVar5 == (int *)0x0) {
    aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cc4;
LAB_00039a34:
    uVar4 = 0;
    piVar5 = unaff_s0;
    if (local_70 != (int *)0x0) {
      *local_70 = aiStack_114[0];
    }
  }
  else {
    piVar18 = piVar5;
    iVar3 = (**(code **)(puStack_128 + -0x7aa8))(auStack_ec,0x40);
    unaff_s0 = piVar5;
    if ((iVar3 == 0) ||
       (iVar3 = (**(code **)(puStack_128 + -0x7a68))
                          (auStack_ec,*(int *)(puStack_128 + -0x7fc8) + 0x6cd4), iVar3 != 0)) {
      unaff_s7 = *(int **)(puStack_128 + -0x7fc8);
      (**(code **)(puStack_128 + -0x7ac0))(piVar5);
      uVar6 = fgetline(piVar5);
      unaff_s4 = (int *)chomp(uVar6);
      piVar2 = unaff_s7 + 0x1b44;
      iVar3 = (**(code **)(puStack_128 + -0x7bac))(unaff_s4);
      pcVar7 = (char *)((int)unaff_s4 + iVar3);
      if (*pcVar7 == ' ') {
        pcStack_120 = pcVar7 + 1;
        pcVar26 = *(code **)(puStack_128 + -0x7bac);
        piVar2 = unaff_s7 + 0x1b44;
        *pcVar7 = '\0';
        iVar3 = (*pcVar26)(pcStack_120);
        pcVar7 = pcStack_120 + iVar3;
        piVar18 = (int *)(int)*pcVar7;
        piStack_11c = piVar18;
        if (piVar18 != (int *)&DAT_00000020) goto LAB_00039a0c;
        pcVar27 = pcVar7 + 1;
        pcVar26 = *(code **)(puStack_128 + -0x7bac);
        piVar2 = unaff_s7 + 0x1b44;
        *pcVar7 = '\0';
        iVar3 = (*pcVar26)(pcVar27);
        pcVar7 = pcStack_120;
        pcVar8 = pcVar27 + iVar3;
        if ((int *)(int)*pcVar8 == (int *)0x0) {
          pcStack_120 = (char *)0x0;
        }
        else {
          piVar18 = piStack_11c;
          if ((int *)(int)*pcVar8 != piStack_11c) goto LAB_00039a0c;
          pcStack_120 = pcVar8 + 1;
          *pcVar8 = '\0';
        }
        unaff_s7 = aiStack_114 + 1;
        aiStack_114[1] = 0;
        aiStack_114[2] = 0;
        aiStack_114[3] = 0;
        aiStack_114[4] = 0;
        aiStack_114[5] = 0;
        aiStack_114[6] = 0;
        aiStack_114[7] = 0;
        aiStack_114[8] = 0;
        aiStack_114[9] = 0;
        aiStack_114[4] = bignum_from_decimal(pcVar7);
        aiStack_114[3] = bignum_from_decimal(pcVar27);
        piVar18 = (int *)0xa;
        piVar2 = (int *)0x0;
        iVar3 = (**(code **)(puStack_128 + -0x7b9c))(unaff_s4);
        iVar9 = bignum_bitcount(aiStack_114[3]);
        if (iVar9 == iVar3) {
          if (param_4 != (undefined4 *)0x0) {
            pcVar7 = pcStack_120;
            if (pcStack_120 != (char *)0x0) {
              pcVar7 = (char *)dupstr(pcStack_120);
            }
            *param_4 = pcVar7;
          }
          piVar2 = piVar17;
          uVar6 = rsa_public_blob(unaff_s7);
          *puVar15 = uVar6;
          freersakey(unaff_s7);
          safefree(unaff_s4);
          (**(code **)(puStack_128 + -0x7b68))(piVar5);
          uVar4 = 1;
          goto LAB_00039a44;
        }
        freebn(aiStack_114[4]);
        freebn(aiStack_114[3]);
        safefree(unaff_s4);
        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6d1c;
      }
      else {
LAB_00039a0c:
        safefree(unaff_s4);
        aiStack_114[0] = *(int *)(puStack_128 + -0x7fc8) + 0x6cf8;
      }
      (**(code **)(puStack_128 + -0x7b68))(piVar5);
      goto LAB_00039a34;
    }
    piStack_12c = aiStack_114;
    unaff_s4 = aiStack_114 + 1;
    uStack_130 = 0;
    piVar18 = (int *)0x1;
    aiStack_114[1] = 0;
    aiStack_114[2] = 0;
    aiStack_114[3] = 0;
    aiStack_114[4] = 0;
    aiStack_114[5] = 0;
    aiStack_114[6] = 0;
    aiStack_114[7] = 0;
    aiStack_114[8] = 0;
    aiStack_114[9] = 0;
    piVar2 = unaff_s4;
    iVar3 = FUN_00038b60(piVar5,unaff_s4,1,param_4);
    if (iVar3 == 0) goto LAB_00039a34;
    piVar2 = piVar17;
    uVar6 = rsa_public_blob(unaff_s4);
    *puVar15 = uVar6;
    freersakey(unaff_s4);
    uVar4 = 1;
  }
LAB_00039a44:
  if (iStack_ac == *piVar21) {
    return uVar4;
  }
  pcVar26 = *(code **)(puStack_128 + -0x7abc);
  pcVar28 = saversakey;
  iVar3 = iStack_ac;
  (*pcVar26)();
  iVar9 = *(int *)(pcVar26 + 0x3038c);
  piStack_150 = local_70;
  piVar22 = *(int **)(pcVar26 + 0x308b8);
  iStack_16c = *piVar22;
  puVar10 = (undefined4 *)(iVar9 + 0x6cd4);
  puVar13 = auStack_416c;
  do {
    puVar11 = puVar10 + 4;
    puVar14 = puVar13 + 4;
    *puVar13 = *puVar10;
    uVar16 = puVar10[2];
    uVar6 = puVar10[3];
    puVar13[1] = puVar10[1];
    puVar13[2] = uVar16;
    puVar13[3] = uVar6;
    puVar10 = puVar11;
    puVar13 = puVar14;
  } while (puVar11 != (undefined4 *)(iVar9 + 0x6cf4));
  uVar12 = 3;
  if (piVar18 == (int *)0x0) {
    uVar12 = 0;
  }
  iVar9 = piVar2[2];
  *(undefined1 *)puVar14 = *(undefined1 *)puVar11;
  uStack_414a = 0;
  uStack_4148 = 0;
  uStack_414b = uVar12;
  piStack_164 = piVar5;
  piStack_160 = piVar21;
  puStack_15c = puVar15;
  piStack_158 = piVar17;
  piStack_154 = unaff_s4;
  puStack_14c = param_4;
  piStack_148 = unaff_s7;
  pcStack_144 = pcVar28;
  bignum_bitcount(iVar9);
  uStack_4146 = extraout_var;
  bignum_bitcount(piVar2[2]);
  uStack_4145 = extraout_var_01;
  bignum_bitcount(piVar2[2]);
  uStack_4144 = extraout_var_03;
  uStack_4143 = bignum_bitcount(piVar2[2]);
  iVar9 = ssh1_write_bignum(auStack_4142,piVar2[2]);
  puVar19 = auStack_4142 + iVar9;
  iVar9 = ssh1_write_bignum(puVar19,piVar2[3]);
  iVar24 = piVar2[8];
  puVar19 = puVar19 + iVar9;
  if (iVar24 == 0) {
    puVar23 = puVar19 + 4;
    *puVar19 = 0;
    puVar19[1] = 0;
    puVar19[2] = 0;
    puVar19[3] = 0;
  }
  else {
    (**(code **)(pcVar26 + 0x30840))(iVar24);
    pcVar28 = *(code **)(pcVar26 + 0x30840);
    *puVar19 = extraout_var_00;
    (*pcVar28)(iVar24);
    pcVar28 = *(code **)(pcVar26 + 0x30840);
    puVar19[1] = extraout_var_02;
    (*pcVar28)(iVar24);
    pcVar28 = *(code **)(pcVar26 + 0x30840);
    puVar19[2] = extraout_var_04;
    uVar12 = (*pcVar28)(iVar24);
    pcVar28 = *(code **)(pcVar26 + 0x30840);
    puVar19[3] = uVar12;
    uVar6 = (*pcVar28)(iVar24);
    (**(code **)(pcVar26 + 0x308bc))(puVar19 + 4,iVar24,uVar6);
    iVar9 = (**(code **)(pcVar26 + 0x30840))(iVar24);
    puVar23 = puVar19 + 4 + iVar9;
  }
  puVar19 = puVar23 + 4;
  uVar12 = random_byte();
  *puVar23 = uVar12;
  uVar12 = random_byte();
  iVar9 = piVar2[4];
  puVar23[1] = uVar12;
  puVar23[2] = *puVar23;
  puVar23[3] = uVar12;
  iVar9 = ssh1_write_bignum(puVar19,iVar9);
  puVar19 = puVar19 + iVar9;
  iVar9 = ssh1_write_bignum(puVar19,piVar2[7]);
  puVar19 = puVar19 + iVar9;
  iVar9 = ssh1_write_bignum(puVar19,piVar2[6]);
  puVar19 = puVar19 + iVar9;
  iVar9 = ssh1_write_bignum(puVar19,piVar2[5]);
  uVar4 = (int)(puVar19 + iVar9) - (int)puVar23;
  puVar19 = puVar19 + iVar9;
  while ((uVar4 & 7) != 0) {
    *puVar19 = 0;
    uVar4 = (int)(puVar19 + 1) - (int)puVar23;
    puVar19 = puVar19 + 1;
  }
  if (piVar18 != (int *)0x0) {
    MD5Init(auStack_41d8);
    uVar6 = (**(code **)(pcVar26 + 0x30840))(piVar18);
    MD5Update(auStack_41d8,piVar18,uVar6);
    MD5Final(auStack_417c,auStack_41d8);
    des3_encrypt_pubkey(auStack_417c,puVar23,uVar4);
    smemclr(auStack_417c,0x10);
  }
  iVar9 = *(int *)(pcVar26 + 0x3038c) + -0x195c;
  iVar3 = f_open(iVar3,iVar9,1);
  if (iVar3 != 0) {
    iVar20 = (int)puVar19 - (int)auStack_416c;
    iVar9 = 1;
    iVar24 = (**(code **)(pcVar26 + 0x30880))(auStack_416c,1,iVar20,iVar3);
    iVar3 = (**(code **)(pcVar26 + 0x307ec))(iVar3);
    if (iVar3 == 0) {
      uVar4 = (uint)(iVar20 == iVar24);
      goto LAB_0003a054;
    }
  }
  uVar4 = 0;
LAB_0003a054:
  if (iStack_16c == *piVar22) {
    return uVar4;
  }
  pcVar26 = *(code **)(pcVar26 + 0x30898);
  iVar3 = iStack_16c;
  (*pcVar26)();
  iVar24 = match_ssh_id();
  if (iVar24 == 0) {
    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + -0x1ac8);
    if (iVar24 != 0) {
      return *(uint *)(pcVar26 + 0x30070);
    }
    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3330);
    if (iVar24 != 0) {
      return *(uint *)(pcVar26 + 0x30124);
    }
    iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x331c);
    if (iVar24 == 0) {
      iVar24 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3308);
      if (iVar24 == 0) {
        iVar3 = match_ssh_id(iVar3,iVar9,*(int *)(pcVar26 + 0x2ffac) + 0x3344);
        uVar4 = *(uint *)(pcVar26 + 0x30068);
        if (iVar3 == 0) {
          uVar4 = 0;
        }
      }
      else {
        uVar4 = *(uint *)(pcVar26 + 0x3012c);
      }
    }
    else {
      uVar4 = *(uint *)(pcVar26 + 0x30128);
    }
  }
  else {
    uVar4 = *(uint *)(pcVar26 + 0x30048);
  }
  return uVar4;
}

