
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

int req_main(int argc,char **argv)

{
  int iVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  undefined *puVar6;
  EVP_PKEY *pEVar7;
  bool bVar8;
  char cVar9;
  EVP_CIPHER *pEVar10;
  char **ppcVar11;
  int iVar12;
  char *pcVar13;
  char *pcVar14;
  BIO *pBVar15;
  ushort **ppuVar16;
  ASN1_INTEGER *pAVar17;
  BIO_METHOD *type;
  stack_st_CONF_VALUE *psVar18;
  byte *pbVar19;
  int iVar20;
  ulong uVar21;
  undefined1 *result;
  stack_st_CONF_VALUE *section;
  stack_st_CONF_VALUE *psVar22;
  ulong uVar23;
  X509_NAME *pXVar24;
  EVP_PKEY *pEVar25;
  X509_NAME *pXVar26;
  BIO **ppBVar27;
  char *value;
  char *pcVar28;
  uint uVar29;
  stack_st_CONF_VALUE *extraout_ECX;
  stack_st_CONF_VALUE *extraout_EDX;
  undefined4 extraout_EDX_00;
  undefined4 extraout_EDX_01;
  undefined4 extraout_EDX_02;
  byte *pbVar30;
  int iVar31;
  X509 *x;
  X509_REQ *x_00;
  int in_GS_OFFSET;
  bool bVar32;
  bool bVar33;
  bool bVar34;
  byte bVar35;
  undefined8 uVar36;
  undefined4 uVar37;
  stack_st_CONF_VALUE *psVar38;
  uint local_598;
  uint local_594;
  int local_588;
  uint local_584;
  uint local_580;
  int local_57c;
  uint local_578;
  EVP_PKEY *local_570;
  uint local_56c;
  uint local_564;
  BIO *local_560;
  int local_55c;
  stack_st_OPENSSL_STRING *local_558;
  ASN1_INTEGER *local_554;
  BIO *local_550;
  int local_54c;
  BIO *local_548;
  ENGINE *local_544;
  ENGINE *local_540;
  uint local_53c;
  char *local_538;
  char *local_534;
  int local_530;
  char *local_52c;
  char **local_528;
  stack_st_CONF_VALUE *local_524;
  uint local_520;
  char *local_51c;
  char *local_518;
  char *local_514;
  EVP_MD *local_510;
  char *local_50c;
  EVP_CIPHER *local_500;
  ulong local_4ec;
  EVP_PKEY *pkey;
  EVP_MD *md_alg;
  char *keyalgstr;
  char *passin;
  char *passout;
  int pkey_type;
  int informat;
  int outformat;
  int keyform;
  long newkey;
  ulong reqflag;
  long n_min;
  X509V3_CTX ctx;
  char buf [100];
  char buf_1 [1024];
  
  bVar35 = 0;
  bVar34 = false;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  pkey = (EVP_PKEY *)0x0;
  md_alg = (EVP_MD *)0x0;
  local_560 = (BIO *)default_config_file;
  keyalgstr = (char *)0x0;
  passin = (char *)0x0;
  passout = (char *)0x0;
  pkey_type = -1;
  informat = 0x8005;
  outformat = 0x8005;
  keyform = 0x8005;
  newkey = -1;
  reqflag = 0;
  pEVar10 = EVP_des_ede3_cbc();
  result = req_options;
  ppcVar11 = (char **)opt_init(argc,argv,(OPTIONS *)req_options);
  local_588 = 0x1001;
  bVar4 = false;
  local_56c = 0;
  local_584 = 0;
  bVar5 = false;
  bVar3 = false;
  local_594 = 0;
  local_580 = 0;
  local_578 = 0;
  local_57c = 0;
  local_520 = 0;
  bVar2 = false;
  local_530 = 0;
  local_53c = 0;
  local_570 = (EVP_PKEY *)0x0;
  local_518 = (char *)0x0;
  local_51c = (char *)0x0;
  local_524 = (stack_st_CONF_VALUE *)0x0;
  local_548 = (BIO *)0x0;
  local_534 = (char *)0x0;
  local_514 = (char *)0x0;
  local_50c = (char *)0x0;
  local_52c = (char *)0x0;
  local_528 = (char **)0x0;
  local_550 = (BIO *)0x0;
  local_510 = (EVP_MD *)0x0;
  local_54c = 0;
  local_558 = (stack_st_OPENSSL_STRING *)0x0;
  local_55c = 0;
  local_544 = (ENGINE *)0x0;
  local_540 = (ENGINE *)0x0;
  local_554 = (ASN1_INTEGER *)0x0;
LAB_0004e430:
  iVar12 = opt_next();
  if (iVar12 != 0) goto LAB_0004e43d;
LAB_0004e6f0:
  iVar12 = opt_num_rest();
  if (iVar12 != 0) goto LAB_0004e51a;
  local_564 = local_53c ^ 1;
  if ((local_530 != 0) && (local_564 != 0)) {
    BIO_printf((BIO *)bio_err,"Ignoring -days; not generating a certificate\n");
  }
  pEVar7 = pkey;
  bVar8 = (bool)(local_52c == (char *)0x0 & (byte)local_53c);
  bVar32 = bVar34;
  if (bVar8 != false) {
    bVar34 = bVar8;
    bVar32 = true;
  }
  pcVar13 = (char *)&passin;
  iVar12 = app_passwd(local_534,(char *)local_548,(char **)pcVar13,&passout);
  if (iVar12 == 0) {
    pcVar14 = "Error getting passwords\n";
    goto LAB_0004e52c;
  }
  if (bVar2) {
    pcVar13 = (char *)local_560;
    BIO_printf((BIO *)bio_err,"Using configuration from %s\n",local_560);
    req_conf = app_load_config((char *)local_560);
    if (local_550 != (BIO *)0x0) {
      BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);
      goto LAB_0004e7d1;
    }
  }
  else {
    req_conf = app_load_config((char *)local_560);
    if (local_550 != (BIO *)0x0) {
LAB_0004e7d1:
      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);
    }
  }
  if (((BIO *)default_config_file != local_560) &&
     (iVar12 = app_load_modules(req_conf), iVar12 == 0)) goto LAB_0004eb16;
  if (req_conf != (CONF *)0x0) {
    pcVar13 = "oid_file";
    pcVar14 = NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file");
    if (pcVar14 == (char *)0x0) {
      ERR_clear_error();
    }
    else {
      pBVar15 = BIO_new_file(pcVar14,"r");
      if (pBVar15 != (BIO *)0x0) {
        OBJ_create_objects(pBVar15);
        BIO_free(pBVar15);
      }
    }
  }
  iVar12 = add_oid_section(req_conf);
  if (iVar12 != 0) {
    if (md_alg == (EVP_MD *)0x0) {
      pcVar13 = "default_md";
      pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");
      if (pcVar14 == (char *)0x0) {
        ERR_clear_error();
      }
      else {
        iVar12 = opt_md(pcVar14,&md_alg);
        if (iVar12 == 0) goto LAB_0004e51a;
        local_510 = md_alg;
      }
    }
    if (local_528 == (char **)0x0) {
      pcVar13 = "x509_extensions";
      local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");
      if (local_528 != (char **)0x0) goto LAB_0004e89e;
      ERR_clear_error();
    }
    else {
LAB_0004e89e:
      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);
      iVar12 = X509V3_EXT_add_nconf
                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);
      if (iVar12 == 0) {
        pcVar14 = "Error Loading extension section %s\n";
        pcVar13 = (char *)local_528;
        goto LAB_0004e52c;
      }
    }
    if (addext_conf != (CONF *)0x0) {
      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);
      iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);
      if (iVar12 == 0) {
        pcVar14 = "Error Loading command line extensions\n";
        goto LAB_0004e52c;
      }
    }
    local_538 = (char *)0x0;
    if ((passin == (char *)0x0) &&
       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,
       local_538 == (char *)0x0)) {
      ERR_clear_error();
    }
    local_534 = (char *)0x0;
    if ((passout == (char *)0x0) &&
       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,
       local_534 == (char *)0x0)) {
      ERR_clear_error();
    }
    pcVar13 = "string_mask";
    psVar18 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask");
    if (psVar18 == (stack_st_CONF_VALUE *)0x0) {
      ERR_clear_error();
    }
    else {
      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);
      if (iVar12 == 0) {
        pcVar13 = "Invalid global string mask setting %s\n";
        goto LAB_0004fba6;
      }
    }
    if (local_588 == 0x1000) goto LAB_0004f5da;
    pcVar13 = "utf8";
    pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","utf8");
    bVar8 = false;
    bVar33 = pbVar19 == (byte *)0x0;
    if (bVar33) {
      ERR_clear_error();
      local_4ec = 0x1001;
      goto LAB_0004f11f;
    }
    iVar12 = 4;
    pbVar30 = &DAT_0007e7a8;
    goto code_r0x0004f105;
  }
  goto LAB_0004eb16;
LAB_0004e43d:
  while (iVar12 != 0x15) {
    if (iVar12 < 0x16) {
      if (iVar12 == 10) {
        pcVar13 = opt_arg();
        result = (undefined1 *)&keyform;
        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);
      }
      else if (iVar12 < 0xb) {
        if (iVar12 == 4) {
          pcVar13 = opt_arg();
          local_540 = setup_engine(pcVar13,0);
          goto LAB_0004e430;
        }
        if (4 < iVar12) {
          if (iVar12 == 7) {
            local_56c = 1;
            goto LAB_0004e430;
          }
          if (7 < iVar12) {
            if (iVar12 == 8) {
              bVar34 = true;
            }
            else if (iVar12 == 9) {
              local_560 = (BIO *)opt_arg();
            }
            goto LAB_0004e430;
          }
          if (iVar12 != 5) {
            if (iVar12 == 6) {
              local_514 = opt_arg();
            }
            goto LAB_0004e430;
          }
          pcVar13 = opt_arg();
          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);
          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;
          result = *argv;
          pcVar13 = "Can\'t find keygen engine %s\n";
LAB_0004e4a9:
          BIO_printf((BIO *)bio_err,pcVar13,result);
          goto LAB_0004e51a;
        }
        if (iVar12 == 1) {
          x_00 = (X509_REQ *)0x0;
          x = (X509 *)0x0;
          opt_help((OPTIONS *)req_options);
          local_564 = 0;
          local_534 = (char *)0x0;
          local_538 = (char *)0x0;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          local_548 = (BIO *)0x0;
          goto LAB_0004e57b;
        }
        if (iVar12 < 2) {
          if (iVar12 != -1) goto LAB_0004e430;
          goto LAB_0004e51a;
        }
        if (iVar12 == 2) {
          pcVar13 = opt_arg();
          result = (undefined1 *)&informat;
          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);
        }
        else {
          if (iVar12 != 3) goto LAB_0004e430;
          pcVar13 = opt_arg();
          result = (undefined1 *)&outformat;
          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);
        }
      }
      else {
        if (iVar12 == 0xf) {
          local_548 = (BIO *)opt_arg();
          goto LAB_0004e430;
        }
        if (iVar12 < 0x10) {
          if (iVar12 == 0xc) {
            local_50c = opt_arg();
          }
          else if (iVar12 < 0xc) {
            local_52c = opt_arg();
          }
          else if (iVar12 == 0xd) {
            local_518 = opt_arg();
          }
          else if (iVar12 == 0xe) {
            local_534 = opt_arg();
          }
          goto LAB_0004e430;
        }
        if (iVar12 == 0x12) {
          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&
             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),
             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;
          pcVar13 = opt_arg();
          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);
        }
        else {
          if (0x12 < iVar12) {
            if (iVar12 == 0x13) {
              batch = 1;
            }
            else if (iVar12 == 0x14) {
              bVar5 = true;
            }
            goto LAB_0004e430;
          }
          if (iVar12 == 0x10) {
            local_570 = (EVP_PKEY *)opt_arg();
            bVar34 = true;
            goto LAB_0004e430;
          }
          if (iVar12 != 0x11) goto LAB_0004e430;
          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))
          goto LAB_0004e51a;
          pcVar13 = opt_arg();
          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);
        }
      }
joined_r0x0004ee90:
      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;
      goto LAB_0004e430;
    }
    if (iVar12 == 0x20) {
      local_53c = 1;
      goto LAB_0004e430;
    }
    if (0x20 < iVar12) {
      if (iVar12 == 0x25) {
        local_528 = (char **)opt_arg();
        goto LAB_0004e430;
      }
      if (0x25 < iVar12) {
        if (iVar12 == 0x28) {
          pcVar13 = opt_unknown();
          iVar12 = opt_md(pcVar13,&md_alg);
          if (iVar12 == 0) goto LAB_0004e51a;
          local_510 = md_alg;
          goto LAB_0004e430;
        }
        if (0x28 < iVar12) {
          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;
          goto LAB_0004eb16;
        }
        if (iVar12 == 0x26) {
          local_524 = (stack_st_CONF_VALUE *)opt_arg();
        }
        else if (iVar12 == 0x27) {
          bVar34 = true;
          bVar4 = true;
        }
        goto LAB_0004e430;
      }
      if (iVar12 == 0x22) {
        pcVar13 = opt_arg();
        result = (undefined1 *)0xa;
        local_530 = strtol(pcVar13,(char **)0x0,10);
        goto LAB_0004e430;
      }
      if (iVar12 < 0x22) {
        local_57c = 1;
        goto LAB_0004e430;
      }
      if (iVar12 == 0x23) {
        if (local_554 != (ASN1_INTEGER *)0x0) {
          pcVar13 = "Serial number supplied twice\n";
          goto LAB_0004e4a9;
        }
        pcVar13 = opt_arg();
        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);
        pAVar17 = local_554;
        goto joined_r0x0004ee90;
      }
      if (iVar12 != 0x24) goto LAB_0004e430;
      pcVar13 = opt_arg();
      if (local_54c == 0) {
        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);
        type = BIO_s_mem();
        local_550 = BIO_new(type);
        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {
          x = (X509 *)0x0;
          x_00 = (X509_REQ *)0x0;
          local_534 = (char *)0x0;
          local_538 = (char *)0x0;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          local_548 = (BIO *)0x0;
          local_564 = 1;
          goto LAB_0004e56a;
        }
      }
      cVar9 = *pcVar13;
      if (cVar9 != '\0') goto LAB_0004ea31;
      goto LAB_0004ea4d;
    }
    if (iVar12 == 0x1a) {
      local_588 = 0x1000;
      goto LAB_0004e430;
    }
    if (iVar12 < 0x1b) {
      if (iVar12 == 0x17) {
        bVar3 = true;
      }
      else if (iVar12 < 0x17) {
        local_578 = 1;
      }
      else if (iVar12 == 0x18) {
        local_580 = 1;
      }
      else if (iVar12 == 0x19) {
        bVar2 = true;
      }
      goto LAB_0004e430;
    }
    if (iVar12 == 0x1d) {
      local_51c = opt_arg();
      goto LAB_0004e430;
    }
    if (0x1d < iVar12) {
      if (iVar12 == 0x1e) {
        local_584 = 1;
      }
      else if (iVar12 == 0x1f) {
        local_594 = 1;
      }
      goto LAB_0004e430;
    }
    if (iVar12 == 0x1b) {
      pcVar13 = opt_arg();
      iVar12 = set_nameopt(pcVar13);
      if (iVar12 != 0) goto LAB_0004e430;
      goto LAB_0004e51a;
    }
    if (iVar12 != 0x1c) goto LAB_0004e430;
    pcVar13 = opt_arg();
    iVar12 = set_cert_ex(&reqflag,pcVar13);
    if (iVar12 == 0) goto LAB_0004e51a;
    iVar12 = opt_next();
    if (iVar12 == 0) goto LAB_0004e6f0;
  }
  local_520 = 1;
  goto LAB_0004e430;
LAB_0004ea31:
  ppuVar16 = __ctype_b_loc();
  if ((*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;
  pcVar13 = pcVar13 + 1;
  cVar9 = *pcVar13;
  if (cVar9 == '\0') goto LAB_0004e51a;
  goto LAB_0004ea31;
LAB_0004ea4d:
  pcVar14 = strchr(pcVar13,0x3d);
  if (pcVar14 == (char *)0x0) goto LAB_0004e51a;
  pcVar28 = CRYPTO_strdup(pcVar13,"../apps/req.c",0xbd);
  if (pcVar28 == (char *)0x0) {
    local_534 = (char *)0x0;
    local_538 = (char *)0x0;
    local_548 = (BIO *)0x0;
    goto LAB_0004f60c;
  }
  pcVar13 = pcVar28 + ((int)pcVar14 - (int)pcVar13);
  if (pcVar28 < pcVar13) {
    ppuVar16 = __ctype_b_loc();
    while ((*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0) {
      pcVar13 = pcVar13 + -1;
      if (pcVar28 == pcVar13) goto LAB_0004f4ba;
    }
  }
  if (pcVar13 == pcVar28) {
LAB_0004f4ba:
    CRYPTO_free(pcVar28);
    goto LAB_0004e51a;
  }
  *pcVar13 = '\0';
  pBVar15 = (BIO *)OPENSSL_LH_insert(local_54c,pcVar28);
  if ((pBVar15 == (BIO *)0x0) &&
     (iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0)) {
    result = opt_arg();
    iVar12 = BIO_printf(local_550,"%s\n",result);
    if (iVar12 < 0) {
      x = (X509 *)0x0;
      x_00 = (X509_REQ *)0x0;
      local_534 = (char *)0x0;
      local_538 = (char *)0x0;
      local_570 = (EVP_PKEY *)0x0;
      local_548 = (BIO *)0x0;
      local_564 = 1;
      local_560 = (BIO *)0x0;
      goto LAB_0004e56a;
    }
    goto LAB_0004e430;
  }
  local_560 = pBVar15;
  CRYPTO_free(local_560);
LAB_0004eb16:
  x_00 = (X509_REQ *)0x0;
  x = (X509 *)0x0;
  local_564 = 1;
  local_534 = (char *)0x0;
  local_538 = (char *)0x0;
  local_570 = (EVP_PKEY *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
  goto LAB_0004e56a;
LAB_0004e51a:
  pcVar14 = "%s: Use -help for summary.\n";
  pcVar13 = (char *)ppcVar11;
LAB_0004e52c:
  BIO_printf((BIO *)bio_err,pcVar14,pcVar13);
  local_534 = (char *)0x0;
  local_538 = (char *)0x0;
LAB_0004e54e:
  local_564 = 1;
  local_570 = (EVP_PKEY *)0x0;
  x_00 = (X509_REQ *)0x0;
  x = (X509 *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
  goto LAB_0004e56a;
  while( true ) {
    iVar12 = iVar12 + -1;
    bVar8 = *pbVar19 < *pbVar30;
    bVar33 = *pbVar19 == *pbVar30;
    pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;
    pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;
    if (!bVar33) break;
code_r0x0004f105:
    if (iVar12 == 0) break;
  }
  if ((!bVar8 && !bVar33) == bVar8) {
LAB_0004f5da:
    local_4ec = 0x1000;
  }
  else {
    local_4ec = 0x1001;
  }
LAB_0004f11f:
  if (local_524 == (stack_st_CONF_VALUE *)0x0) {
    pcVar13 = "req_extensions";
    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions");
    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;
    ERR_clear_error();
  }
  else {
LAB_0004f12b:
    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);
    iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)
    ;
    if (iVar12 == 0) {
      pcVar13 = "Error Loading request extension section %s\n";
      psVar18 = local_524;
LAB_0004fba6:
      BIO_printf((BIO *)bio_err,pcVar13,psVar18);
      goto LAB_0004e54e;
    }
  }
  if (local_514 == (char *)0x0) {
LAB_0004f1d1:
    if ((pkey == (EVP_PKEY *)0x0) && (bVar34 != false)) {
      app_RAND_load_conf(req_conf,"req");
      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);
      if (iVar12 == 0) {
        newkey = 0x800;
        if (local_570 == (EVP_PKEY *)0x0) {
LAB_000500d7:
          local_570 = (EVP_PKEY *)
                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);
          if (local_570 == (EVP_PKEY *)0x0) {
            x_00 = (X509_REQ *)0x0;
            x = (X509 *)0x0;
            local_560 = (BIO *)0x0;
            local_548 = (BIO *)0x0;
            local_564 = 1;
            goto LAB_0004e56a;
          }
          goto LAB_0004f2bc;
        }
LAB_0004f245:
        local_570 = (EVP_PKEY *)
                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);
        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;
        x_00 = (X509_REQ *)0x0;
LAB_000501da:
        x = (X509 *)0x0;
        local_560 = (BIO *)0x0;
        local_548 = (BIO *)0x0;
        local_564 = 1;
      }
      else {
        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;
LAB_0004f275:
        if (newkey < 0x200) {
          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;
          BIO_printf((BIO *)bio_err,"private key length is too short,\n");
          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);
        }
        else {
          if ((0x4000 < newkey) && (pkey_type == 6)) {
            pcVar13 = (char *)0x4000;
            BIO_printf((BIO *)bio_err,
                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"
                       ,0x4000,newkey);
          }
          if ((pkey_type == 0x74) && (10000 < newkey)) {
            pcVar13 = (char *)0x2710;
            BIO_printf((BIO *)bio_err,
                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"
                       ,10000,newkey);
          }
LAB_0004f2b0:
          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;
LAB_0004f2bc:
          iVar12 = 0;
          if (local_55c != 0) {
            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {
              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);
              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);
              if (iVar20 < 1) {
                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);
                ERR_print_errors((BIO *)bio_err);
                goto LAB_0004ff7c;
              }
            }
          }
          if (pkey_type == 0x198) {
            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);
          }
          else {
            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);
          }
          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);
          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);
          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);
          if (0 < iVar12) {
            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);
            if (local_518 == (char *)0x0) {
              pcVar13 = "default_keyfile";
              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");
              if (local_518 != (char *)0x0) goto LAB_0004f392;
              ERR_clear_error();
              pcVar14 = "writing new private key to stdout\n";
            }
            else {
LAB_0004f392:
              pcVar14 = "writing new private key to \'%s\'\n";
              pcVar13 = local_518;
            }
            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);
            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))
            ;
            if (local_560 == (BIO *)0x0) {
              x_00 = (X509_REQ *)0x0;
              x = (X509 *)0x0;
              local_570 = (EVP_PKEY *)0x0;
              local_548 = (BIO *)0x0;
              local_564 = 1;
              goto LAB_0004e56a;
            }
            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");
            bVar34 = pbVar19 == (byte *)0x0;
            if (bVar34) {
              ERR_clear_error();
              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");
              bVar34 = pbVar19 == (byte *)0x0;
              if (!bVar34) goto LAB_0004f40c;
              ERR_clear_error();
              local_500 = pEVar10;
            }
            else {
LAB_0004f40c:
              bVar32 = false;
              iVar12 = 3;
              pbVar30 = &DAT_0007e9a6;
              do {
                if (iVar12 == 0) break;
                iVar12 = iVar12 + -1;
                bVar32 = *pbVar19 < *pbVar30;
                bVar34 = *pbVar19 == *pbVar30;
                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;
                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;
              } while (bVar34);
              local_500 = (EVP_CIPHER *)0x0;
              if ((!bVar32 && !bVar34) != bVar32) {
                local_500 = pEVar10;
              }
            }
            pEVar10 = (EVP_CIPHER *)0x0;
            if (!bVar3) {
              pEVar10 = local_500;
            }
            iVar12 = 0;
            while (iVar20 = PEM_write_bio_PrivateKey
                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,
                                       (undefined1 *)0x0,passout), iVar20 == 0) {
              uVar21 = ERR_peek_error();
              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {
                local_564 = 1;
                x_00 = (X509_REQ *)0x0;
                x = (X509 *)0x0;
                local_570 = (EVP_PKEY *)0x0;
                local_548 = (BIO *)0x0;
                goto LAB_0004e56a;
              }
              ERR_clear_error();
              iVar12 = iVar12 + 1;
            }
            BIO_free(local_560);
            BIO_printf((BIO *)bio_err,"-----\n");
            goto LAB_0004f6c0;
          }
          BIO_puts((BIO *)bio_err,"Error Generating Key\n");
        }
LAB_0004ff7c:
        local_564 = 1;
        x_00 = (X509_REQ *)0x0;
        x = (X509 *)0x0;
        local_560 = (BIO *)0x0;
        local_548 = (BIO *)0x0;
      }
    }
    else {
      if (bVar32) {
LAB_0004f6c0:
        if (pkey == (EVP_PKEY *)0x0) {
          x_00 = (X509_REQ *)0x0;
          local_548 = (BIO *)0x0;
LAB_000505b7:
          x = (X509 *)0x0;
          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");
          local_564 = 1;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          goto LAB_0004e56a;
        }
        x_00 = X509_REQ_new();
        pEVar7 = pkey;
        if (x_00 == (X509_REQ *)0x0) {
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_000501da;
        }
        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");
        if (pcVar13 == (char *)0x0) {
          ERR_clear_error();
          bVar34 = false;
        }
        else {
          iVar12 = strcmp(pcVar13,"no");
          bVar34 = iVar12 == 0;
        }
        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");
        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {
          pcVar14 = "unable to find \'%s\' in config\n";
          pcVar13 = "distinguished_name";
          psVar18 = extraout_ECX;
LAB_0005074a:
          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);
          goto LAB_0004f815;
        }
        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);
        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {
          pcVar14 = "unable to get \'%s\' section\n";
          psVar18 = extraout_EDX;
          goto LAB_0005074a;
        }
        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");
        if (section == (stack_st_CONF_VALUE *)0x0) {
          psVar22 = section;
          ERR_clear_error();
          local_548 = (BIO *)0x0;
        }
        else {
          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);
          local_548 = (BIO *)psVar22;
          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {
            pcVar14 = "unable to get \'%s\' section\n";
            psVar18 = (stack_st_CONF_VALUE *)0x0;
            pcVar13 = (char *)section;
            goto LAB_0005074a;
          }
        }
        uVar37 = 0;
        psVar38 = psVar22;
        iVar12 = X509_REQ_set_version(x_00,0);
        if (iVar12 == 0) {
LAB_0004f80b:
          ppBVar27 = &bio_err;
          goto LAB_0004f815;
        }
        if (local_51c == (char *)0x0) {
          if (bVar34) {
            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);
            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)
            {
              iVar20 = OPENSSL_sk_value(psVar18,iVar12);
              pbVar19 = *(byte **)(iVar20 + 4);
              bVar35 = *pbVar19;
              pbVar30 = pbVar19;
              if (bVar35 == 0) {
                iVar31 = 0;
              }
              else {
                do {
                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {
                    if (*(byte *)((int)pbVar30 + 1) != 0) {
                      pbVar19 = (byte *)((int)pbVar30 + 1);
                    }
                    break;
                  }
                  pbVar30 = (byte *)((int)pbVar30 + 1);
                  bVar35 = *pbVar30;
                } while (bVar35 != 0);
                iVar31 = 0;
                if (*pbVar19 == 0x2b) {
                  pbVar19 = pbVar19 + 1;
                  iVar31 = -1;
                }
              }
              iVar20 = X509_NAME_add_entry_by_txt
                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,
                                  iVar31);
              if (iVar20 == 0) goto LAB_0004f80b;
            }
            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);
            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {
              if (local_53c == 0) {
                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,
                    iVar12 < iVar20; iVar12 = iVar12 + 1) {
                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);
                  iVar20 = X509_REQ_add1_attr_by_txt
                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),
                                      -1);
                  if (iVar20 == 0) goto LAB_0004f80b;
                }
LAB_00050951:
                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);
                if (iVar12 != 0) goto LAB_0004fbe2;
              }
              else {
LAB_00051084:
                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);
                if (iVar12 != 0) {
                  local_548 = (BIO *)0x0;
                  goto LAB_0004f99b;
                }
              }
              goto LAB_0004f80b;
            }
LAB_000510a8:
            pcVar14 = "error, no objects specified in config file\n";
            pcVar13 = (char *)psVar18;
          }
          else {
            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);
            if (batch == 0) {
              BIO_printf((BIO *)bio_err,
                         "You are about to be asked to enter information that will be incorporated\n"
                         ,pXVar24,pXVar24);
              BIO_printf((BIO *)bio_err,"into your certificate request.\n");
              BIO_printf((BIO *)bio_err,
                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"
                        );
              BIO_printf((BIO *)bio_err,
                         "There are quite a few fields but you can leave some blank\n");
              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");
              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");
              BIO_printf((BIO *)bio_err,"-----\n");
            }
            iVar12 = OPENSSL_sk_num(psVar18);
            local_52c = (char *)0xffffffff;
            if (iVar12 != 0) {
LAB_000509ca:
              do {
                do {
                  do {
                    local_52c = (char *)((int)local_52c + 1);
                    iVar12 = OPENSSL_sk_num(psVar18);
                    if (iVar12 <= (int)local_52c) {
                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);
                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;
                      if (local_53c != 0) goto LAB_00051084;
                      if (local_548 == (BIO *)0x0) goto LAB_00050951;
                      uVar36 = OPENSSL_sk_num(local_548);
                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);
                      if ((0 < (int)uVar36) && (batch == 0)) {
                        BIO_printf((BIO *)bio_err,
                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,
                                   uVar37);
                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");
                      }
                      local_588 = -1;
                      pcVar13 = buf;
                      goto LAB_00050afd;
                    }
                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);
                    pbVar19 = *(byte **)(iVar12 + 4);
                    iVar20 = check_end((char *)pbVar19,"_min");
                  } while ((((iVar20 == 0) ||
                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||
                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||
                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));
                  bVar35 = *pbVar19;
                  pbVar30 = pbVar19;
                  if (bVar35 == 0) {
                    local_514 = (char *)0x0;
                  }
                  else {
                    do {
                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {
                        if (*(byte *)((int)pbVar30 + 1) != 0) {
                          pbVar19 = (byte *)((int)pbVar30 + 1);
                        }
                        break;
                      }
                      pbVar30 = (byte *)((int)pbVar30 + 1);
                      bVar35 = *pbVar30;
                    } while (bVar35 != 0);
                    local_514 = (char *)0x0;
                    if (*pbVar19 == 0x2b) {
                      local_514 = (char *)0xffffffff;
                      pbVar19 = pbVar19 + 1;
                    }
                  }
                  iVar20 = OBJ_txt2nid((char *)pbVar19);
                } while (iVar20 == 0);
                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");
                if (iVar31 == 0) break;
                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);
                if (pcVar14 == (char *)0x0) {
                  ERR_clear_error();
                  pcVar14 = "";
                }
                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");
                if (iVar31 == 0) break;
                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);
                if (pcVar28 == (char *)0x0) {
                  ERR_clear_error();
                }
                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");
                if (iVar31 == 0) break;
                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);
                if (iVar31 == 0) {
                  ERR_clear_error();
                  n_min = -1;
                }
                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");
                if (iVar31 == 0) break;
                psVar22 = (stack_st_CONF_VALUE *)pcVar13;
                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);
                if (iVar31 == 0) {
                  ERR_clear_error();
                  ctx.flags = -1;
                }
                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,
                                    0x87c96,"DN default",(char *)psVar22);
                if (uVar29 < 2) {
                  if (uVar29 == 0) break;
                  goto LAB_000509ca;
                }
                iVar12 = X509_NAME_add_entry_by_NID
                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);
              } while (iVar12 != 0);
              ppBVar27 = &bio_err;
              goto LAB_0004f815;
            }
            pcVar14 = "No template, please set one up.\n";
            psVar18 = (stack_st_CONF_VALUE *)0x0;
            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;
          }
          goto LAB_0005074a;
        }
        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);
        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))
        goto LAB_0004f80b;
        if (local_53c != 0) {
          local_548 = (BIO *)0x0;
          local_51c = (char *)0x0;
LAB_0004f99b:
          x = X509_new();
          if ((x != (X509 *)0x0) &&
             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||
              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {
            if (local_554 == (ASN1_INTEGER *)0x0) {
              pAVar17 = X509_get_serialNumber(x);
              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);
            }
            else {
              iVar12 = X509_set_serialNumber(x,local_554);
            }
            if (iVar12 != 0) {
              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
              iVar12 = X509_set_issuer_name(x,pXVar24);
              if (iVar12 != 0) {
                iVar12 = 0x1e;
                if (local_530 != 0) {
                  iVar12 = local_530;
                }
                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);
                if (iVar12 != 0) {
                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
                  iVar12 = X509_set_subject_name(x,pXVar24);
                  if (((iVar12 != 0) &&
                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)
                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {
                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);
                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);
                    if ((local_528 == (char **)0x0) ||
                       (iVar12 = X509V3_EXT_add_nconf
                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)
                       , iVar12 != 0)) {
                      if ((addext_conf == (CONF *)0x0) ||
                         (iVar12 = X509V3_EXT_add_nconf
                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),
                         iVar12 != 0)) {
                        if (bVar4) {
                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);
                          local_528 = (char **)(iVar12 + -1);
                          if (local_528 != (char **)0x0) {
                            pcVar13 = "Error adding poison extension\n";
                            ppcVar11 = local_528;
                            goto LAB_00050666;
                          }
                        }
                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);
                        if (iVar12 == 0) {
                          ERR_print_errors((BIO *)bio_err);
                          goto LAB_0004fb6e;
                        }
                        bVar34 = local_51c != (char *)0x0;
                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;
                        pcVar13 = "Cannot modify certificate subject\n";
                        goto LAB_0004fb64;
                      }
                      pcVar13 = "Error Loading command line extensions\n";
                      local_528 = (char **)0x0;
                      ppcVar11 = (char **)0x0;
                    }
                    else {
                      pcVar13 = "Error Loading extension section %s\n";
                      ppcVar11 = (char **)0x0;
                    }
LAB_00050666:
                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);
                  }
                }
              }
            }
          }
          goto LAB_0004fb6e;
        }
LAB_0004fbe2:
        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);
        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);
        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||
           (iVar12 = X509V3_EXT_REQ_add_nconf
                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),
           iVar12 != 0)) {
          if ((addext_conf != (CONF *)0x0) &&
             (iVar12 = X509V3_EXT_REQ_add_nconf
                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),
             iVar12 == 0)) {
            pcVar14 = "Error Loading command line extensions\n";
            local_524 = (stack_st_CONF_VALUE *)pcVar13;
            goto LAB_0005068b;
          }
          x = (X509 *)0x0;
          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);
          local_548 = (BIO *)0x0;
          if (iVar12 != 0) goto LAB_0004fc7f;
          ERR_print_errors((BIO *)bio_err);
        }
        else {
          pcVar14 = "Error Loading extension section %s\n";
          pcVar13 = (char *)0x0;
LAB_0005068b:
          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);
        }
        goto LAB_0004f82c;
      }
      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);
      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;
      if (informat == 4) {
        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);
      }
      else {
        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);
      }
      if (x_00 == (X509_REQ *)0x0) {
        x = (X509 *)0x0;
        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);
        local_570 = (EVP_PKEY *)0x0;
        local_560 = (BIO *)0x0;
        local_564 = 1;
        goto LAB_0004e56a;
      }
      if (local_53c != 0) {
        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;
        goto LAB_0004f99b;
      }
      bVar34 = local_51c != (char *)0x0;
      x = (X509 *)0x0;
LAB_0004fed2:
      if ((bVar34 & (byte)local_564) != 0) {
        if (bVar2) {
          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");
          uVar21 = get_nameopt();
          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
          print_name(bio_err,"old subject=",pXVar26,uVar21);
          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);
          if (iVar12 == 0) goto LAB_0004ff17;
          uVar21 = get_nameopt();
          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
          print_name(bio_err,"new subject=",pXVar26,uVar21);
        }
        else {
          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);
          if (iVar12 == 0) {
LAB_0004ff17:
            pcVar13 = "ERROR: cannot modify subject\n";
LAB_0004fb64:
            BIO_printf((BIO *)bio_err,pcVar13);
LAB_0004fb6e:
            local_564 = 1;
            local_570 = (EVP_PKEY *)0x0;
            local_560 = (BIO *)0x0;
            goto LAB_0004e56a;
          }
        }
      }
LAB_0004fc7f:
      local_564 = local_578 & local_564;
      if (local_564 != 0) {
        local_560 = (BIO *)pkey;
        if ((pkey == (EVP_PKEY *)0x0) &&
           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
        }
        else {
          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);
          if (-1 < iVar12) {
            if (iVar12 == 0) {
              BIO_printf((BIO *)bio_err,"verify failure\n");
              ERR_print_errors((BIO *)bio_err);
            }
            else {
              BIO_printf((BIO *)bio_err,"verify OK\n");
            }
            goto LAB_0004fce0;
          }
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
        }
        goto LAB_0004e56a;
      }
LAB_0004fce0:
      iVar12 = outformat;
      if (((local_580 & (local_594 ^ 1)) != 0) &&
         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {
        local_564 = 0;
        local_570 = (EVP_PKEY *)0x0;
        local_560 = (BIO *)0x0;
        goto LAB_0004e57b;
      }
      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {
        cVar9 = 'w';
      }
      else {
        iVar20 = strcmp(local_518,local_50c);
        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;
      }
      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);
      if (local_560 == (BIO *)0x0) {
        local_570 = (EVP_PKEY *)0x0;
        local_564 = 1;
        goto LAB_0004e56a;
      }
      if (local_56c != 0) {
        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);
        if (pEVar25 == (EVP_PKEY *)0x0) {
          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);
          ERR_print_errors((BIO *)bio_err);
          local_564 = local_56c;
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_0004e56a;
        }
        PEM_write_bio_PUBKEY(local_560,pEVar25);
      }
      uVar21 = reqflag;
      local_564 = 0;
      if (local_594 == 0) {
        if (local_584 == 0) {
          local_598 = 1;
          if (local_520 == 0) goto LAB_0004fe2d;
          local_598 = local_520;
          if (local_53c == 0) goto LAB_00050366;
          local_598 = local_53c;
LAB_0004fdbe:
          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);
LAB_0004fdce:
          puVar6 = PTR_stdout_000bdfa8;
          if (local_570 == (EVP_PKEY *)0x0) {
            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);
            local_564 = local_598;
            goto LAB_0004e56a;
          }
          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);
          iVar12 = EVP_PKEY_base_id(local_570);
          if (iVar12 == 6) {
            uVar37 = EVP_PKEY_get0_RSA(local_570);
            RSA_get0_key(uVar37,&ctx,0,0);
            BN_print(local_560,(BIGNUM *)ctx.flags);
          }
          else {
            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);
          }
          fputc(10,*(FILE **)puVar6);
          goto LAB_0004fe2d;
        }
        local_598 = local_584;
        if (local_53c != 0) {
          local_598 = local_53c;
LAB_0004ffc7:
          uVar21 = get_nameopt();
          pXVar24 = X509_get_subject_name(x);
          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);
          if (local_520 == 0) goto LAB_0004fff8;
          goto LAB_0004fdbe;
        }
LAB_000502e6:
        uVar21 = get_nameopt();
        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);
        if (local_520 != 0) {
LAB_00050366:
          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);
          goto LAB_0004fdce;
        }
        if (local_580 == 0) goto LAB_0004fe3b;
LAB_0005031e:
        local_564 = 0;
        local_570 = (EVP_PKEY *)0x0;
        goto LAB_0004e57b;
      }
      if (local_53c == 0) {
        uVar23 = get_nameopt();
        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);
        if (local_598 == 0) {
          pcVar13 = "Error printing certificate request\n";
          goto LAB_00050628;
        }
        if (local_584 != 0) goto LAB_000502e6;
        if (local_520 != 0) goto LAB_00050366;
LAB_0004fe2d:
        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;
LAB_0004fe3b:
        if (outformat == 4) {
          iVar12 = i2d_X509_REQ_bio(local_560,x_00);
          uVar37 = extraout_EDX_02;
        }
        else if (bVar5) {
          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);
          uVar37 = extraout_EDX_00;
        }
        else {
          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);
          uVar37 = extraout_EDX_01;
        }
        local_570 = (EVP_PKEY *)0x0;
        if (iVar12 != 0) goto LAB_0004e57b;
        pcVar13 = "unable to write X509 request\n";
      }
      else {
        uVar23 = get_nameopt();
        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);
        if (local_598 == 0) {
          pcVar13 = "Error printing certificate\n";
LAB_00050628:
          BIO_printf((BIO *)bio_err,pcVar13,0,0);
          ERR_print_errors((BIO *)bio_err);
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_0004e57b;
        }
        if (local_584 != 0) goto LAB_0004ffc7;
        if (local_520 != 0) goto LAB_0004fdbe;
LAB_0004fff8:
        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;
        local_570 = (EVP_PKEY *)0x0;
        if (x == (X509 *)0x0) goto LAB_0004e57b;
        if (outformat == 4) {
          iVar12 = i2d_X509_bio(local_560,x);
        }
        else {
          iVar12 = PEM_write_bio_X509(local_560,x);
        }
        local_570 = (EVP_PKEY *)0x0;
        if (iVar12 != 0) goto LAB_0004e57b;
        pcVar13 = "unable to write X509 certificate\n";
        uVar37 = 0;
      }
      local_570 = (EVP_PKEY *)0x0;
      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);
      local_564 = local_598;
    }
  }
  else {
    local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key");
    pkey = (EVP_PKEY *)local_548;
    if (local_548 != (BIO *)0x0) {
      app_RAND_load_conf(req_conf,"req");
      goto LAB_0004f1d1;
    }
LAB_0004f60c:
    x_00 = (X509_REQ *)0x0;
    x = (X509 *)0x0;
    local_570 = (EVP_PKEY *)0x0;
    local_560 = (BIO *)0x0;
    local_564 = 1;
  }
  goto LAB_0004e56a;
  while (iVar12 = X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1), iVar12 != 0) {
LAB_00050afd:
    do {
      local_588 = local_588 + 1;
      iVar12 = OPENSSL_sk_num(local_548);
      if (iVar12 <= local_588) goto LAB_00050951;
      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);
      pcVar14 = *(char **)(iVar12 + 4);
      iVar20 = OBJ_txt2nid(pcVar14);
    } while (iVar20 == 0);
    iVar31 = join(pcVar13,100,pcVar14,"_default","Name");
    if (iVar31 == 0) {
LAB_00050d30:
      ppBVar27 = &bio_err;
      goto LAB_0004f815;
    }
    pcVar28 = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);
    if (pcVar28 == (char *)0x0) {
      ERR_clear_error();
      pcVar28 = "";
    }
    iVar31 = join(pcVar13,100,pcVar14,"_value","Name");
    if (iVar31 == 0) goto LAB_00050d30;
    value = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);
    if (value == (char *)0x0) {
      ERR_clear_error();
    }
    iVar31 = join(pcVar13,100,pcVar14,"_min","Name");
    if (iVar31 == 0) goto LAB_00050d30;
    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min);
    if (iVar31 == 0) {
      ERR_clear_error();
      n_min = -1;
    }
    iVar31 = join(pcVar13,100,pcVar14,"_max","Name");
    if (iVar31 == 0) goto LAB_00050d30;
    psVar18 = section;
    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags);
    if (iVar31 == 0) {
      ERR_clear_error();
      ctx.flags = -1;
    }
    uVar29 = build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,
                        "Attribute default",(char *)psVar18);
    if (uVar29 < 2) {
      if (uVar29 == 0) goto LAB_00050d30;
      goto LAB_00050afd;
    }
  }
  ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,"Error adding attribute\n",0,0);
  ERR_print_errors((BIO *)bio_err);
LAB_0004f815:
  BIO_printf((BIO *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27);
LAB_0004f82c:
  local_564 = 1;
  x = (X509 *)0x0;
  local_570 = (EVP_PKEY *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
LAB_0004e56a:
  ERR_print_errors((BIO *)bio_err);
LAB_0004e57b:
  NCONF_free((CONF *)req_conf);
  NCONF_free((CONF *)addext_conf);
  BIO_free(local_550);
  BIO_free(local_548);
  BIO_free_all(local_560);
  EVP_PKEY_free((EVP_PKEY *)pkey);
  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);
  OPENSSL_sk_free(local_55c);
  OPENSSL_sk_free(local_558);
  OPENSSL_LH_doall(local_54c,exts_cleanup);
  OPENSSL_LH_free(local_54c);
  ENGINE_free((ENGINE *)local_544);
  CRYPTO_free(keyalgstr);
  X509_REQ_free(x_00);
  X509_free(x);
  ASN1_INTEGER_free(local_554);
  release_engine(local_540);
  if (passin != local_538) {
    CRYPTO_free(passin);
  }
  if (passout != local_534) {
    CRYPTO_free(passout);
  }
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return local_564;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

uint FUN_0004e210(undefined4 param_1,undefined4 *param_2)

{
  char cVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  undefined *puVar6;
  bool bVar7;
  EVP_CIPHER *pEVar8;
  char **ppcVar9;
  int iVar10;
  char *pcVar11;
  char *pcVar12;
  BIO *in;
  ushort **ppuVar13;
  char *ptr;
  BIO *pBVar14;
  ASN1_INTEGER *pAVar15;
  BIO_METHOD *type;
  stack_st_CONF_VALUE *psVar16;
  byte *pbVar17;
  int iVar18;
  ulong uVar19;
  undefined **ppuVar20;
  stack_st_CONF_VALUE *section;
  stack_st_CONF_VALUE *psVar21;
  ulong uVar22;
  X509_NAME *pXVar23;
  EVP_PKEY *pEVar24;
  undefined4 uVar25;
  undefined4 *puVar26;
  uint uVar27;
  stack_st_CONF_VALUE *extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_ECX_01;
  stack_st_CONF_VALUE *extraout_EDX;
  undefined4 extraout_EDX_00;
  undefined4 extraout_EDX_01;
  undefined4 extraout_EDX_02;
  byte *pbVar28;
  int set;
  X509 *x;
  X509_REQ *x_00;
  int in_GS_OFFSET;
  bool bVar29;
  bool bVar30;
  bool bVar31;
  byte bVar32;
  undefined8 uVar33;
  char *pcVar34;
  undefined4 uVar35;
  stack_st_CONF_VALUE *psVar36;
  uint local_598;
  uint local_594;
  int local_588;
  uint local_584;
  uint local_580;
  undefined4 local_57c;
  uint local_578;
  EVP_PKEY *local_570;
  uint local_56c;
  uint local_564;
  BIO *local_560;
  int local_55c;
  int local_558;
  ASN1_INTEGER *local_554;
  BIO *local_550;
  int local_54c;
  BIO *local_548;
  ENGINE *local_544;
  undefined4 local_540;
  uint local_53c;
  char *local_538;
  char *local_534;
  int local_530;
  int local_52c;
  char **local_528;
  stack_st_CONF_VALUE *local_524;
  uint local_520;
  int local_51c;
  char *local_518;
  int local_514;
  int local_510;
  char *local_50c;
  EVP_CIPHER *local_500;
  int local_4ec;
  BIO *local_4d0;
  int local_4cc;
  void *local_4c8;
  char *local_4c4;
  char *local_4c0;
  int local_4bc;
  undefined *local_4b8;
  undefined *local_4b4;
  undefined *local_4b0;
  long local_4ac;
  ulong local_4a8;
  long local_4a4;
  X509V3_CTX local_4a0;
  stack_st_CONF_VALUE local_484 [5];
  uchar local_420 [1024];
  int local_20;
  undefined4 uStack_14;
  
  bVar32 = 0;
  bVar31 = false;
  uStack_14 = 0x4e220;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_4d0 = (BIO *)0x0;
  local_4cc = 0;
  local_560 = (BIO *)DAT_000c4598;
  local_4c8 = (void *)0x0;
  local_4c4 = (char *)0x0;
  local_4c0 = (char *)0x0;
  local_4bc = -1;
  local_4b8 = (undefined *)0x8005;
  local_4b4 = (undefined *)0x8005;
  local_4b0 = (undefined *)0x8005;
  local_4ac = -1;
  local_4a8 = 0;
  pEVar8 = EVP_des_ede3_cbc();
  ppuVar20 = &PTR_DAT_000bb480;
  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);
  pcVar34 = "../apps/req.c";
  local_588 = 0x1001;
  bVar4 = false;
  local_56c = 0;
  local_584 = 0;
  bVar5 = false;
  bVar3 = false;
  local_594 = 0;
  local_580 = 0;
  local_578 = 0;
  local_57c = 0;
  local_520 = 0;
  bVar2 = false;
  local_530 = 0;
  local_53c = 0;
  local_570 = (EVP_PKEY *)0x0;
  local_518 = (char *)0x0;
  local_51c = 0;
  local_524 = (stack_st_CONF_VALUE *)0x0;
  local_548 = (BIO *)0x0;
  local_534 = (char *)0x0;
  local_514 = 0;
  local_50c = (char *)0x0;
  local_52c = 0;
  local_528 = (char **)0x0;
  local_550 = (BIO *)0x0;
  local_510 = 0;
  local_54c = 0;
  local_558 = 0;
  local_55c = 0;
  local_544 = (ENGINE *)0x0;
  local_540 = 0;
  local_554 = (ASN1_INTEGER *)0x0;
LAB_0004e430:
  iVar10 = FUN_00078780();
  if (iVar10 != 0) goto LAB_0004e43d;
LAB_0004e6f0:
  iVar10 = FUN_00079110();
  if (iVar10 != 0) goto LAB_0004e51a;
  local_564 = local_53c ^ 1;
  if ((local_530 != 0) && (local_564 != 0)) {
    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");
  }
  pBVar14 = local_4d0;
  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);
  bVar29 = bVar31;
  if (bVar7 != false) {
    bVar31 = bVar7;
    bVar29 = true;
  }
  pcVar11 = (char *)&local_4c4;
  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);
  if (iVar10 == 0) {
    pcVar12 = "Error getting passwords\n";
    goto LAB_0004e52c;
  }
  if (bVar2) {
    pcVar11 = (char *)local_560;
    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);
    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);
    if (local_550 != (BIO *)0x0) {
      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);
      goto LAB_0004e7d1;
    }
  }
  else {
    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);
    if (local_550 != (BIO *)0x0) {
LAB_0004e7d1:
      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);
    }
  }
  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))
  goto LAB_0004eb16;
  if (DAT_000c4a98 != (CONF *)0x0) {
    pcVar11 = "oid_file";
    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");
    if (pcVar12 == (char *)0x0) {
      ERR_clear_error();
    }
    else {
      in = BIO_new_file(pcVar12,"r");
      if (in != (BIO *)0x0) {
        OBJ_create_objects(in);
        BIO_free(in);
      }
    }
  }
  iVar10 = FUN_00073330(DAT_000c4a98);
  if (iVar10 != 0) {
    if (local_4cc == 0) {
      pcVar11 = "default_md";
      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");
      if (pcVar12 == (char *)0x0) {
        ERR_clear_error();
      }
      else {
        iVar10 = FUN_000782e0(pcVar12,&local_4cc);
        if (iVar10 == 0) goto LAB_0004e51a;
        local_510 = local_4cc;
      }
    }
    if (local_528 == (char **)0x0) {
      pcVar11 = "x509_extensions";
      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");
      if (local_528 != (char **)0x0) goto LAB_0004e89e;
      ERR_clear_error();
    }
    else {
LAB_0004e89e:
      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
      X509V3_set_nconf(&local_4a0,DAT_000c4a98);
      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);
      if (iVar10 == 0) {
        pcVar12 = "Error Loading extension section %s\n";
        pcVar11 = (char *)local_528;
        goto LAB_0004e52c;
      }
    }
    if (DAT_000c4a94 != (CONF *)0x0) {
      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
      X509V3_set_nconf(&local_4a0,DAT_000c4a94);
      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);
      if (iVar10 == 0) {
        pcVar12 = "Error Loading command line extensions\n";
        goto LAB_0004e52c;
      }
    }
    local_538 = (char *)0x0;
    if ((local_4c4 == (char *)0x0) &&
       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,
       local_538 == (char *)0x0)) {
      ERR_clear_error();
    }
    local_534 = (char *)0x0;
    if ((local_4c0 == (char *)0x0) &&
       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,
       local_534 == (char *)0x0)) {
      ERR_clear_error();
    }
    pcVar11 = "string_mask";
    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");
    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {
      ERR_clear_error();
    }
    else {
      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);
      if (iVar10 == 0) {
        pcVar11 = "Invalid global string mask setting %s\n";
        goto LAB_0004fba6;
      }
    }
    if (local_588 == 0x1000) goto LAB_0004f5da;
    pcVar11 = "utf8";
    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");
    bVar7 = false;
    bVar30 = pbVar17 == (byte *)0x0;
    if (bVar30) {
      ERR_clear_error();
      local_4ec = 0x1001;
      goto LAB_0004f11f;
    }
    iVar10 = 4;
    pbVar28 = &DAT_0007e7a8;
    goto code_r0x0004f105;
  }
  goto LAB_0004eb16;
LAB_0004e43d:
  while (iVar10 != 0x15) {
    if (iVar10 < 0x16) {
      if (iVar10 == 10) {
        uVar35 = FUN_00078b30();
        ppuVar20 = &local_4b0;
        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);
      }
      else if (iVar10 < 0xb) {
        if (iVar10 == 4) {
          uVar35 = FUN_00078b30();
          local_540 = FUN_00074050(uVar35,0);
          goto LAB_0004e430;
        }
        if (4 < iVar10) {
          if (iVar10 == 7) {
            local_56c = 1;
            goto LAB_0004e430;
          }
          if (7 < iVar10) {
            if (iVar10 == 8) {
              bVar31 = true;
            }
            else if (iVar10 == 9) {
              local_560 = (BIO *)FUN_00078b30();
            }
            goto LAB_0004e430;
          }
          if (iVar10 != 5) {
            if (iVar10 == 6) {
              local_514 = FUN_00078b30();
            }
            goto LAB_0004e430;
          }
          pcVar11 = (char *)FUN_00078b30();
          local_544 = ENGINE_by_id(pcVar11);
          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;
          ppuVar20 = (undefined **)*param_2;
          pcVar11 = "Can\'t find keygen engine %s\n";
LAB_0004e4a9:
          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);
          goto LAB_0004e51a;
        }
        if (iVar10 == 1) {
          x_00 = (X509_REQ *)0x0;
          x = (X509 *)0x0;
          FUN_00079140(&PTR_DAT_000bb480);
          local_564 = 0;
          local_534 = (char *)0x0;
          local_538 = (char *)0x0;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          local_548 = (BIO *)0x0;
          goto LAB_0004e57b;
        }
        if (iVar10 < 2) {
          if (iVar10 != -1) goto LAB_0004e430;
          goto LAB_0004e51a;
        }
        if (iVar10 == 2) {
          uVar35 = FUN_00078b30();
          ppuVar20 = &local_4b8;
          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);
        }
        else {
          if (iVar10 != 3) goto LAB_0004e430;
          uVar35 = FUN_00078b30();
          ppuVar20 = &local_4b4;
          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);
        }
      }
      else {
        if (iVar10 == 0xf) {
          local_548 = (BIO *)FUN_00078b30();
          goto LAB_0004e430;
        }
        if (iVar10 < 0x10) {
          if (iVar10 == 0xc) {
            local_50c = (char *)FUN_00078b30();
          }
          else if (iVar10 < 0xc) {
            local_52c = FUN_00078b30();
          }
          else if (iVar10 == 0xd) {
            local_518 = (char *)FUN_00078b30();
          }
          else if (iVar10 == 0xe) {
            local_534 = (char *)FUN_00078b30();
          }
          goto LAB_0004e430;
        }
        if (iVar10 == 0x12) {
          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))
          goto LAB_0004e51a;
          uVar35 = FUN_00078b30();
          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);
        }
        else {
          if (0x12 < iVar10) {
            if (iVar10 == 0x13) {
              DAT_000c4a90 = 1;
            }
            else if (iVar10 == 0x14) {
              bVar5 = true;
            }
            goto LAB_0004e430;
          }
          if (iVar10 == 0x10) {
            local_570 = (EVP_PKEY *)FUN_00078b30();
            bVar31 = true;
            goto LAB_0004e430;
          }
          if (iVar10 != 0x11) goto LAB_0004e430;
          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))
          goto LAB_0004e51a;
          uVar35 = FUN_00078b30();
          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);
        }
      }
joined_r0x0004ee90:
      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;
      goto LAB_0004e430;
    }
    if (iVar10 == 0x20) {
      local_53c = 1;
      goto LAB_0004e430;
    }
    if (0x20 < iVar10) {
      if (iVar10 == 0x25) {
        local_528 = (char **)FUN_00078b30();
        goto LAB_0004e430;
      }
      if (0x25 < iVar10) {
        if (iVar10 == 0x28) {
          uVar35 = FUN_000790d0();
          iVar10 = FUN_000782e0(uVar35,&local_4cc);
          if (iVar10 == 0) goto LAB_0004e51a;
          local_510 = local_4cc;
          goto LAB_0004e430;
        }
        if (0x28 < iVar10) {
          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))
          goto LAB_0004e430;
          goto LAB_0004eb16;
        }
        if (iVar10 == 0x26) {
          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();
        }
        else if (iVar10 == 0x27) {
          bVar31 = true;
          bVar4 = true;
        }
        goto LAB_0004e430;
      }
      if (iVar10 == 0x22) {
        pcVar11 = (char *)FUN_00078b30();
        ppuVar20 = (undefined **)0xa;
        local_530 = strtol(pcVar11,(char **)0x0,10);
        goto LAB_0004e430;
      }
      if (iVar10 < 0x22) {
        local_57c = 1;
        goto LAB_0004e430;
      }
      if (iVar10 == 0x23) {
        if (local_554 != (ASN1_INTEGER *)0x0) {
          pcVar11 = "Serial number supplied twice\n";
          goto LAB_0004e4a9;
        }
        pcVar11 = (char *)FUN_00078b30();
        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);
        pAVar15 = local_554;
        goto joined_r0x0004ee90;
      }
      if (iVar10 != 0x24) goto LAB_0004e430;
      pcVar11 = (char *)FUN_00078b30();
      if (local_54c == 0) {
        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);
        type = BIO_s_mem();
        local_550 = BIO_new(type);
        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {
          x = (X509 *)0x0;
          x_00 = (X509_REQ *)0x0;
          local_534 = (char *)0x0;
          local_538 = (char *)0x0;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          local_548 = (BIO *)0x0;
          local_564 = 1;
          goto LAB_0004e56a;
        }
      }
      cVar1 = *pcVar11;
      if (cVar1 != '\0') goto LAB_0004ea31;
      goto LAB_0004ea4d;
    }
    if (iVar10 == 0x1a) {
      local_588 = 0x1000;
      goto LAB_0004e430;
    }
    if (iVar10 < 0x1b) {
      if (iVar10 == 0x17) {
        bVar3 = true;
      }
      else if (iVar10 < 0x17) {
        local_578 = 1;
      }
      else if (iVar10 == 0x18) {
        local_580 = 1;
      }
      else if (iVar10 == 0x19) {
        bVar2 = true;
      }
      goto LAB_0004e430;
    }
    if (iVar10 == 0x1d) {
      local_51c = FUN_00078b30();
      goto LAB_0004e430;
    }
    if (0x1d < iVar10) {
      if (iVar10 == 0x1e) {
        local_584 = 1;
      }
      else if (iVar10 == 0x1f) {
        local_594 = 1;
      }
      goto LAB_0004e430;
    }
    if (iVar10 == 0x1b) {
      uVar35 = FUN_00078b30();
      iVar10 = FUN_00073960(uVar35);
      if (iVar10 != 0) goto LAB_0004e430;
      goto LAB_0004e51a;
    }
    if (iVar10 != 0x1c) goto LAB_0004e430;
    uVar35 = FUN_00078b30();
    iVar10 = FUN_000738d0(&local_4a8,uVar35);
    if (iVar10 == 0) goto LAB_0004e51a;
    iVar10 = FUN_00078780();
    if (iVar10 == 0) goto LAB_0004e6f0;
  }
  local_520 = 1;
  goto LAB_0004e430;
LAB_0004ea31:
  ppuVar13 = __ctype_b_loc();
  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;
  pcVar11 = pcVar11 + 1;
  cVar1 = *pcVar11;
  if (cVar1 == '\0') goto LAB_0004e51a;
  goto LAB_0004ea31;
LAB_0004ea4d:
  pcVar12 = strchr(pcVar11,0x3d);
  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;
  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);
  if (ptr == (char *)0x0) {
    local_534 = (char *)0x0;
    local_538 = (char *)0x0;
    local_548 = (BIO *)0x0;
    goto LAB_0004f60c;
  }
  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);
  if (ptr < pcVar11) {
    ppuVar13 = __ctype_b_loc();
    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {
      pcVar11 = pcVar11 + -1;
      if (ptr == pcVar11) goto LAB_0004f4ba;
    }
  }
  if (pcVar11 == ptr) {
LAB_0004f4ba:
    CRYPTO_free(ptr);
    goto LAB_0004e51a;
  }
  *pcVar11 = '\0';
  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);
  if ((pBVar14 == (BIO *)0x0) &&
     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {
    ppuVar20 = (undefined **)FUN_00078b30();
    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);
    if (iVar10 < 0) {
      x = (X509 *)0x0;
      x_00 = (X509_REQ *)0x0;
      local_534 = (char *)0x0;
      local_538 = (char *)0x0;
      local_570 = (EVP_PKEY *)0x0;
      local_548 = (BIO *)0x0;
      local_564 = 1;
      local_560 = (BIO *)0x0;
      goto LAB_0004e56a;
    }
    goto LAB_0004e430;
  }
  local_560 = pBVar14;
  CRYPTO_free(local_560);
LAB_0004eb16:
  x_00 = (X509_REQ *)0x0;
  x = (X509 *)0x0;
  local_564 = 1;
  local_534 = (char *)0x0;
  local_538 = (char *)0x0;
  local_570 = (EVP_PKEY *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
  goto LAB_0004e56a;
LAB_0004e51a:
  pcVar12 = "%s: Use -help for summary.\n";
  pcVar11 = (char *)ppcVar9;
LAB_0004e52c:
  BIO_printf(DAT_000c458c,pcVar12,pcVar11);
  local_534 = (char *)0x0;
  local_538 = (char *)0x0;
LAB_0004e54e:
  local_564 = 1;
  local_570 = (EVP_PKEY *)0x0;
  x_00 = (X509_REQ *)0x0;
  x = (X509 *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
  goto LAB_0004e56a;
  while( true ) {
    iVar10 = iVar10 + -1;
    bVar7 = *pbVar17 < *pbVar28;
    bVar30 = *pbVar17 == *pbVar28;
    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;
    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;
    if (!bVar30) break;
code_r0x0004f105:
    if (iVar10 == 0) break;
  }
  if ((!bVar7 && !bVar30) == bVar7) {
LAB_0004f5da:
    local_4ec = 0x1000;
  }
  else {
    local_4ec = 0x1001;
  }
LAB_0004f11f:
  if (local_524 == (stack_st_CONF_VALUE *)0x0) {
    pcVar11 = "req_extensions";
    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");
    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;
    ERR_clear_error();
  }
  else {
LAB_0004f12b:
    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
    X509V3_set_nconf(&local_4a0,DAT_000c4a98);
    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);
    if (iVar10 == 0) {
      pcVar11 = "Error Loading request extension section %s\n";
      psVar16 = local_524;
LAB_0004fba6:
      BIO_printf(DAT_000c458c,pcVar11,psVar16);
      goto LAB_0004e54e;
    }
  }
  if (local_514 == 0) {
LAB_0004f1d1:
    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {
      FUN_00072430(DAT_000c4a98,&DAT_00091821);
      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);
      if (iVar10 == 0) {
        local_4ac = 0x800;
        if (local_570 == (EVP_PKEY *)0x0) {
LAB_000500d7:
          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);
          if (local_570 == (EVP_PKEY *)0x0) {
            x_00 = (X509_REQ *)0x0;
            x = (X509 *)0x0;
            local_560 = (BIO *)0x0;
            local_548 = (BIO *)0x0;
            local_564 = 1;
            goto LAB_0004e56a;
          }
          goto LAB_0004f2bc;
        }
LAB_0004f245:
        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);
        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;
        x_00 = (X509_REQ *)0x0;
LAB_000501da:
        x = (X509 *)0x0;
        local_560 = (BIO *)0x0;
        local_548 = (BIO *)0x0;
        local_564 = 1;
      }
      else {
        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;
LAB_0004f275:
        if (local_4ac < 0x200) {
          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;
          BIO_printf(DAT_000c458c,"private key length is too short,\n");
          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);
        }
        else {
          if ((0x4000 < local_4ac) && (local_4bc == 6)) {
            pcVar11 = (char *)0x4000;
            BIO_printf(DAT_000c458c,
                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"
                       ,0x4000,local_4ac);
          }
          if ((local_4bc == 0x74) && (10000 < local_4ac)) {
            pcVar11 = (char *)0x2710;
            BIO_printf(DAT_000c458c,
                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"
                       ,10000,local_4ac);
          }
LAB_0004f2b0:
          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;
LAB_0004f2bc:
          iVar10 = 0;
          if (local_55c != 0) {
            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {
              uVar35 = OPENSSL_sk_value(local_55c,iVar10);
              iVar18 = FUN_00075300(local_570,uVar35);
              if (iVar18 < 1) {
                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);
                ERR_print_errors(DAT_000c458c);
                goto LAB_0004ff7c;
              }
            }
          }
          if (local_4bc == 0x198) {
            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);
          }
          else {
            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);
          }
          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);
          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);
          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);
          if (0 < iVar10) {
            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);
            if (local_518 == (char *)0x0) {
              pcVar11 = "default_keyfile";
              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");
              if (local_518 != (char *)0x0) goto LAB_0004f392;
              ERR_clear_error();
              pcVar12 = "writing new private key to stdout\n";
            }
            else {
LAB_0004f392:
              pcVar12 = "writing new private key to \'%s\'\n";
              pcVar11 = local_518;
            }
            BIO_printf(DAT_000c458c,pcVar12,pcVar11);
            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);
            if (local_560 == (BIO *)0x0) {
              x_00 = (X509_REQ *)0x0;
              x = (X509 *)0x0;
              local_570 = (EVP_PKEY *)0x0;
              local_548 = (BIO *)0x0;
              local_564 = 1;
              goto LAB_0004e56a;
            }
            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");
            bVar31 = pbVar17 == (byte *)0x0;
            if (bVar31) {
              ERR_clear_error();
              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");
              bVar31 = pbVar17 == (byte *)0x0;
              if (!bVar31) goto LAB_0004f40c;
              ERR_clear_error();
              local_500 = pEVar8;
            }
            else {
LAB_0004f40c:
              bVar29 = false;
              iVar10 = 3;
              pbVar28 = &DAT_0007e9a6;
              do {
                if (iVar10 == 0) break;
                iVar10 = iVar10 + -1;
                bVar29 = *pbVar17 < *pbVar28;
                bVar31 = *pbVar17 == *pbVar28;
                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;
                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;
              } while (bVar31);
              local_500 = (EVP_CIPHER *)0x0;
              if ((!bVar29 && !bVar31) != bVar29) {
                local_500 = pEVar8;
              }
            }
            pEVar8 = (EVP_CIPHER *)0x0;
            if (!bVar3) {
              pEVar8 = local_500;
            }
            iVar10 = 0;
            while (iVar18 = PEM_write_bio_PrivateKey
                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,
                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {
              uVar19 = ERR_peek_error();
              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {
                local_564 = 1;
                x_00 = (X509_REQ *)0x0;
                x = (X509 *)0x0;
                local_570 = (EVP_PKEY *)0x0;
                local_548 = (BIO *)0x0;
                goto LAB_0004e56a;
              }
              ERR_clear_error();
              iVar10 = iVar10 + 1;
            }
            BIO_free(local_560);
            BIO_printf(DAT_000c458c,"-----\n");
            goto LAB_0004f6c0;
          }
          BIO_puts(DAT_000c458c,"Error Generating Key\n");
        }
LAB_0004ff7c:
        local_564 = 1;
        x_00 = (X509_REQ *)0x0;
        x = (X509 *)0x0;
        local_560 = (BIO *)0x0;
        local_548 = (BIO *)0x0;
      }
    }
    else {
      if (bVar29) {
LAB_0004f6c0:
        if (local_4d0 == (BIO *)0x0) {
          x_00 = (X509_REQ *)0x0;
          local_548 = (BIO *)0x0;
LAB_000505b7:
          x = (X509 *)0x0;
          BIO_printf(DAT_000c458c,"you need to specify a private key\n");
          local_564 = 1;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          goto LAB_0004e56a;
        }
        x_00 = X509_REQ_new();
        pBVar14 = local_4d0;
        if (x_00 == (X509_REQ *)0x0) {
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_000501da;
        }
        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");
        if (pcVar11 == (char *)0x0) {
          ERR_clear_error();
          bVar31 = false;
        }
        else {
          iVar10 = strcmp(pcVar11,"no");
          bVar31 = iVar10 == 0;
        }
        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");
        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {
          pcVar12 = "unable to find \'%s\' in config\n";
          pcVar11 = "distinguished_name";
          psVar16 = extraout_ECX;
LAB_0005074a:
          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);
          goto LAB_0004f815;
        }
        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);
        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {
          pcVar12 = "unable to get \'%s\' section\n";
          psVar16 = extraout_EDX;
          goto LAB_0005074a;
        }
        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");
        if (section == (stack_st_CONF_VALUE *)0x0) {
          psVar21 = section;
          ERR_clear_error();
          local_548 = (BIO *)0x0;
        }
        else {
          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);
          local_548 = (BIO *)psVar21;
          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {
            pcVar12 = "unable to get \'%s\' section\n";
            psVar16 = (stack_st_CONF_VALUE *)0x0;
            pcVar11 = (char *)section;
            goto LAB_0005074a;
          }
        }
        uVar35 = 0;
        psVar36 = psVar21;
        iVar10 = X509_REQ_set_version(x_00,0);
        if (iVar10 == 0) {
LAB_0004f80b:
          puVar26 = &DAT_000c458c;
          goto LAB_0004f815;
        }
        if (local_51c == 0) {
          if (bVar31) {
            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);
            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)
            {
              iVar18 = OPENSSL_sk_value(psVar16,iVar10);
              pbVar17 = *(byte **)(iVar18 + 4);
              bVar32 = *pbVar17;
              pbVar28 = pbVar17;
              if (bVar32 == 0) {
                set = 0;
              }
              else {
                do {
                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {
                    if (*(byte *)((int)pbVar28 + 1) != 0) {
                      pbVar17 = (byte *)((int)pbVar28 + 1);
                    }
                    break;
                  }
                  pbVar28 = (byte *)((int)pbVar28 + 1);
                  bVar32 = *pbVar28;
                } while (bVar32 != 0);
                set = 0;
                if (*pbVar17 == 0x2b) {
                  pbVar17 = pbVar17 + 1;
                  set = -1;
                }
              }
              iVar18 = X509_NAME_add_entry_by_txt
                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,
                                  set);
              if (iVar18 == 0) goto LAB_0004f80b;
            }
            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);
            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {
              if (local_53c == 0) {
                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,
                    iVar10 < iVar18; iVar10 = iVar10 + 1) {
                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);
                  iVar18 = X509_REQ_add1_attr_by_txt
                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),
                                      -1);
                  if (iVar18 == 0) goto LAB_0004f80b;
                }
LAB_00050951:
                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);
                if (iVar10 != 0) goto LAB_0004fbe2;
              }
              else {
LAB_00051084:
                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);
                if (iVar10 != 0) {
                  local_548 = (BIO *)0x0;
                  goto LAB_0004f99b;
                }
              }
              goto LAB_0004f80b;
            }
LAB_000510a8:
            pcVar12 = "error, no objects specified in config file\n";
            pcVar11 = (char *)psVar16;
          }
          else {
            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);
            if (DAT_000c4a90 == 0) {
              BIO_printf(DAT_000c458c,
                         "You are about to be asked to enter information that will be incorporated\n"
                         ,pXVar23,pXVar23);
              BIO_printf(DAT_000c458c,"into your certificate request.\n");
              BIO_printf(DAT_000c458c,
                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"
                        );
              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")
              ;
              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");
              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");
              BIO_printf(DAT_000c458c,"-----\n");
            }
            iVar10 = OPENSSL_sk_num(psVar16);
            local_52c = -1;
            if (iVar10 != 0) {
LAB_000509ca:
              do {
                do {
                  do {
                    local_52c = local_52c + 1;
                    iVar10 = OPENSSL_sk_num(psVar16);
                    if (iVar10 <= local_52c) {
                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);
                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;
                      if (local_53c != 0) goto LAB_00051084;
                      if (local_548 == (BIO *)0x0) goto LAB_00050951;
                      uVar33 = OPENSSL_sk_num(local_548);
                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);
                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {
                        BIO_printf(DAT_000c458c,
                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,
                                   uVar35);
                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");
                      }
                      local_588 = -1;
                      pcVar11 = (char *)local_484;
                      goto LAB_00050afd;
                    }
                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);
                    pbVar17 = *(byte **)(iVar10 + 4);
                    iVar10 = FUN_0004d7e0();
                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||
                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||
                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));
                  bVar32 = *pbVar17;
                  pbVar28 = pbVar17;
                  if (bVar32 == 0) {
                    local_514 = 0;
                  }
                  else {
                    do {
                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {
                        if (*(byte *)((int)pbVar28 + 1) != 0) {
                          pbVar17 = (byte *)((int)pbVar28 + 1);
                        }
                        break;
                      }
                      pbVar28 = (byte *)((int)pbVar28 + 1);
                      bVar32 = *pbVar28;
                    } while (bVar32 != 0);
                    local_514 = 0;
                    if (*pbVar17 == 0x2b) {
                      local_514 = -1;
                      pbVar17 = pbVar17 + 1;
                    }
                  }
                  iVar10 = OBJ_txt2nid((char *)pbVar17);
                } while (iVar10 == 0);
                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);
                if (iVar18 == 0) break;
                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);
                if (pcVar12 == (char *)0x0) {
                  ERR_clear_error();
                  pcVar12 = "";
                }
                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);
                if (iVar18 == 0) break;
                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);
                if (pcVar12 == (char *)0x0) {
                  ERR_clear_error();
                }
                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);
                if (iVar18 == 0) break;
                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);
                if (iVar18 == 0) {
                  ERR_clear_error();
                  local_4a4 = -1;
                }
                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);
                if (iVar18 == 0) break;
                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)
                ;
                if (iVar18 == 0) {
                  ERR_clear_error();
                  local_4a0.flags = -1;
                }
                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");
                if (uVar27 < 2) {
                  if (uVar27 == 0) break;
                  goto LAB_000509ca;
                }
                iVar10 = X509_NAME_add_entry_by_NID
                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);
              } while (iVar10 != 0);
              puVar26 = &DAT_000c458c;
              goto LAB_0004f815;
            }
            pcVar12 = "No template, please set one up.\n";
            psVar16 = (stack_st_CONF_VALUE *)0x0;
            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;
          }
          goto LAB_0005074a;
        }
        iVar10 = FUN_0004dcf0(local_57c);
        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))
        goto LAB_0004f80b;
        if (local_53c != 0) {
          local_548 = (BIO *)0x0;
          local_51c = 0;
LAB_0004f99b:
          x = X509_new();
          if ((x != (X509 *)0x0) &&
             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||
              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {
            if (local_554 == (ASN1_INTEGER *)0x0) {
              pAVar15 = X509_get_serialNumber(x);
              iVar10 = FUN_00074630(0,pAVar15);
            }
            else {
              iVar10 = X509_set_serialNumber(x,local_554);
            }
            if (iVar10 != 0) {
              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
              iVar10 = X509_set_issuer_name(x,pXVar23);
              if (iVar10 != 0) {
                iVar10 = 0x1e;
                if (local_530 != 0) {
                  iVar10 = local_530;
                }
                iVar10 = FUN_00077500(x,0,0,iVar10);
                if (iVar10 != 0) {
                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
                  iVar10 = X509_set_subject_name(x,pXVar23);
                  if (((iVar10 != 0) &&
                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)
                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {
                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);
                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);
                    if ((local_528 == (char **)0x0) ||
                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),
                       iVar10 != 0)) {
                      if ((DAT_000c4a94 == (CONF *)0x0) ||
                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),
                         iVar10 != 0)) {
                        if (bVar4) {
                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);
                          local_528 = (char **)(iVar10 + -1);
                          if (local_528 != (char **)0x0) {
                            pcVar11 = "Error adding poison extension\n";
                            ppcVar9 = local_528;
                            goto LAB_00050666;
                          }
                        }
                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);
                        if (iVar10 == 0) {
                          ERR_print_errors(DAT_000c458c);
                          goto LAB_0004fb6e;
                        }
                        bVar31 = local_51c != 0;
                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;
                        pcVar11 = "Cannot modify certificate subject\n";
                        goto LAB_0004fb64;
                      }
                      pcVar11 = "Error Loading command line extensions\n";
                      local_528 = (char **)0x0;
                      ppcVar9 = (char **)0x0;
                    }
                    else {
                      pcVar11 = "Error Loading extension section %s\n";
                      ppcVar9 = (char **)0x0;
                    }
LAB_00050666:
                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);
                  }
                }
              }
            }
          }
          goto LAB_0004fb6e;
        }
LAB_0004fbe2:
        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);
        X509V3_set_nconf(&local_4a0,DAT_000c4a98);
        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||
           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),
           iVar10 != 0)) {
          if ((DAT_000c4a94 != (CONF *)0x0) &&
             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0
             )) {
            pcVar12 = "Error Loading command line extensions\n";
            local_524 = (stack_st_CONF_VALUE *)pcVar11;
            goto LAB_0005068b;
          }
          x = (X509 *)0x0;
          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);
          local_548 = (BIO *)0x0;
          if (iVar10 != 0) goto LAB_0004fc7f;
          ERR_print_errors(DAT_000c458c);
        }
        else {
          pcVar12 = "Error Loading extension section %s\n";
          pcVar11 = (char *)0x0;
LAB_0005068b:
          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);
        }
        goto LAB_0004f82c;
      }
      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);
      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;
      if (local_4b8 == (undefined *)0x4) {
        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);
      }
      else {
        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);
      }
      if (x_00 == (X509_REQ *)0x0) {
        x = (X509 *)0x0;
        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);
        local_570 = (EVP_PKEY *)0x0;
        local_560 = (BIO *)0x0;
        local_564 = 1;
        goto LAB_0004e56a;
      }
      if (local_53c != 0) {
        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;
        goto LAB_0004f99b;
      }
      bVar31 = local_51c != 0;
      x = (X509 *)0x0;
LAB_0004fed2:
      if ((bVar31 & (byte)local_564) != 0) {
        if (bVar2) {
          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");
          uVar35 = FUN_00073120();
          uVar25 = X509_REQ_get_subject_name(x_00);
          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);
          iVar10 = FUN_0004dcf0(local_57c);
          if (iVar10 == 0) goto LAB_0004ff17;
          uVar35 = FUN_00073120();
          uVar25 = X509_REQ_get_subject_name(x_00);
          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);
        }
        else {
          iVar10 = FUN_0004dcf0(local_57c);
          if (iVar10 == 0) {
LAB_0004ff17:
            pcVar11 = "ERROR: cannot modify subject\n";
LAB_0004fb64:
            BIO_printf(DAT_000c458c,pcVar11);
LAB_0004fb6e:
            local_564 = 1;
            local_570 = (EVP_PKEY *)0x0;
            local_560 = (BIO *)0x0;
            goto LAB_0004e56a;
          }
        }
      }
LAB_0004fc7f:
      local_564 = local_578 & local_564;
      if (local_564 != 0) {
        local_560 = local_4d0;
        if ((local_4d0 == (BIO *)0x0) &&
           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
        }
        else {
          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);
          if (-1 < iVar10) {
            if (iVar10 == 0) {
              BIO_printf(DAT_000c458c,"verify failure\n");
              ERR_print_errors(DAT_000c458c);
            }
            else {
              BIO_printf(DAT_000c458c,"verify OK\n");
            }
            goto LAB_0004fce0;
          }
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
        }
        goto LAB_0004e56a;
      }
LAB_0004fce0:
      puVar6 = local_4b4;
      if (((local_580 & (local_594 ^ 1)) != 0) &&
         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {
        local_564 = 0;
        local_570 = (EVP_PKEY *)0x0;
        local_560 = (BIO *)0x0;
        goto LAB_0004e57b;
      }
      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {
        iVar10 = 0x77;
      }
      else {
        iVar10 = strcmp(local_518,local_50c);
        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;
      }
      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);
      if (local_560 == (BIO *)0x0) {
        local_570 = (EVP_PKEY *)0x0;
        local_564 = 1;
        goto LAB_0004e56a;
      }
      if (local_56c != 0) {
        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);
        if (pEVar24 == (EVP_PKEY *)0x0) {
          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);
          ERR_print_errors(DAT_000c458c);
          local_564 = local_56c;
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_0004e56a;
        }
        PEM_write_bio_PUBKEY(local_560,pEVar24);
      }
      uVar19 = local_4a8;
      local_564 = 0;
      if (local_594 == 0) {
        if (local_584 == 0) {
          local_598 = 1;
          if (local_520 == 0) goto LAB_0004fe2d;
          local_598 = local_520;
          if (local_53c == 0) goto LAB_00050366;
          local_598 = local_53c;
LAB_0004fdbe:
          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);
LAB_0004fdce:
          puVar6 = PTR_stdout_000bdfa8;
          if (local_570 == (EVP_PKEY *)0x0) {
            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);
            local_564 = local_598;
            goto LAB_0004e56a;
          }
          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);
          iVar10 = EVP_PKEY_base_id(local_570);
          if (iVar10 == 6) {
            uVar35 = EVP_PKEY_get0_RSA(local_570);
            RSA_get0_key(uVar35,&local_4a0,0,0);
            BN_print(local_560,(BIGNUM *)local_4a0.flags);
          }
          else {
            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);
          }
          fputc(10,*(FILE **)puVar6);
          goto LAB_0004fe2d;
        }
        local_598 = local_584;
        if (local_53c != 0) {
          local_598 = local_53c;
LAB_0004ffc7:
          uVar35 = FUN_00073120();
          pXVar23 = X509_get_subject_name(x);
          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);
          if (local_520 == 0) goto LAB_0004fff8;
          goto LAB_0004fdbe;
        }
LAB_000502e6:
        uVar35 = FUN_00073120();
        uVar25 = X509_REQ_get_subject_name(x_00);
        FUN_00073b90(local_560,"subject=",uVar25,uVar35);
        if (local_520 != 0) {
LAB_00050366:
          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);
          goto LAB_0004fdce;
        }
        if (local_580 == 0) goto LAB_0004fe3b;
LAB_0005031e:
        local_564 = 0;
        local_570 = (EVP_PKEY *)0x0;
        goto LAB_0004e57b;
      }
      if (local_53c == 0) {
        uVar22 = FUN_00073120();
        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);
        if (local_598 == 0) {
          pcVar11 = "Error printing certificate request\n";
          goto LAB_00050628;
        }
        if (local_584 != 0) goto LAB_000502e6;
        if (local_520 != 0) goto LAB_00050366;
LAB_0004fe2d:
        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;
LAB_0004fe3b:
        if (local_4b4 == (undefined *)0x4) {
          iVar10 = i2d_X509_REQ_bio(local_560,x_00);
          uVar35 = extraout_EDX_02;
        }
        else if (bVar5) {
          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);
          uVar35 = extraout_EDX_00;
        }
        else {
          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);
          uVar35 = extraout_EDX_01;
        }
        local_570 = (EVP_PKEY *)0x0;
        if (iVar10 != 0) goto LAB_0004e57b;
        pcVar11 = "unable to write X509 request\n";
      }
      else {
        uVar22 = FUN_00073120();
        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);
        if (local_598 == 0) {
          pcVar11 = "Error printing certificate\n";
LAB_00050628:
          BIO_printf(DAT_000c458c,pcVar11,0,0);
          ERR_print_errors(DAT_000c458c);
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_0004e57b;
        }
        if (local_584 != 0) goto LAB_0004ffc7;
        if (local_520 != 0) goto LAB_0004fdbe;
LAB_0004fff8:
        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;
        local_570 = (EVP_PKEY *)0x0;
        if (x == (X509 *)0x0) goto LAB_0004e57b;
        if (local_4b4 == (undefined *)0x4) {
          iVar10 = i2d_X509_bio(local_560,x);
        }
        else {
          iVar10 = PEM_write_bio_X509(local_560,x);
        }
        local_570 = (EVP_PKEY *)0x0;
        if (iVar10 != 0) goto LAB_0004e57b;
        pcVar11 = "unable to write X509 certificate\n";
        uVar35 = 0;
      }
      local_570 = (EVP_PKEY *)0x0;
      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);
      local_564 = local_598;
    }
  }
  else {
    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");
    local_4d0 = local_548;
    if (local_548 != (BIO *)0x0) {
      FUN_00072430(DAT_000c4a98,&DAT_00091821);
      goto LAB_0004f1d1;
    }
LAB_0004f60c:
    x_00 = (X509_REQ *)0x0;
    x = (X509 *)0x0;
    local_570 = (EVP_PKEY *)0x0;
    local_560 = (BIO *)0x0;
    local_564 = 1;
  }
  goto LAB_0004e56a;
  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {
LAB_00050afd:
    do {
      local_588 = local_588 + 1;
      iVar10 = OPENSSL_sk_num(local_548);
      if (iVar10 <= local_588) goto LAB_00050951;
      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);
      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));
    } while (iVar10 == 0);
    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);
    if (iVar18 == 0) {
LAB_00050d30:
      puVar26 = &DAT_000c458c;
      goto LAB_0004f815;
    }
    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);
    if (pcVar12 == (char *)0x0) {
      ERR_clear_error();
    }
    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);
    if (iVar18 == 0) goto LAB_00050d30;
    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);
    if (pcVar12 == (char *)0x0) {
      ERR_clear_error();
    }
    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);
    if (iVar18 == 0) goto LAB_00050d30;
    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);
    uVar35 = extraout_ECX_00;
    if (iVar18 == 0) {
      ERR_clear_error();
      local_4a4 = -1;
      uVar35 = extraout_ECX_01;
    }
    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);
    if (iVar18 == 0) goto LAB_00050d30;
    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);
    if (iVar18 == 0) {
      ERR_clear_error();
      local_4a0.flags = -1;
    }
    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")
    ;
    if (uVar27 < 2) {
      if (uVar27 == 0) goto LAB_00050d30;
      goto LAB_00050afd;
    }
  }
  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);
  ERR_print_errors(DAT_000c458c);
LAB_0004f815:
  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);
LAB_0004f82c:
  local_564 = 1;
  x = (X509 *)0x0;
  local_570 = (EVP_PKEY *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
LAB_0004e56a:
  ERR_print_errors(DAT_000c458c);
LAB_0004e57b:
  NCONF_free(DAT_000c4a98);
  NCONF_free(DAT_000c4a94);
  BIO_free(local_550);
  BIO_free(local_548);
  BIO_free_all(local_560);
  EVP_PKEY_free((EVP_PKEY *)local_4d0);
  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);
  OPENSSL_sk_free(local_55c);
  OPENSSL_sk_free(local_558);
  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);
  OPENSSL_LH_free(local_54c);
  ENGINE_free(local_544);
  uVar35 = 0x3cc;
  CRYPTO_free(local_4c8);
  X509_REQ_free(x_00);
  X509_free(x);
  ASN1_INTEGER_free(local_554);
  FUN_00074230(local_540,pcVar34,uVar35);
  if (local_4c4 != local_538) {
    CRYPTO_free(local_4c4);
  }
  if (local_4c0 != local_534) {
    CRYPTO_free(local_4c0);
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007d010();
  }
  return local_564;
}


PUSH EBP
XOR EBP,EBP
PUSH EDI
PUSH ESI
MOV ESI,0x1
PUSH EBX
CALL 0x0002c7d0
ADD EBX,0x6e858
SUB ESP,0x58c
MOV EDI,dword ptr [ESP + 0x5a4]
MOV dword ptr [ESP + 0xa0],EDI
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x57c],EAX
XOR EAX,EAX
LEA EAX,[EBX + 0x7b20]
MOV dword ptr [ESP + 0xcc],0x0
MOV dword ptr [ESP + 0xd0],0x0
MOV dword ptr [ESP + 0x98],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0xd4],0x0
MOV dword ptr [ESP + 0xd8],0x0
MOV dword ptr [ESP + 0xdc],0x0
MOV dword ptr [ESP + 0x3c],EAX
MOV dword ptr [ESP + 0xe0],0xffffffff
MOV dword ptr [ESP + 0xe4],0x8005
MOV dword ptr [ESP + 0xe8],0x8005
MOV dword ptr [ESP + 0xec],0x8005
MOV dword ptr [ESP + 0xf0],0xffffffff
MOV dword ptr [ESP + 0xf4],0x0
CALL 0x0002a430
SUB ESP,0x4
MOV dword ptr [ESP + 0xa0],EAX
LEA EAX,[EBX + 0xffffea08]
MOV dword ptr [ESP + 0x3c],EAX
PUSH EAX
PUSH EDI
PUSH dword ptr [ESP + 0x5ac]
CALL 0x00077e50
MOV dword ptr [ESP + 0x74],EAX
ADD ESP,0x10
LEA EAX,[EBX + 0xfffcb048]
MOV dword ptr [ESP + 0x14],0x1001
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x7c],0x0
MOV dword ptr [ESP + 0x4],0x0
MOV dword ptr [ESP + 0x6c],0x0
MOV dword ptr [ESP + 0x60],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x84],0x0
MOV dword ptr [ESP + 0x80],0x0
MOV dword ptr [ESP + 0x78],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x88],0x0
MOV dword ptr [ESP + 0x90],0x0
MOV dword ptr [ESP + 0x70],0x0
MOV dword ptr [ESP + 0x74],0x0
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x8c],0x0
MOV dword ptr [ESP + 0x50],0x0
MOV dword ptr [ESP + 0x44],0x0
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x58],0x0
MOV dword ptr [ESP + 0x5c],0x0
MOV dword ptr [ESP + 0x48],0x0
MOV dword ptr [ESP + 0x34],EAX
LEA EAX,[ESP + 0xd0]
MOV dword ptr [ESP + 0x94],EAX
LEA ESI,[ESI]
CALL 0x00078780
TEST EAX,EAX
JZ 0x0004e6f0
CMP EAX,0x15
JZ 0x0004ef88
JG 0x0004e4c0
CMP EAX,0xa
JZ 0x0004ee70
JG 0x0004ec20
CMP EAX,0x4
JZ 0x0004ee50
JLE 0x0004eb98
CMP EAX,0x7
JZ 0x0004edc0
JG 0x0004eb80
CMP EAX,0x5
JNZ 0x0004eb60
CALL 0x00078b30
SUB ESP,0xc
PUSH EAX
CALL 0x0002b270
MOV dword ptr [ESP + 0x68],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0xa4]
PUSH dword ptr [EAX]
LEA EAX,[EBX + 0xfffcb0bc]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004e51a
CMP EAX,0x20
JZ 0x0004ede0
JG 0x0004e9c0
CMP EAX,0x1a
JZ 0x0004edd0
JLE 0x0004e978
CMP EAX,0x1d
JZ 0x0004edf0
JG 0x0004e960
CMP EAX,0x1b
JNZ 0x0004e6b0
CALL 0x00078b30
SUB ESP,0xc
PUSH EAX
CALL 0x00073960
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
NOP
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x14],EAX
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc16e9]
PUSH dword ptr [ESP + 0x68]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x2c],0x0
XOR EDI,EDI
XOR EBP,EBP
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x54],0x0
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
CALL 0x0002c0c0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBX + 0x8020]
CALL 0x00027a10
POP ESI
PUSH dword ptr [EBX + 0x801c]
CALL 0x00027a10
POP EAX
PUSH dword ptr [ESP + 0x58]
CALL 0x0002b860
POP EAX
PUSH dword ptr [ESP + 0x60]
CALL 0x0002b860
POP EAX
PUSH dword ptr [ESP + 0x48]
CALL 0x0002a850
POP EAX
PUSH dword ptr [ESP + 0xd8]
CALL 0x0002b350
POP EAX
PUSH dword ptr [ESP + 0x38]
CALL 0x00029de0
POP EAX
PUSH dword ptr [ESP + 0x4c]
CALL 0x0002b760
POP EDX
PUSH dword ptr [ESP + 0x50]
CALL 0x0002b760
LEA EAX,[EBX + 0xfff90c68]
POP ECX
POP ESI
PUSH EAX
MOV ESI,dword ptr [ESP + 0x5c]
PUSH ESI
CALL 0x0002b980
MOV dword ptr [ESP],ESI
CALL 0x000289c0
POP EAX
PUSH dword ptr [ESP + 0x64]
CALL 0x0002a360
ADD ESP,0xc
PUSH 0x3cc
MOV ESI,dword ptr [ESP + 0x3c]
PUSH ESI
PUSH dword ptr [ESP + 0xe0]
CALL 0x00028c20
MOV dword ptr [ESP],EDI
CALL 0x00029330
MOV dword ptr [ESP],EBP
CALL 0x0002c2c0
POP EAX
PUSH dword ptr [ESP + 0x54]
CALL 0x00029250
POP EAX
PUSH dword ptr [ESP + 0x68]
CALL 0x00074230
MOV EAX,dword ptr [ESP + 0xe8]
ADD ESP,0x10
CMP EAX,dword ptr [ESP + 0x64]
JZ 0x0004e662
SUB ESP,0x4
PUSH 0x3d2
PUSH ESI
PUSH EAX
CALL 0x00028c20
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xdc]
CMP EAX,dword ptr [ESP + 0x68]
JZ 0x0004e684
SUB ESP,0x4
PUSH 0x3d4
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
CALL 0x00028c20
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x57c]
XOR EDI,dword ptr GS:[0x14]
MOV EAX,dword ptr [ESP + 0x38]
JNZ 0x00050798
ADD ESP,0x58c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EAX,0x1c
JNZ 0x0004e430
CALL 0x00078b30
SUB ESP,0x8
PUSH EAX
LEA EAX,[ESP + 0x100]
PUSH EAX
CALL 0x000738d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004e510
CALL 0x00078780
TEST EAX,EAX
JNZ 0x0004e43d
LEA ESI,[ESI]
NOP
CALL 0x00079110
MOV dword ptr [ESP + 0x38],EAX
TEST EAX,EAX
JNZ 0x0004e510
MOV EAX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [ESP + 0x6c]
XOR EAX,0x1
MOV dword ptr [ESP + 0xac],EAX
AND EAX,0x1
MOV byte ptr [ESP + 0xa0],AL
TEST EDI,EDI
JZ 0x0004e73f
TEST AL,AL
JZ 0x0004e73f
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb62c]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP + 0x70]
AND ECX,0x1
TEST ESI,ESI
SETZ AL
MOV byte ptr [ESP + 0xa4],CL
AND AL,CL
MOV byte ptr [ESP + 0x94],AL
JNZ 0x0004f4b0
MOV EAX,EBP
AND EAX,0x1
MOV byte ptr [ESP + 0x94],AL
MOV EAX,dword ptr [ESP + 0xcc]
MOV dword ptr [ESP + 0xa8],EAX
LEA EAX,[ESP + 0xdc]
PUSH EAX
LEA EAX,[ESP + 0xdc]
PUSH EAX
PUSH dword ptr [ESP + 0x5c]
PUSH dword ptr [ESP + 0x74]
CALL 0x00075b40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f5ea
MOV ECX,dword ptr [ESP + 0x4]
TEST ECX,ECX
JNZ 0x0004f588
SUB ESP,0xc
PUSH dword ptr [ESP + 0x48]
CALL 0x00075fc0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EBX + 0x8020],EAX
TEST EDX,EDX
JZ 0x0004e7ee
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [ESP + 0x58]
CALL 0x00073230
ADD ESP,0x10
MOV dword ptr [EBX + 0x801c],EAX
MOV EAX,dword ptr [EBX + 0x8020]
MOV EDI,dword ptr [ESP + 0x98]
MOV EDX,dword ptr [ESP + 0x3c]
CMP dword ptr [EDI],EDX
JZ 0x0004e817
SUB ESP,0xc
PUSH EAX
CALL 0x000770d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004eb16
MOV EAX,dword ptr [EBX + 0x8020]
TEST EAX,EAX
JZ 0x0004e86f
SUB ESP,0x4
LEA EDX,[EBX + 0xfffc1d16]
PUSH EDX
PUSH 0x0
PUSH EAX
CALL 0x0002aa40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f8e1
SUB ESP,0x8
LEA EDX,[EBX + 0xfffca2ea]
PUSH EDX
PUSH EAX
CALL 0x00028c00
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0004f4f1
SUB ESP,0xc
PUSH ESI
CALL 0x0002a8c0
MOV dword ptr [ESP],ESI
CALL 0x0002b860
MOV EAX,dword ptr [EBX + 0x8020]
ADD ESP,0x10
SUB ESP,0xc
PUSH EAX
CALL 0x00073330
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004eb16
MOV EAX,dword ptr [ESP + 0xd0]
TEST EAX,EAX
JZ 0x0004f853
MOV EDI,dword ptr [ESP + 0x74]
TEST EDI,EDI
JZ 0x0004f8a9
SUB ESP,0x8
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
LEA ESI,[ESP + 0x118]
PUSH ESI
CALL 0x00028c30
ADD ESP,0x18
PUSH dword ptr [EBX + 0x8020]
PUSH ESI
CALL 0x000275d0
PUSH 0x0
PUSH dword ptr [ESP + 0x88]
PUSH ESI
PUSH dword ptr [EBX + 0x8020]
CALL 0x00027d80
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0004f576
MOV ESI,dword ptr [EBX + 0x801c]
TEST ESI,ESI
JZ 0x0004f04a
SUB ESP,0x8
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
LEA ESI,[ESP + 0x118]
PUSH ESI
CALL 0x00028c30
ADD ESP,0x18
PUSH dword ptr [EBX + 0x801c]
PUSH ESI
CALL 0x000275d0
LEA EAX,[EBX + 0xfffcb216]
PUSH 0x0
PUSH EAX
PUSH ESI
PUSH dword ptr [EBX + 0x801c]
CALL 0x00027d80
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0004f04a
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb690]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
JMP 0x0004e52c
CMP EAX,0x1e
JNZ 0x0004e9a8
MOV dword ptr [ESP + 0x18],0x1
JMP 0x0004e430
CMP EAX,0x17
JZ 0x0004edb0
JL 0x0004eda0
CMP EAX,0x18
JZ 0x0004ed80
CMP EAX,0x19
MOV EAX,dword ptr [ESP + 0x4]
CMOVZ EAX,ESI
MOV dword ptr [ESP + 0x4],EAX
JMP 0x0004e430
CMP EAX,0x1f
MOV EAX,dword ptr [ESP + 0x8]
CMOVZ EAX,ESI
MOV dword ptr [ESP + 0x8],EAX
JMP 0x0004e430
CMP EAX,0x25
JZ 0x0004eea0
JG 0x0004ed08
CMP EAX,0x22
JZ 0x0004eeb0
JL 0x0004ed90
CMP EAX,0x23
JZ 0x0004ef98
CMP EAX,0x24
JNZ 0x0004e430
CALL 0x00078b30
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x50]
TEST EAX,EAX
JZ 0x0004efe1
MOVZX EDI,byte ptr [EDX]
MOV EAX,EDI
TEST AL,AL
JZ 0x0004ea4d
MOV dword ptr [ESP + 0xa4],EBP
MOV EBP,EDX
JMP 0x0004ea31
ADD EBP,0x1
MOVZX EDI,byte ptr [EBP]
MOV EAX,EDI
TEST AL,AL
JZ 0x0004e510
CALL 0x00029080
MOV ECX,EDI
MOV EAX,dword ptr [EAX]
MOVSX EDI,CL
TEST byte ptr [EAX + EDI*0x2 + 0x1],0x20
JNZ 0x0004ea20
MOV EDX,EBP
MOV EBP,dword ptr [ESP + 0xa4]
SUB ESP,0x8
PUSH 0x3d
PUSH EDX
MOV dword ptr [ESP + 0xb4],EDX
CALL 0x00027df0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xa4]
TEST EAX,EAX
JZ 0x0004e510
SUB ESP,0x4
SUB EAX,EDX
PUSH 0xbd
MOV EDI,EAX
PUSH dword ptr [ESP + 0x3c]
PUSH EDX
CALL 0x000289e0
ADD ESP,0x10
MOV EDX,EAX
TEST EAX,EAX
JZ 0x0004f5f8
ADD EDI,EAX
CMP EAX,EDI
JNC 0x0004eace
MOV dword ptr [ESP + 0xa4],EAX
CALL 0x00029080
MOV EDX,dword ptr [ESP + 0xa4]
MOV ECX,dword ptr [EAX]
JMP 0x0004eac3
SUB EDI,0x1
CMP EDX,EDI
JZ 0x0004f4ba
MOVSX EAX,byte ptr [EDI + -0x1]
TEST byte ptr [ECX + EAX*0x2 + 0x1],0x20
JNZ 0x0004eab8
CMP EDI,EDX
JZ 0x0004f4ba
SUB ESP,0x8
MOV byte ptr [EDI],0x0
PUSH EDX
MOV dword ptr [ESP + 0xb0],EDX
PUSH dword ptr [ESP + 0x5c]
CALL 0x0002a660
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0004f637
MOV dword ptr [ESP + 0x3c],EAX
SUB ESP,0x4
PUSH 0xcd
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x48]
CALL 0x00028c20
ADD ESP,0x10
LEA EAX,[EBX + 0x7b14]
XOR EDI,EDI
XOR EBP,EBP
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
CMP EAX,0x6
JNZ 0x0004e430
CALL 0x00078b30
MOV dword ptr [ESP + 0x88],EAX
JMP 0x0004e430
CMP EAX,0x8
JNZ 0x0004ec58
MOV EBP,0x1
JMP 0x0004e430
CMP EAX,0x1
JZ 0x0004eed0
JLE 0x0004ec08
CMP EAX,0x2
JNZ 0x0004ebd0
CALL 0x00078b30
SUB ESP,0x4
LEA EDX,[ESP + 0xe8]
PUSH EDX
PUSH 0x2
PUSH EAX
CALL 0x00077fb0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
JMP 0x0004e510
CMP EAX,0x3
JNZ 0x0004e430
CALL 0x00078b30
SUB ESP,0x4
LEA EDX,[ESP + 0xec]
PUSH EDX
PUSH 0x2
PUSH EAX
CALL 0x00077fb0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
JMP 0x0004e510
CMP EAX,-0x1
JZ 0x0004e510
JMP 0x0004e430
CMP EAX,0xf
JZ 0x0004ee40
JLE 0x0004ecc0
CMP EAX,0x12
JZ 0x0004ee08
JG 0x0004ecb0
CMP EAX,0x10
JNZ 0x0004ec70
CALL 0x00078b30
MOV EBP,0x1
MOV dword ptr [ESP + 0x2c],EAX
JMP 0x0004e430
CMP EAX,0x9
JNZ 0x0004e430
CALL 0x00078b30
MOV dword ptr [ESP + 0x3c],EAX
JMP 0x0004e430
CMP EAX,0x11
JNZ 0x0004e430
MOV EAX,dword ptr [ESP + 0x40]
TEST EAX,EAX
JZ 0x0004f034
CALL 0x00078b30
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x4c]
CALL 0x0002a990
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
JMP 0x0004e510
CMP EAX,0x13
JNZ 0x0004ecf0
MOV dword ptr [EBX + 0x8018],ESI
JMP 0x0004e430
CMP EAX,0xc
JZ 0x0004ef70
JL 0x0004ef58
CMP EAX,0xd
JZ 0x0004efd0
CMP EAX,0xe
JNZ 0x0004e430
CALL 0x00078b30
MOV dword ptr [ESP + 0x68],EAX
JMP 0x0004e430
CMP EAX,0x14
MOV EAX,dword ptr [ESP + 0xc]
CMOVZ EAX,ESI
MOV dword ptr [ESP + 0xc],EAX
JMP 0x0004e430
CMP EAX,0x28
JZ 0x0004ef20
JG 0x0004ed30
CMP EAX,0x26
JNZ 0x0004ed60
CALL 0x00078b30
MOV dword ptr [ESP + 0x78],EAX
JMP 0x0004e430
LEA EDX,[EAX + 0xfffffa23]
CMP EDX,0x1
JA 0x0004e430
SUB ESP,0xc
PUSH EAX
CALL 0x00072560
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
JMP 0x0004eb16
MOV ECX,dword ptr [ESP + 0x10]
CMP EAX,0x27
CMOVZ EBP,ESI
CMOVZ ECX,ESI
MOV dword ptr [ESP + 0x10],ECX
JMP 0x0004e430
MOV dword ptr [ESP + 0x1c],0x1
JMP 0x0004e430
MOV dword ptr [ESP + 0x20],0x1
JMP 0x0004e430
MOV dword ptr [ESP + 0x24],0x1
JMP 0x0004e430
MOV dword ptr [ESP + 0x28],0x1
JMP 0x0004e430
MOV dword ptr [ESP + 0x30],0x1
JMP 0x0004e430
MOV dword ptr [ESP + 0x14],0x1000
JMP 0x0004e430
MOV dword ptr [ESP + 0x60],0x1
JMP 0x0004e430
CALL 0x00078b30
MOV dword ptr [ESP + 0x80],EAX
JMP 0x0004e430
MOV EAX,dword ptr [ESP + 0x44]
TEST EAX,EAX
JZ 0x0004f4db
CALL 0x00078b30
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x50]
CALL 0x0002a990
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
JMP 0x0004e510
CALL 0x00078b30
MOV dword ptr [ESP + 0x54],EAX
JMP 0x0004e430
CALL 0x00078b30
SUB ESP,0x8
PUSH 0x0
PUSH EAX
CALL 0x00074050
MOV dword ptr [ESP + 0x6c],EAX
ADD ESP,0x10
JMP 0x0004e430
CALL 0x00078b30
SUB ESP,0x4
LEA EDX,[ESP + 0xf0]
PUSH EDX
PUSH 0x7be
PUSH EAX
CALL 0x00077fb0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
JMP 0x0004e510
CALL 0x00078b30
MOV dword ptr [ESP + 0x74],EAX
JMP 0x0004e430
CALL 0x00078b30
SUB ESP,0x4
PUSH 0xa
PUSH 0x0
PUSH EAX
CALL 0x00028b80
MOV dword ptr [ESP + 0x7c],EAX
ADD ESP,0x10
JMP 0x0004e430
SUB ESP,0xc
XOR EDI,EDI
XOR EBP,EBP
PUSH dword ptr [ESP + 0x44]
CALL 0x00079140
ADD ESP,0x10
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x54],0x0
JMP 0x0004e57b
CALL 0x000790d0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x9c]
PUSH EAX
CALL 0x000782e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004e510
MOV EAX,dword ptr [ESP + 0xd0]
MOV dword ptr [ESP + 0x8c],EAX
JMP 0x0004e430
CALL 0x00078b30
MOV dword ptr [ESP + 0x70],EAX
JMP 0x0004e430
CALL 0x00078b30
MOV dword ptr [ESP + 0x90],EAX
JMP 0x0004e430
MOV dword ptr [ESP + 0x7c],0x1
JMP 0x0004e430
MOV EAX,dword ptr [ESP + 0x48]
TEST EAX,EAX
JNZ 0x0004fbc8
CALL 0x00078b30
SUB ESP,0x8
PUSH EAX
PUSH 0x0
CALL 0x00027830
MOV dword ptr [ESP + 0x58],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e430
JMP 0x0004e510
CALL 0x00078b30
MOV dword ptr [ESP + 0x84],EAX
JMP 0x0004e430
MOV dword ptr [ESP + 0xa4],EDX
LEA EAX,[EBX + 0xfff90c38]
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xfff90d48]
PUSH EAX
CALL 0x00028b30
MOV EDI,EAX
CALL 0x00029900
MOV dword ptr [ESP],EAX
CALL 0x00029060
MOV dword ptr [ESP + 0x5c],EAX
ADD ESP,0x10
TEST EDI,EDI
JZ 0x0005042d
TEST EAX,EAX
JZ 0x0005042d
MOV dword ptr [ESP + 0x50],EDI
MOV EDX,dword ptr [ESP + 0xa4]
JMP 0x0004ea03
CALL 0x00028b20
MOV dword ptr [ESP + 0x40],EAX
TEST EAX,EAX
JNZ 0x0004ec85
JMP 0x0004e510
MOV ECX,dword ptr [ESP + 0xd8]
LEA EDI,[EBX + 0xfffd4da9]
MOV EAX,dword ptr [EBX + 0x8020]
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x98],EDI
TEST ECX,ECX
JZ 0x0004f53e
MOV EDX,dword ptr [ESP + 0xdc]
MOV dword ptr [ESP + 0x68],0x0
TEST EDX,EDX
JZ 0x0004f506
SUB ESP,0x4
LEA EDX,[EBX + 0xfffc1d1f]
PUSH EDX
PUSH dword ptr [ESP + 0xa0]
PUSH EAX
CALL 0x0002aa40
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0004f4fc
SUB ESP,0xc
PUSH EAX
CALL 0x00029500
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004fb9c
CMP dword ptr [ESP + 0x14],0x1000
JZ 0x0004f5da
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc1d2b]
PUSH EAX
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004ff46
MOV ESI,EAX
MOV ECX,0x4
LEA EDI,[EBX + 0xfffc1d30]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0004f5da
MOV dword ptr [ESP + 0xb0],0x1001
MOV EAX,dword ptr [ESP + 0x78]
TEST EAX,EAX
JZ 0x0004f8fa
SUB ESP,0x8
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
LEA ESI,[ESP + 0x118]
PUSH ESI
CALL 0x00028c30
ADD ESP,0x18
PUSH dword ptr [EBX + 0x8020]
PUSH ESI
CALL 0x000275d0
PUSH 0x0
PUSH dword ptr [ESP + 0x8c]
PUSH ESI
PUSH dword ptr [EBX + 0x8020]
CALL 0x00027d80
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0004ff2a
MOV EDI,dword ptr [ESP + 0x88]
TEST EDI,EDI
JZ 0x0004f1d1
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd4a99]
PUSH EAX
PUSH dword ptr [ESP + 0x68]
PUSH dword ptr [ESP + 0xe8]
PUSH 0x0
PUSH dword ptr [ESP + 0x104]
PUSH EDI
CALL 0x000764e0
MOV dword ptr [ESP + 0x74],EAX
MOV dword ptr [ESP + 0xec],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0004f60c
SUB ESP,0x8
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x00072430
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xcc]
MOV dword ptr [ESP + 0x54],EAX
TEST EAX,EAX
JNZ 0x0004f6b8
CMP byte ptr [ESP + 0x94],0x0
JZ 0x0004f6b8
SUB ESP,0x8
MOV EDI,dword ptr [ESP + 0xa0]
PUSH EDI
PUSH dword ptr [EBX + 0x8020]
CALL 0x00072430
LEA ESI,[ESP + 0x100]
LEA EAX,[EBX + 0xfffcb125]
PUSH ESI
PUSH EAX
PUSH EDI
PUSH dword ptr [EBX + 0x8020]
CALL 0x00028dc0
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0004fb8b
MOV dword ptr [ESP + 0xf0],0x800
MOV EAX,dword ptr [ESP + 0x2c]
TEST EAX,EAX
JZ 0x000500cd
LEA EDX,[ESP + 0xe0]
SUB ESP,0x8
MOV ECX,ESI
PUSH dword ptr [ESP + 0x60]
LEA EAX,[ESP + 0xe0]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x3c]
CALL 0x0004d840
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000501d6
MOV EAX,dword ptr [ESP + 0xe0]
MOV EDX,dword ptr [ESP + 0xf0]
CMP EAX,0x6
SETZ CL
CMP EDX,0x1ff
JG 0x00050147
CMP EAX,0x74
JZ 0x00050220
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x14],EAX
TEST CL,CL
JNZ 0x00050220
MOV EDI,dword ptr [ESP + 0x2c]
TEST EDI,EDI
JZ 0x000500d7
MOV ECX,dword ptr [ESP + 0x40]
XOR ESI,ESI
MOV EBP,dword ptr [ESP + 0x40]
TEST ECX,ECX
JNZ 0x0004f2f6
JMP 0x0004f306
SUB ESP,0x8
PUSH ESI
PUSH EBP
CALL 0x00027140
MOV EDI,EAX
POP EAX
POP EDX
PUSH EDI
PUSH dword ptr [ESP + 0x38]
CALL 0x00075300
ADD ESP,0x10
TEST EAX,EAX
JLE 0x0004ff5b
ADD ESI,0x1
SUB ESP,0xc
PUSH EBP
CALL 0x0002b920
ADD ESP,0x10
CMP ESI,EAX
JL 0x0004f2d0
CMP dword ptr [ESP + 0xe0],0x198
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
JZ 0x000501be
SUB ESP,0x4
LEA EDX,[EBX + 0xfffcb150]
PUSH dword ptr [ESP + 0xd8]
PUSH EDX
PUSH EAX
CALL 0x00027240
ADD ESP,0x10
SUB ESP,0x8
LEA EAX,[EBX + 0xfff90c98]
PUSH EAX
MOV EDI,dword ptr [ESP + 0x38]
PUSH EDI
CALL 0x0002b630
POP EAX
POP EDX
MOV EAX,dword ptr [ESP + 0x1c]
PUSH dword ptr [EAX]
PUSH EDI
CALL 0x0002bb10
POP ECX
POP ESI
LEA EAX,[ESP + 0xd4]
PUSH EAX
PUSH EDI
CALL 0x0002a330
ADD ESP,0x10
TEST EAX,EAX
JLE 0x000502bd
SUB ESP,0xc
PUSH dword ptr [ESP + 0x38]
CALL 0x00029de0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x84]
TEST EAX,EAX
JZ 0x0005027e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcbb80]
PUSH dword ptr [ESP + 0x88]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
XOR EAX,EAX
SUB ESP,0x4
MOV EDI,dword ptr [ESP + 0xac]
TEST EDI,EDI
SETZ AL
PUSH EAX
PUSH dword ptr [ESP + 0xf0]
PUSH dword ptr [ESP + 0x90]
CALL 0x00076e70
MOV dword ptr [ESP + 0x4c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0005025d
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcb193]
PUSH EAX
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050861
MOV ESI,EAX
MOV ECX,0x3
LEA EDI,[EBX + 0xfffc1f2e]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
MOV EAX,0x0
CMOVNZ EAX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESP + 0x9c],EAX
MOV ECX,dword ptr [ESP + 0x28]
MOV EAX,0x0
TEST ECX,ECX
CMOVZ EAX,dword ptr [ESP + 0x9c]
XOR ESI,ESI
MOV dword ptr [ESP + 0x9c],EAX
SUB ESP,0x4
PUSH dword ptr [ESP + 0xe0]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESP + 0xb0]
PUSH dword ptr [ESP + 0xe4]
PUSH dword ptr [ESP + 0x58]
CALL 0x0002c1c0
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0005082e
CALL 0x0002a4b0
AND EAX,0xfff
CMP EAX,0x6d
JNZ 0x00050126
CMP ESI,0x3
JZ 0x00050126
CALL 0x00027d00
ADD ESI,0x1
JMP 0x0004f452
MOV EBP,0x1
JMP 0x0004e772
MOV dword ptr [ESP + 0x54],EDX
SUB ESP,0x4
PUSH 0xc5
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x60]
CALL 0x00028c20
ADD ESP,0x10
JMP 0x0004e510
CALL 0x00028b20
MOV dword ptr [ESP + 0x44],EAX
TEST EAX,EAX
JNZ 0x0004ee14
JMP 0x0004e510
MOV EAX,dword ptr [EBX + 0x8020]
JMP 0x0004e86f
CALL 0x00027d00
JMP 0x0004f0c3
SUB ESP,0x4
LEA EDX,[EBX + 0xfffcb106]
PUSH EDX
PUSH dword ptr [ESP + 0xa0]
PUSH EAX
CALL 0x0002aa40
MOV dword ptr [ESP + 0x78],EAX
MOV dword ptr [ESP + 0xec],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050507
MOV EAX,dword ptr [EBX + 0x8020]
JMP 0x0004f08b
SUB ESP,0x4
LEA EDX,[EBX + 0xfffcb0f7]
PUSH EDX
PUSH dword ptr [ESP + 0xa0]
PUSH EAX
CALL 0x0002aa40
MOV dword ptr [ESP + 0x74],EAX
MOV dword ptr [ESP + 0xe8],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050607
MOV EAX,dword ptr [EBX + 0x8020]
JMP 0x0004f074
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2c18]
PUSH dword ptr [ESP + 0x78]
JMP 0x0004e947
SUB ESP,0x4
LEA ESI,[EBX + 0x7b14]
LEA EAX,[EBX + 0xfffc1cee]
MOV EDI,dword ptr [ESP + 0x40]
PUSH EDI
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
MOV dword ptr [ESP],EDI
CALL 0x00075fc0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4c]
MOV dword ptr [EBX + 0x8020],EAX
TEST EDX,EDX
JZ 0x0004e7ee
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb65c]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004e7d1
MOV dword ptr [ESP + 0xb0],0x1000
JMP 0x0004f11f
SUB ESP,0x8
LEA EAX,[EBX + 0xfffc5c11]
JMP 0x0004e947
MOV dword ptr [ESP + 0x54],EAX
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x64],0x0
LEA EAX,[EBX + 0x7b14]
XOR EDI,EDI
XOR EBP,EBP
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
SUB ESP,0xc
PUSH dword ptr [ESP + 0x5c]
CALL 0x0002bb20
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xa4]
TEST EAX,EAX
JNZ 0x0004f8f1
CALL 0x00078b30
SUB ESP,0x4
PUSH EAX
LEA EAX,[EBX + 0xfffc9657]
PUSH EAX
PUSH dword ptr [ESP + 0x58]
CALL 0x00027240
ADD ESP,0x10
TEST EAX,EAX
JNS 0x0004e430
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x3c],EDI
XOR EBP,EBP
XOR EDI,EDI
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
TEST EBP,EBP
JZ 0x0004f932
MOV EAX,dword ptr [ESP + 0x54]
TEST EAX,EAX
JZ 0x000505b5
CALL 0x0002b560
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00050611
MOV EAX,dword ptr [ESP + 0xcc]
SUB ESP,0x4
MOV dword ptr [ESP + 0x30],EAX
LEA EAX,[EBX + 0xfffcb1d3]
PUSH EAX
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000510e1
LEA EDX,[EBX + 0xfffc1f2e]
PUSH ECX
PUSH ECX
PUSH EDX
PUSH EAX
CALL 0x0002bce0
ADD ESP,0x10
TEST EAX,EAX
SETZ byte ptr [ESP + 0x14]
SUB ESP,0x4
LEA ESI,[EBX + 0xfffcb1da]
PUSH ESI
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000510d4
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002b6d0
MOV dword ptr [ESP + 0x4c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000510c7
PUSH EAX
LEA EAX,[EBX + 0xfffd545a]
PUSH EAX
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000510b5
PUSH EAX
PUSH EAX
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002b6d0
MOV dword ptr [ESP + 0x64],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0005073f
PUSH EAX
PUSH EAX
PUSH 0x0
PUSH EDI
CALL 0x0002b360
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f80b
MOV EAX,dword ptr [ESP + 0x80]
TEST EAX,EAX
JZ 0x0005079d
SUB ESP,0xc
MOV EDX,EAX
MOV EAX,EDI
PUSH dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0xc0]
CALL 0x0004dcf0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f80b
PUSH EAX
PUSH EAX
PUSH dword ptr [ESP + 0x34]
PUSH EDI
CALL 0x00029e90
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004fbd6
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcbacc]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
MOV dword ptr [ESP + 0x38],0x1
XOR EBP,EBP
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x54],0x0
JMP 0x0004e56a
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc1f04]
PUSH EAX
LEA EAX,[EBX + 0xfffd4da9]
PUSH EAX
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004ff9d
SUB ESP,0x8
LEA EDX,[ESP + 0xd8]
PUSH EDX
PUSH EAX
CALL 0x000782e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004e510
MOV EAX,dword ptr [ESP + 0xd0]
MOV dword ptr [ESP + 0x8c],EAX
JMP 0x0004e892
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc1f61]
PUSH EAX
LEA EAX,[EBX + 0xfffd4da9]
PUSH EAX
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
MOV dword ptr [ESP + 0x84],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004e89e
CALL 0x00027d00
JMP 0x0004e8e7
CALL 0x00027d00
MOV EAX,dword ptr [EBX + 0x8020]
JMP 0x0004e86f
MOV dword ptr [ESP + 0x3c],EDX
JMP 0x0004eafe
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcb116]
PUSH EAX
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
MOV dword ptr [ESP + 0x88],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004f12b
CALL 0x00027d00
JMP 0x0004f174
SUB ESP,0x4
PUSH dword ptr [ESP + 0xe8]
PUSH 0x72
PUSH dword ptr [ESP + 0x7c]
CALL 0x00075fa0
MOV dword ptr [ESP + 0x64],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f60c
CMP dword ptr [ESP + 0xe4],0x4
JZ 0x0005009d
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESP + 0x60]
CALL 0x0002bee0
ADD ESP,0x10
MOV EDI,EAX
TEST EDI,EDI
JZ 0x000503a4
MOV EBP,dword ptr [ESP + 0x60]
TEST EBP,EBP
JZ 0x00050083
MOV ESI,dword ptr [ESP + 0xcc]
TEST ESI,ESI
JZ 0x000505b7
CALL 0x00029b30
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0004febc
MOV EAX,dword ptr [ESP + 0x74]
TEST EAX,EAX
JZ 0x000505f4
SUB ESP,0x8
PUSH 0x2
PUSH EBP
CALL 0x0002a4f0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004febc
MOV ECX,dword ptr [ESP + 0x48]
TEST ECX,ECX
JZ 0x0004fe9e
SUB ESP,0x8
PUSH dword ptr [ESP + 0x50]
PUSH EBP
CALL 0x0002b470
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004febc
SUB ESP,0xc
PUSH EDI
CALL 0x00028fa0
POP ESI
POP EDX
PUSH EAX
PUSH EBP
CALL 0x0002b9b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004febc
MOV EDX,dword ptr [ESP + 0x6c]
MOV EAX,0x1e
TEST EDX,EDX
CMOVNZ EAX,EDX
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH EBP
CALL 0x00077500
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004febc
SUB ESP,0xc
PUSH EDI
CALL 0x00028fa0
POP ECX
POP ESI
PUSH EAX
PUSH EBP
CALL 0x0002ba40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004febc
SUB ESP,0xc
PUSH EDI
CALL 0x00029b80
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004febc
PUSH EDX
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00029b70
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004febc
PUSH EAX
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH EBP
PUSH EBP
LEA ESI,[ESP + 0x118]
PUSH ESI
CALL 0x00028c30
ADD ESP,0x18
PUSH dword ptr [EBX + 0x8020]
PUSH ESI
CALL 0x000275d0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x74]
TEST EAX,EAX
JZ 0x0004fac0
PUSH EBP
PUSH EAX
PUSH ESI
PUSH dword ptr [EBX + 0x8020]
CALL 0x00027d80
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0005065b
MOV EAX,dword ptr [EBX + 0x801c]
TEST EAX,EAX
JZ 0x0004fae4
LEA EDX,[EBX + 0xfffcb216]
PUSH EBP
PUSH EDX
PUSH ESI
PUSH EAX
CALL 0x00027d80
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000506cb
CMP dword ptr [ESP + 0x10],0x0
JZ 0x0004fb0b
SUB ESP,0xc
PUSH 0x0
PUSH 0x1
PUSH 0x0
PUSH 0x3b8
PUSH EBP
CALL 0x00029ac0
ADD ESP,0x20
SUB EAX,0x1
JNZ 0x000506d5
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x90]
PUSH dword ptr [ESP + 0xd4]
PUSH EBP
CALL 0x0004e150
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000506af
MOV EAX,dword ptr [ESP + 0x80]
TEST EAX,EAX
SETNZ AL
CMP byte ptr [ESP + 0xa4],0x0
JZ 0x0004fecb
TEST AL,AL
JZ 0x0004fecb
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcbb14]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
JMP 0x0004e56a
MOV EBP,dword ptr [ESP + 0x2c]
TEST EBP,EBP
JNZ 0x0004f245
JMP 0x0004f275
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc29dc]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
MOV dword ptr [ESP + 0x38],0x1
JMP 0x0004e54e
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb0d9]
JMP 0x0004e4a9
MOV EAX,dword ptr [ESP + 0x60]
TEST EAX,EAX
JNZ 0x000500b5
SUB ESP,0x8
PUSH 0x0
PUSH 0x0
PUSH EDI
PUSH 0x0
PUSH 0x0
LEA ESI,[ESP + 0x118]
PUSH ESI
CALL 0x00028c30
ADD ESP,0x18
PUSH dword ptr [EBX + 0x8020]
PUSH ESI
CALL 0x000275d0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x78]
TEST EAX,EAX
JZ 0x0004fc2e
PUSH EDI
PUSH EAX
PUSH ESI
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002bb30
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050680
MOV EAX,dword ptr [EBX + 0x801c]
TEST EAX,EAX
JZ 0x0004fc52
LEA EDX,[EBX + 0xfffcb216]
PUSH EDI
PUSH EDX
PUSH ESI
PUSH EAX
CALL 0x0002bb30
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000506a5
PUSH dword ptr [ESP + 0x44]
XOR EBP,EBP
PUSH dword ptr [ESP + 0x90]
PUSH dword ptr [ESP + 0xd4]
PUSH EDI
CALL 0x0004e1b0
ADD ESP,0x10
MOV dword ptr [ESP + 0x54],0x0
TEST EAX,EAX
JZ 0x00050511
MOV ESI,dword ptr [ESP + 0x24]
AND ESI,dword ptr [ESP + 0xac]
JZ 0x0004fce0
MOV EAX,dword ptr [ESP + 0xcc]
MOV dword ptr [ESP + 0x3c],EAX
TEST EAX,EAX
JZ 0x00050582
SUB ESP,0x8
PUSH dword ptr [ESP + 0x44]
PUSH EDI
CALL 0x0002abf0
ADD ESP,0x10
TEST EAX,EAX
JS 0x0005055f
LEA ESI,[EBX + 0x7b14]
MOV EAX,dword ptr [ESI]
JNZ 0x00050547
SUB ESP,0x8
LEA EDX,[EBX + 0xfffd134c]
PUSH EDX
PUSH EAX
CALL 0x00027240
POP ECX
PUSH dword ptr [ESI]
CALL 0x0002c0c0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
XOR EAX,0x1
TEST dword ptr [ESP + 0x1c],EAX
JZ 0x0004fcff
MOV EAX,dword ptr [ESP + 0x18]
OR EAX,dword ptr [ESP + 0x30]
OR EAX,dword ptr [ESP + 0x7c]
JZ 0x0005052a
MOV EAX,dword ptr [ESP + 0x84]
MOV ESI,dword ptr [ESP + 0xe8]
TEST EAX,EAX
JZ 0x0004ff3c
MOV EDX,dword ptr [ESP + 0x90]
TEST EDX,EDX
JZ 0x0004ff3c
SUB ESP,0x8
PUSH EDX
PUSH EAX
CALL 0x0002bce0
ADD ESP,0x10
CMP EAX,0x1
SBB EAX,EAX
AND EAX,0xffffffea
ADD EAX,0x77
SUB ESP,0x4
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x9c]
CALL 0x00075fa0
MOV dword ptr [ESP + 0x4c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050201
MOV EDX,dword ptr [ESP + 0x30]
TEST EDX,EDX
JNZ 0x00050053
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x0004ffa7
MOV EAX,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP + 0xf4]
TEST EAX,EAX
JZ 0x00050333
CALL 0x00073120
PUSH ESI
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x48]
CALL 0x0002ab60
MOV dword ptr [ESP + 0x14],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000506f3
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JNZ 0x0004ffc7
CMP dword ptr [ESP + 0x7c],0x0
JZ 0x0004fff8
SUB ESP,0xc
PUSH EBP
CALL 0x0002a440
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
MOV ESI,dword ptr [EBX + 0x1530]
MOV EDX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [ESI]
TEST EDX,EDX
JZ 0x00050714
PUSH EAX
LEA EAX,[EBX + 0xfffcb301]
PUSH 0x8
PUSH 0x1
PUSH EAX
CALL 0x0002a2a0
POP EAX
PUSH dword ptr [ESP + 0x38]
CALL 0x000284f0
ADD ESP,0x10
CMP EAX,0x6
JZ 0x000503f4
LEA EAX,[EBX + 0xfffcb30a]
PUSH dword ptr [ESI]
PUSH 0x14
PUSH 0x1
PUSH EAX
CALL 0x0002a2a0
ADD ESP,0x10
SUB ESP,0x8
PUSH dword ptr [ESI]
PUSH 0xa
CALL 0x0002a8d0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x60]
OR EAX,dword ptr [ESP + 0x1c]
JNZ 0x0004fff8
CMP dword ptr [ESP + 0xe8],0x4
JZ 0x00050700
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x000503e0
PUSH ESI
PUSH ESI
PUSH EDI
PUSH dword ptr [ESP + 0x48]
CALL 0x000292d0
ADD ESP,0x10
MOV dword ptr [ESP + 0x2c],0x0
TEST EAX,EAX
JNZ 0x0004e57b
PUSH EDX
LEA EAX,[EBX + 0xfffcb31f]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x38],EAX
JMP 0x0004e56a
SUB ESP,0xc
PUSH EBP
CALL 0x00029e80
POP EDX
POP ECX
PUSH EAX
PUSH 0x0
CALL 0x00074630
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004f9f0
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004fb6e
AND AL,byte ptr [ESP + 0xa0]
TEST AL,AL
JZ 0x0004fc7f
MOV ESI,dword ptr [ESP + 0x4]
TEST ESI,ESI
JNZ 0x00050476
SUB ESP,0xc
MOV EAX,EDI
PUSH dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0xc0]
MOV EDX,dword ptr [ESP + 0x90]
CALL 0x0004dcf0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004fc7f
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x14],EAX
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb28b]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x20]
JMP 0x0004fb64
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcb6b8]
PUSH dword ptr [ESP + 0x7c]
JMP 0x0004fba6
MOV EAX,0x77
JMP 0x0004fd3c
CALL 0x00027d00
MOV dword ptr [ESP + 0xb0],0x1001
JMP 0x0004f11f
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc51e6]
PUSH EDI
PUSH EAX
MOV EDI,dword ptr [ESP + 0x20]
PUSH dword ptr [EDI]
CALL 0x00027240
POP EBP
PUSH dword ptr [EDI]
CALL 0x0002c0c0
ADD ESP,0x10
MOV dword ptr [ESP + 0x38],0x1
XOR EDI,EDI
XOR EBP,EBP
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x54],0x0
JMP 0x0004e56a
CALL 0x00027d00
JMP 0x0004e892
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x0005037b
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x60]
TEST EAX,EAX
JZ 0x000502e6
MOV dword ptr [ESP + 0x4],EAX
CALL 0x00073120
SUB ESP,0xc
PUSH EBP
MOV ESI,EAX
CALL 0x0002b000
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfffcb282]
PUSH EAX
PUSH dword ptr [ESP + 0x58]
CALL 0x00073b90
ADD ESP,0x20
MOV ESI,dword ptr [ESP + 0x7c]
TEST ESI,ESI
JNZ 0x0004fdbe
MOV EAX,dword ptr [ESP + 0x1c]
XOR EAX,0x1
TEST dword ptr [ESP + 0x60],EAX
JZ 0x0005031e
MOV dword ptr [ESP + 0x2c],0x0
TEST EBP,EBP
JZ 0x0004e57b
CMP dword ptr [ESP + 0xe8],0x4
JZ 0x000506df
PUSH EAX
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x48]
CALL 0x000285d0
ADD ESP,0x10
MOV dword ptr [ESP + 0x2c],0x0
TEST EAX,EAX
JNZ 0x0004e57b
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcbb5c]
JMP 0x0004fe7c
SUB ESP,0xc
PUSH EDI
CALL 0x00029b80
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050764
SUB ESP,0x8
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x48]
CALL 0x00029d40
ADD ESP,0x10
JMP 0x0004fd68
MOV ECX,dword ptr [ESP + 0x80]
TEST ECX,ECX
SETNZ AL
XOR EBP,EBP
AND AL,byte ptr [ESP + 0xa0]
JMP 0x0004fed2
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [ESP + 0x60]
CALL 0x00028d90
ADD ESP,0x10
MOV EDI,EAX
JMP 0x0004f978
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x80],0x0
JMP 0x0004f99b
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x14],EAX
LEA EDX,[ESP + 0xe0]
SUB ESP,0x8
MOV ECX,ESI
PUSH dword ptr [ESP + 0x60]
LEA EAX,[ESP + 0xe0]
PUSH EAX
XOR EAX,EAX
CALL 0x0004d840
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004f2bc
XOR EDI,EDI
XOR EBP,EBP
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x38],0x1
JMP 0x0004e56a
MOV dword ptr [ESP + 0x38],0x1
XOR EDI,EDI
XOR EBP,EBP
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x54],0x0
JMP 0x0004e56a
CMP EDX,0x4000
JLE 0x000502d7
TEST CL,CL
JZ 0x000502d7
LEA EAX,[EBX + 0xfffcb734]
PUSH EDX
PUSH 0x4000
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
MOV EAX,dword ptr [ESP + 0xf0]
ADD ESP,0x10
CMP EAX,0x74
JNZ 0x0004f2b0
MOV EAX,dword ptr [ESP + 0xf0]
CMP EAX,0x2710
JLE 0x0004f2b0
PUSH EAX
LEA EAX,[EBX + 0xfffcb7c8]
PUSH 0x2710
PUSH EAX
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004f2b0
SUB ESP,0x8
LEA EDX,[EBX + 0xfffcb132]
PUSH EDX
PUSH EAX
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004f337
XOR EDI,EDI
XOR EBP,EBP
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb6e4]
LEA EDI,[EBX + 0x7b14]
PUSH EAX
MOV dword ptr [ESP + 0x20],EDI
PUSH dword ptr [EDI]
CALL 0x00027240
LEA EAX,[EBX + 0xfffcb708]
PUSH dword ptr [ESP + 0x100]
PUSH 0x200
PUSH EAX
PUSH dword ptr [EDI]
CALL 0x00027240
ADD ESP,0x20
JMP 0x0004ff7c
XOR EDI,EDI
XOR EBP,EBP
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x38],0x1
JMP 0x0004e56a
LEA EAX,[EBX + 0xfffcb183]
PUSH EBP
PUSH EAX
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
MOV dword ptr [ESP + 0x94],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004f392
CALL 0x00027d00
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb85c]
JMP 0x0004f3a2
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb16d]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
CALL 0x000283e0
JMP 0x0004ff79
LEA EDI,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x14],EDI
JMP 0x00050183
CALL 0x00073120
SUB ESP,0xc
PUSH EDI
MOV ESI,EAX
CALL 0x00028fa0
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfffcb282]
PUSH EAX
PUSH dword ptr [ESP + 0x58]
CALL 0x00073b90
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0x7c]
TEST ECX,ECX
JNZ 0x00050366
CMP dword ptr [ESP + 0x1c],0x0
JZ 0x0004fe3b
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x2c],0x0
JMP 0x0004e57b
CALL 0x00073120
PUSH ESI
PUSH EAX
PUSH EDI
PUSH dword ptr [ESP + 0x48]
CALL 0x0002a4a0
MOV dword ptr [ESP + 0x14],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050620
MOV ESI,dword ptr [ESP + 0x18]
TEST ESI,ESI
JNZ 0x000502e6
CMP dword ptr [ESP + 0x7c],0x0
JZ 0x0004fe2d
SUB ESP,0xc
PUSH EDI
CALL 0x00029b80
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
JMP 0x0004fdce
MOV EAX,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x4],0x1
TEST EAX,EAX
JZ 0x0004fe2d
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x60]
TEST EAX,EAX
JZ 0x00050366
MOV dword ptr [ESP + 0x4],EAX
JMP 0x0004fdbe
PUSH EAX
XOR EBP,EBP
PUSH EAX
LEA EAX,[EBX + 0xfffcb1b6]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x38],0x1
JMP 0x0004e56a
PUSH ECX
PUSH ECX
PUSH EDI
PUSH dword ptr [ESP + 0x48]
CALL 0x0002c100
ADD ESP,0x10
JMP 0x0004fe64
SUB ESP,0xc
PUSH dword ptr [ESP + 0x38]
CALL 0x00027490
PUSH 0x0
PUSH 0x0
LEA EDX,[ESP + 0x114]
PUSH EDX
PUSH EAX
CALL 0x0002bf60
ADD ESP,0x18
PUSH dword ptr [ESP + 0x104]
PUSH dword ptr [ESP + 0x48]
CALL 0x0002ac70
ADD ESP,0x10
JMP 0x0004fe1e
LEA EAX,[EBX + 0x7b14]
MOV ECX,EDI
XOR EBP,EBP
XOR EDI,EDI
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x50],ECX
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb261]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
CALL 0x00073120
MOV dword ptr [ESP],EDI
MOV ESI,EAX
CALL 0x00028fa0
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfffcb27e]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX]
CALL 0x00073b90
ADD ESP,0x14
MOV EAX,EDI
PUSH dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0xc0]
MOV EDX,dword ptr [ESP + 0x90]
CALL 0x0004dcf0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004ff17
CALL 0x00073120
SUB ESP,0xc
PUSH EDI
MOV ESI,EAX
CALL 0x00028fa0
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfffcb2a9]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX]
CALL 0x00073b90
ADD ESP,0x20
JMP 0x0004fc7f
CALL 0x00027d00
JMP 0x0004f533
LEA EAX,[EBX + 0x7b14]
SUB ESP,0xc
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x0002c0c0
JMP 0x0004f829
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
JMP 0x0004e57b
SUB ESP,0x8
LEA EDX,[EBX + 0xfffc8964]
PUSH EDX
PUSH EAX
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004fce0
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x38],ESI
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
SUB ESP,0xc
PUSH EDI
CALL 0x00029b80
MOV dword ptr [ESP + 0x4c],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004fc9f
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x38],ESI
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
XOR EDI,EDI
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcb880]
XOR EBP,EBP
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
MOV dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x3c],0x0
JMP 0x0004e56a
MOV ESI,dword ptr [EBX + 0x801c]
TEST ESI,ESI
JNZ 0x0004f9b6
JMP 0x0004f9cc
CALL 0x00027d00
JMP 0x0004f56b
XOR EBP,EBP
MOV dword ptr [ESP + 0x2c],0x0
JMP 0x000501da
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcbb38]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
CALL 0x0002c0c0
ADD ESP,0x10
MOV dword ptr [ESP + 0x2c],0x0
JMP 0x0004e57b
PUSH EAX
LEA EAX,[EBX + 0xfffc2c18]
PUSH dword ptr [ESP + 0x78]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004fb6e
PUSH EAX
LEA EAX,[EBX + 0xfffc2c18]
PUSH dword ptr [ESP + 0x7c]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004f82c
LEA EAX,[EBX + 0xfffcb690]
PUSH EBP
PUSH EBP
JMP 0x0005068b
LEA EAX,[EBX + 0x7b14]
SUB ESP,0xc
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x0002c0c0
ADD ESP,0x10
JMP 0x0004fb6e
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcb690]
JMP 0x00050666
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcbaf4]
JMP 0x00050666
PUSH EAX
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x48]
CALL 0x0002ad50
ADD ESP,0x10
JMP 0x00050036
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcb2d0]
JMP 0x00050628
PUSH EAX
PUSH EAX
PUSH EDI
PUSH dword ptr [ESP + 0x48]
CALL 0x000283d0
ADD ESP,0x10
JMP 0x0004fe64
PUSH EAX
LEA EAX,[EBX + 0xfffcb2ec]
PUSH 0x14
PUSH 0x1
PUSH EAX
CALL 0x0002a2a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x38],EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004e56a
PUSH EAX
LEA EAX,[EBX + 0xfffcb1ed]
PUSH dword ptr [ESP + 0x2c]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
ADD ESP,0x10
JMP 0x0004f815
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcb2b6]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV ESI,EAX
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
POP EAX
PUSH dword ptr [ESI]
CALL 0x0002c0c0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x38],EAX
JMP 0x0004e56a
CALL 0x0007d010
CMP byte ptr [ESP + 0x14],0x0
JZ 0x0005096d
SUB ESP,0xc
XOR EBP,EBP
PUSH EDI
CALL 0x00028fa0
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x48]
CALL 0x0002b920
ADD ESP,0x10
CMP EBP,EAX
JGE 0x000508e6
SUB ESP,0x8
PUSH EBP
PUSH dword ptr [ESP + 0x48]
CALL 0x00027140
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EAX + 0x4]
MOVZX EDX,byte ptr [EAX]
TEST DL,DL
JZ 0x000508e2
MOV ECX,EDX
AND ECX,0xfffffffd
CMP CL,0x2c
JZ 0x000508de
CMP DL,0x3a
JZ 0x000508de
MOV EDX,EAX
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0005081e
MOV EAX,ECX
AND EAX,0xfffffffd
CMP AL,0x2c
JZ 0x00050895
CMP CL,0x3a
JZ 0x00050895
ADD EDX,0x1
MOVZX ECX,byte ptr [EDX]
TEST CL,CL
JNZ 0x00050810
MOV EAX,dword ptr [ESP + 0x14]
JMP 0x000508a2
SUB ESP,0xc
PUSH dword ptr [ESP + 0x48]
CALL 0x0002b860
POP EAX
LEA EAX,[EBX + 0xfffcb1af]
POP EDX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
CALL 0x00027240
MOV EAX,dword ptr [ESP + 0xdc]
MOV dword ptr [ESP + 0x64],EAX
ADD ESP,0x10
JMP 0x0004f6c0
CALL 0x00027d00
LEA EAX,[EBX + 0xfffcb1a3]
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004f40c
CALL 0x00027d00
JMP 0x0004f436
MOV EAX,dword ptr [ESP + 0x14]
CMP byte ptr [EDX + 0x1],0x0
JZ 0x000508a2
LEA EAX,[EDX + 0x1]
XOR EDX,EDX
CMP byte ptr [EAX],0x2b
JNZ 0x000508af
ADD EAX,0x1
OR EDX,0xffffffff
SUB ESP,0x4
PUSH EDX
PUSH -0x1
PUSH -0x1
PUSH dword ptr [ESI + 0x8]
PUSH dword ptr [ESP + 0xc4]
PUSH EAX
PUSH dword ptr [ESP + 0x44]
CALL 0x0002a560
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0004f80b
ADD EBP,0x1
JMP 0x000507ba
MOV EDX,EAX
JMP 0x00050899
XOR EDX,EDX
JMP 0x000508af
SUB ESP,0xc
PUSH dword ptr [ESP + 0x34]
CALL 0x0002a8b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000510a8
CMP dword ptr [ESP + 0x60],0x0
JNZ 0x00051084
XOR ESI,ESI
MOV EBP,dword ptr [ESP + 0x54]
JMP 0x00050941
PUSH EAX
PUSH EAX
PUSH ESI
PUSH EBP
CALL 0x00027140
MOV dword ptr [ESP],0xffffffff
PUSH dword ptr [EAX + 0x8]
PUSH dword ptr [ESP + 0xc4]
PUSH dword ptr [EAX + 0x4]
PUSH EDI
CALL 0x00029f00
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0004f80b
ADD ESI,0x1
SUB ESP,0xc
PUSH EBP
CALL 0x0002b920
ADD ESP,0x10
CMP ESI,EAX
JL 0x00050910
PUSH EAX
PUSH EAX
PUSH dword ptr [ESP + 0x34]
PUSH EDI
CALL 0x00029e90
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004fbe2
JMP 0x0004f80b
SUB ESP,0xc
PUSH EDI
CALL 0x00028fa0
MOV dword ptr [ESP + 0xa8],EAX
ADD ESP,0x10
CMP dword ptr [EBX + 0x8018],0x0
JZ 0x00051006
SUB ESP,0xc
PUSH dword ptr [ESP + 0x48]
CALL 0x0002b920
ADD ESP,0x10
MOV dword ptr [ESP + 0x70],0xffffffff
TEST EAX,EAX
JZ 0x00050ff9
LEA EAX,[EBX + 0xfffcb209]
MOV dword ptr [ESP + 0x14],EDI
MOV dword ptr [ESP + 0xa8],EAX
LEA EAX,[EBX + 0xfffcb20e]
MOV dword ptr [ESP + 0xb4],EAX
ADD dword ptr [ESP + 0x70],0x1
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x7c]
MOV ESI,dword ptr [ESP + 0x48]
PUSH ESI
CALL 0x0002b920
ADD ESP,0x10
CMP EDI,EAX
JGE 0x00050a8e
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x00027140
MOV EDX,dword ptr [ESP + 0xb8]
MOV ESI,dword ptr [EAX + 0x4]
MOV EDI,EAX
MOV EAX,ESI
CALL 0x0004d7e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000509ca
MOV EDX,dword ptr [ESP + 0xb4]
MOV EAX,ESI
CALL 0x0004d7e0
TEST EAX,EAX
JZ 0x000509ca
LEA EDX,[EBX + 0xfffd53ce]
MOV EAX,ESI
CALL 0x0004d7e0
TEST EAX,EAX
JZ 0x000509ca
LEA EDX,[EBX + 0xfffd71fd]
MOV EAX,ESI
CALL 0x0004d7e0
TEST EAX,EAX
JZ 0x000509ca
MOVZX EAX,byte ptr [ESI]
TEST AL,AL
JZ 0x00050f9e
MOV EDX,EAX
AND EDX,0xfffffffd
CMP DL,0x2c
JZ 0x00050d90
CMP AL,0x3a
JZ 0x00050d90
MOV EAX,ESI
JMP 0x00050a7f
MOV ECX,EDX
AND ECX,0xfffffffd
CMP CL,0x2c
JZ 0x00050d92
CMP DL,0x3a
JZ 0x00050d92
ADD EAX,0x1
MOVZX EDX,byte ptr [EAX]
TEST DL,DL
JNZ 0x00050a68
JMP 0x00050d9b
MOV EDI,dword ptr [ESP + 0x14]
SUB ESP,0xc
PUSH dword ptr [ESP + 0xa4]
CALL 0x0002a8b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000510a8
CMP dword ptr [ESP + 0x60],0x0
JNZ 0x00051084
MOV EAX,dword ptr [ESP + 0x54]
TEST EAX,EAX
JZ 0x00050951
SUB ESP,0xc
PUSH EAX
CALL 0x0002b920
ADD ESP,0x10
TEST EAX,EAX
JLE 0x00050ae0
CMP dword ptr [EBX + 0x8018],0x0
JZ 0x00050cfa
LEA EAX,[EBX + 0xfffd6b39]
MOV dword ptr [ESP + 0x14],0xffffffff
LEA EBP,[ESP + 0x118]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x4],EDI
ADD dword ptr [ESP + 0x14],0x1
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [ESP + 0x60]
PUSH ESI
CALL 0x0002b920
ADD ESP,0x10
CMP EDI,EAX
JGE 0x00050d43
PUSH EAX
PUSH EAX
PUSH EDI
PUSH ESI
CALL 0x00027140
MOV ESI,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP],ESI
CALL 0x00029570
MOV dword ptr [ESP + 0x4c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050afd
PUSH EAX
MOV ECX,ESI
MOV EDX,0x64
PUSH EAX
LEA EAX,[EBX + 0xfffd53ce]
PUSH dword ptr [ESP + 0x18]
PUSH EAX
MOV EAX,EBP
CALL 0x0004de90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050d30
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00050d80
PUSH EAX
MOV ECX,ESI
MOV EDX,0x64
PUSH EAX
LEA EAX,[EBX + 0xfffd71fd]
PUSH dword ptr [ESP + 0x18]
PUSH EAX
MOV EAX,EBP
CALL 0x0004de90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050d30
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
MOV dword ptr [ESP + 0x7c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050d76
PUSH EAX
MOV ECX,ESI
MOV EDX,0x64
PUSH EAX
LEA EAX,[EBX + 0xfffcb209]
PUSH dword ptr [ESP + 0x18]
PUSH EAX
MOV EAX,EBP
CALL 0x0004de90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050d30
LEA EAX,[ESP + 0xf8]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [EBX + 0x8020]
CALL 0x00028dc0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050d61
LEA EAX,[EBX + 0xfffcb20e]
PUSH ECX
MOV EDX,0x64
PUSH ECX
MOV ECX,ESI
PUSH dword ptr [ESP + 0x18]
PUSH EAX
MOV EAX,EBP
CALL 0x0004de90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050d30
LEA EAX,[ESP + 0xfc]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [EBX + 0x8020]
CALL 0x00028dc0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050d4c
MOV EAX,dword ptr [ESP + 0x20]
LEA EDX,[EBX + 0xfffcb227]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0x8]
PUSH EDX
LEA EDX,[EBX + 0xfffcb239]
PUSH EDX
MOV EDX,EDI
LEA ESI,[ESP + 0x190]
PUSH ESI
PUSH dword ptr [ESP + 0x114]
PUSH dword ptr [ESP + 0x114]
MOV ECX,dword ptr [ESP + 0x8c]
CALL 0x0004df30
ADD ESP,0x20
CMP EAX,0x1
JBE 0x00050d28
SUB ESP,0xc
PUSH -0x1
PUSH ESI
PUSH dword ptr [ESP + 0xc4]
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x20]
CALL 0x00028870
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x00050afd
MOV EDI,dword ptr [ESP + 0x4]
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcb249]
PUSH EAX
LEA EAX,[EBX + 0x7b14]
MOV ESI,EAX
MOV dword ptr [ESP + 0x20],EAX
PUSH dword ptr [EAX]
CALL 0x00027240
POP EDX
PUSH dword ptr [ESI]
CALL 0x0002c0c0
ADD ESP,0x10
JMP 0x0004f815
LEA ESI,[EBX + 0x7b14]
LEA EAX,[EBX + 0xfffcba4c]
PUSH EDX
PUSH EDX
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
LEA EAX,[EBX + 0xfffcba7c]
POP ECX
POP EBP
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
ADD ESP,0x10
JMP 0x00050ae0
TEST EAX,EAX
JNZ 0x00050afd
LEA EAX,[EBX + 0x7b14]
MOV EDI,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004f815
MOV EDI,dword ptr [ESP + 0x4]
JMP 0x00050951
CALL 0x00027d00
MOV dword ptr [ESP + 0xfc],0xffffffff
JMP 0x00050c5d
CALL 0x00027d00
MOV dword ptr [ESP + 0xf8],0xffffffff
JMP 0x00050c14
CALL 0x00027d00
JMP 0x00050bcb
CALL 0x00027d00
LEA EDI,[EBX + 0xfffc8c92]
JMP 0x00050b85
MOV EAX,ESI
CMP byte ptr [EAX + 0x1],0x0
JZ 0x00050d9b
LEA ESI,[EAX + 0x1]
MOV dword ptr [ESP + 0x88],0x0
CMP byte ptr [ESI],0x2b
JNZ 0x00050db9
MOV dword ptr [ESP + 0x88],0xffffffff
ADD ESI,0x1
SUB ESP,0xc
PUSH ESI
CALL 0x00029570
MOV dword ptr [ESP + 0xc8],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000509ca
LEA ESI,[ESP + 0x118]
MOV ECX,dword ptr [EDI + 0x4]
PUSH EAX
MOV EDX,0x64
PUSH EAX
LEA EAX,[EBX + 0xfffd6b39]
MOV dword ptr [ESP + 0x9c],EAX
PUSH EAX
LEA EAX,[EBX + 0xfffd53ce]
PUSH EAX
MOV EAX,ESI
CALL 0x0004de90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050f81
PUSH EDX
PUSH ESI
PUSH EBP
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
MOV dword ptr [ESP + 0xac],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050fe2
MOV ECX,dword ptr [EDI + 0x4]
PUSH EAX
MOV EDX,0x64
PUSH EAX
LEA EAX,[EBX + 0xfffd71fd]
PUSH dword ptr [ESP + 0x9c]
PUSH EAX
MOV EAX,ESI
CALL 0x0004de90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050f81
PUSH EAX
PUSH ESI
PUSH EBP
PUSH dword ptr [EBX + 0x8020]
CALL 0x0002aa40
MOV dword ptr [ESP + 0xcc],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050fd8
MOV ECX,dword ptr [EDI + 0x4]
PUSH EAX
MOV EDX,0x64
PUSH EAX
MOV EAX,ESI
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0xb4]
CALL 0x0004de90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050f81
LEA EAX,[ESP + 0xf8]
PUSH EAX
PUSH ESI
PUSH EBP
PUSH dword ptr [EBX + 0x8020]
CALL 0x00028dc0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050fc3
MOV ECX,dword ptr [EDI + 0x4]
PUSH EAX
MOV EDX,0x64
PUSH EAX
MOV EAX,ESI
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0xc0]
CALL 0x0004de90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050f81
LEA EAX,[ESP + 0xfc]
PUSH EAX
PUSH ESI
PUSH EBP
PUSH dword ptr [EBX + 0x8020]
CALL 0x00028dc0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00050fae
SUB ESP,0xc
LEA EDX,[EBX + 0xfffcb213]
MOV EAX,dword ptr [EDI + 0x8]
PUSH EDX
LEA EDX,[EBX + 0xfffcb21e]
PUSH EDX
LEA ESI,[ESP + 0x190]
PUSH ESI
PUSH dword ptr [ESP + 0x114]
PUSH dword ptr [ESP + 0x114]
MOV ECX,dword ptr [ESP + 0xdc]
MOV EDX,dword ptr [ESP + 0xbc]
CALL 0x0004df30
ADD ESP,0x20
CMP EAX,0x1
JBE 0x00050f94
PUSH EAX
PUSH dword ptr [ESP + 0x8c]
PUSH -0x1
PUSH -0x1
PUSH ESI
PUSH dword ptr [ESP + 0xc4]
PUSH dword ptr [ESP + 0xd0]
PUSH dword ptr [ESP + 0xb4]
CALL 0x00028d20
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x000509ca
LEA EAX,[EBX + 0x7b14]
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004f815
TEST EAX,EAX
JNZ 0x000509ca
JMP 0x00050f81
MOV dword ptr [ESP + 0x88],0x0
JMP 0x00050db9
CALL 0x00027d00
MOV dword ptr [ESP + 0xfc],0xffffffff
JMP 0x00050f0a
CALL 0x00027d00
MOV dword ptr [ESP + 0xf8],0xffffffff
JMP 0x00050ec0
CALL 0x00027d00
JMP 0x00050e76
CALL 0x00027d00
LEA EAX,[EBX + 0xfffc8c92]
MOV dword ptr [ESP + 0x9c],EAX
JMP 0x00050e2c
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcbaa8]
JMP 0x0005074a
LEA ESI,[EBX + 0x7b14]
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcb8f0]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
POP EAX
LEA EAX,[EBX + 0xfffcb93c]
POP EDX
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
POP ECX
POP EAX
LEA EAX,[EBX + 0xfffcb95c]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
POP EAX
LEA EAX,[EBX + 0xfffcb9ac]
POP EDX
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
POP ECX
POP EAX
LEA EAX,[EBX + 0xfffcb9e8]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
POP EAX
LEA EAX,[EBX + 0xfffcba18]
POP EDX
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
POP ECX
POP EAX
LEA EAX,[EBX + 0xfffcb1af]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
ADD ESP,0x10
JMP 0x0005098d
PUSH EDX
PUSH EDX
PUSH dword ptr [ESP + 0x34]
PUSH EDI
CALL 0x00029e90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004f80b
MOV dword ptr [ESP + 0x54],0x0
JMP 0x0004f99b
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcb8c4]
JMP 0x0005074a
CALL 0x00027d00
MOV dword ptr [ESP + 0x54],0x0
JMP 0x0004f7b6
LEA EAX,[EBX + 0xfffcb1ed]
PUSH EDX
PUSH EBP
JMP 0x0005074a
LEA EAX,[EBX + 0xfffcb8a4]
PUSH ECX
PUSH ESI
JMP 0x0005074a
CALL 0x00027d00
MOV byte ptr [ESP + 0x14],0x0
JMP 0x0004f726
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nuint FUN_0004e210(undefined4 param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  bool bVar7;\n  EVP_CIPHER *pEVar8;\n  char **ppcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  BIO *in;\n  ushort **ppuVar13;\n  char *ptr;\n  BIO *pBVar14;\n  ASN1_INTEGER *pAVar15;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar16;\n  byte *pbVar17;\n  int iVar18;\n  ulong uVar19;\n  undefined **ppuVar20;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar21;\n  ulong uVar22;\n  X509_NAME *pXVar23;\n  EVP_PKEY *pEVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  uint uVar27;\n  stack_st_CONF_VALUE *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar28;\n  int set;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 uVar33;\n  char *pcVar34;\n  undefined4 uVar35;\n  stack_st_CONF_VALUE *psVar36;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  int local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  undefined4 local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  int local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  int local_51c;\n  char *local_518;\n  int local_514;\n  int local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  int local_4ec;\n  BIO *local_4d0;\n  int local_4cc;\n  void *local_4c8;\n  char *local_4c4;\n  char *local_4c0;\n  int local_4bc;\n  undefined *local_4b8;\n  undefined *local_4b4;\n  undefined *local_4b0;\n  long local_4ac;\n  ulong local_4a8;\n  long local_4a4;\n  X509V3_CTX local_4a0;\n  stack_st_CONF_VALUE local_484 [5];\n  uchar local_420 [1024];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar32 = 0;\n  bVar31 = false;\n  uStack_14 = 0x4e220;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4d0 = (BIO *)0x0;\n  local_4cc = 0;\n  local_560 = (BIO *)DAT_000c4598;\n  local_4c8 = (void *)0x0;\n  local_4c4 = (char *)0x0;\n  local_4c0 = (char *)0x0;\n  local_4bc = -1;\n  local_4b8 = (undefined *)0x8005;\n  local_4b4 = (undefined *)0x8005;\n  local_4b0 = (undefined *)0x8005;\n  local_4ac = -1;\n  local_4a8 = 0;\n  pEVar8 = EVP_des_ede3_cbc();\n  ppuVar20 = &PTR_DAT_000bb480;\n  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);\n  pcVar34 = "../apps/req.c";\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = 0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = 0;\n  local_50c = (char *)0x0;\n  local_52c = 0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = 0;\n  local_54c = 0;\n  local_558 = 0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = 0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar10 = FUN_00078780();\n  if (iVar10 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar10 = FUN_00079110();\n  if (iVar10 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }\n  pBVar14 = local_4d0;\n  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);\n  bVar29 = bVar31;\n  if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }\n  pcVar11 = (char *)&local_4c4;\n  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);\n  if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }\n  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;\n  if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }\n  iVar10 = FUN_00073330(DAT_000c4a98);\n  if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar11 = pcVar11 + 1;\n  cVar1 = *pcVar11;\n  if (cVar1 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);\n  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;\n  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);\n  if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);\n  if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }\n  *pcVar11 = '\0';\n  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);\n  if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar14;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";\n  pcVar11 = (char *)ppcVar9;\nLAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }\n  if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);\n  ERR_print_errors(DAT_000c458c);\nLAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);\nLAB_0004e57b:\n  NCONF_free(DAT_000c4a98);\n  NCONF_free(DAT_000c4a94);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)local_4d0);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free(local_544);\n  uVar35 = 0x3cc;\n  CRYPTO_free(local_4c8);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  FUN_00074230(local_540,pcVar34,uVar35);\n  if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }\n  if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return local_564;\n}\n\n" comment comment (function_definition "uint FUN_0004e210(undefined4 param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  bool bVar7;\n  EVP_CIPHER *pEVar8;\n  char **ppcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  BIO *in;\n  ushort **ppuVar13;\n  char *ptr;\n  BIO *pBVar14;\n  ASN1_INTEGER *pAVar15;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar16;\n  byte *pbVar17;\n  int iVar18;\n  ulong uVar19;\n  undefined **ppuVar20;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar21;\n  ulong uVar22;\n  X509_NAME *pXVar23;\n  EVP_PKEY *pEVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  uint uVar27;\n  stack_st_CONF_VALUE *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar28;\n  int set;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 uVar33;\n  char *pcVar34;\n  undefined4 uVar35;\n  stack_st_CONF_VALUE *psVar36;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  int local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  undefined4 local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  int local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  int local_51c;\n  char *local_518;\n  int local_514;\n  int local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  int local_4ec;\n  BIO *local_4d0;\n  int local_4cc;\n  void *local_4c8;\n  char *local_4c4;\n  char *local_4c0;\n  int local_4bc;\n  undefined *local_4b8;\n  undefined *local_4b4;\n  undefined *local_4b0;\n  long local_4ac;\n  ulong local_4a8;\n  long local_4a4;\n  X509V3_CTX local_4a0;\n  stack_st_CONF_VALUE local_484 [5];\n  uchar local_420 [1024];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar32 = 0;\n  bVar31 = false;\n  uStack_14 = 0x4e220;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4d0 = (BIO *)0x0;\n  local_4cc = 0;\n  local_560 = (BIO *)DAT_000c4598;\n  local_4c8 = (void *)0x0;\n  local_4c4 = (char *)0x0;\n  local_4c0 = (char *)0x0;\n  local_4bc = -1;\n  local_4b8 = (undefined *)0x8005;\n  local_4b4 = (undefined *)0x8005;\n  local_4b0 = (undefined *)0x8005;\n  local_4ac = -1;\n  local_4a8 = 0;\n  pEVar8 = EVP_des_ede3_cbc();\n  ppuVar20 = &PTR_DAT_000bb480;\n  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);\n  pcVar34 = "../apps/req.c";\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = 0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = 0;\n  local_50c = (char *)0x0;\n  local_52c = 0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = 0;\n  local_54c = 0;\n  local_558 = 0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = 0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar10 = FUN_00078780();\n  if (iVar10 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar10 = FUN_00079110();\n  if (iVar10 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }\n  pBVar14 = local_4d0;\n  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);\n  bVar29 = bVar31;\n  if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }\n  pcVar11 = (char *)&local_4c4;\n  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);\n  if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }\n  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;\n  if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }\n  iVar10 = FUN_00073330(DAT_000c4a98);\n  if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar11 = pcVar11 + 1;\n  cVar1 = *pcVar11;\n  if (cVar1 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);\n  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;\n  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);\n  if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);\n  if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }\n  *pcVar11 = '\0';\n  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);\n  if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar14;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";\n  pcVar11 = (char *)ppcVar9;\nLAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }\n  if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);\n  ERR_print_errors(DAT_000c458c);\nLAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);\nLAB_0004e57b:\n  NCONF_free(DAT_000c4a98);\n  NCONF_free(DAT_000c4a94);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)local_4d0);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free(local_544);\n  uVar35 = 0x3cc;\n  CRYPTO_free(local_4c8);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  FUN_00074230(local_540,pcVar34,uVar35);\n  if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }\n  if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return local_564;\n}" type_identifier (function_declarator "FUN_0004e210(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  bool bVar7;\n  EVP_CIPHER *pEVar8;\n  char **ppcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  BIO *in;\n  ushort **ppuVar13;\n  char *ptr;\n  BIO *pBVar14;\n  ASN1_INTEGER *pAVar15;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar16;\n  byte *pbVar17;\n  int iVar18;\n  ulong uVar19;\n  undefined **ppuVar20;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar21;\n  ulong uVar22;\n  X509_NAME *pXVar23;\n  EVP_PKEY *pEVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  uint uVar27;\n  stack_st_CONF_VALUE *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar28;\n  int set;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 uVar33;\n  char *pcVar34;\n  undefined4 uVar35;\n  stack_st_CONF_VALUE *psVar36;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  int local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  undefined4 local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  int local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  int local_51c;\n  char *local_518;\n  int local_514;\n  int local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  int local_4ec;\n  BIO *local_4d0;\n  int local_4cc;\n  void *local_4c8;\n  char *local_4c4;\n  char *local_4c0;\n  int local_4bc;\n  undefined *local_4b8;\n  undefined *local_4b4;\n  undefined *local_4b0;\n  long local_4ac;\n  ulong local_4a8;\n  long local_4a4;\n  X509V3_CTX local_4a0;\n  stack_st_CONF_VALUE local_484 [5];\n  uchar local_420 [1024];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar32 = 0;\n  bVar31 = false;\n  uStack_14 = 0x4e220;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4d0 = (BIO *)0x0;\n  local_4cc = 0;\n  local_560 = (BIO *)DAT_000c4598;\n  local_4c8 = (void *)0x0;\n  local_4c4 = (char *)0x0;\n  local_4c0 = (char *)0x0;\n  local_4bc = -1;\n  local_4b8 = (undefined *)0x8005;\n  local_4b4 = (undefined *)0x8005;\n  local_4b0 = (undefined *)0x8005;\n  local_4ac = -1;\n  local_4a8 = 0;\n  pEVar8 = EVP_des_ede3_cbc();\n  ppuVar20 = &PTR_DAT_000bb480;\n  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);\n  pcVar34 = "../apps/req.c";\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = 0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = 0;\n  local_50c = (char *)0x0;\n  local_52c = 0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = 0;\n  local_54c = 0;\n  local_558 = 0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = 0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar10 = FUN_00078780();\n  if (iVar10 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar10 = FUN_00079110();\n  if (iVar10 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }\n  pBVar14 = local_4d0;\n  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);\n  bVar29 = bVar31;\n  if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }\n  pcVar11 = (char *)&local_4c4;\n  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);\n  if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }\n  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;\n  if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }\n  iVar10 = FUN_00073330(DAT_000c4a98);\n  if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar11 = pcVar11 + 1;\n  cVar1 = *pcVar11;\n  if (cVar1 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);\n  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;\n  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);\n  if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);\n  if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }\n  *pcVar11 = '\0';\n  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);\n  if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar14;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";\n  pcVar11 = (char *)ppcVar9;\nLAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }\n  if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);\n  ERR_print_errors(DAT_000c458c);\nLAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);\nLAB_0004e57b:\n  NCONF_free(DAT_000c4a98);\n  NCONF_free(DAT_000c4a94);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)local_4d0);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free(local_544);\n  uVar35 = 0x3cc;\n  CRYPTO_free(local_4c8);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  FUN_00074230(local_540,pcVar34,uVar35);\n  if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }\n  if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return local_564;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "EVP_CIPHER *pEVar8;" type_identifier (pointer_declarator "*pEVar8" * identifier) ;) (declaration "char **ppcVar9;" primitive_type (pointer_declarator "**ppcVar9" * (pointer_declarator "*ppcVar9" * identifier)) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "BIO *in;" type_identifier (pointer_declarator "*in" * identifier) ;) (declaration "ushort **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "char *ptr;" primitive_type (pointer_declarator "*ptr" * identifier) ;) (declaration "BIO *pBVar14;" type_identifier (pointer_declarator "*pBVar14" * identifier) ;) (declaration "ASN1_INTEGER *pAVar15;" type_identifier (pointer_declarator "*pAVar15" * identifier) ;) (declaration "BIO_METHOD *type;" type_identifier (pointer_declarator "*type" * identifier) ;) (declaration "stack_st_CONF_VALUE *psVar16;" type_identifier (pointer_declarator "*psVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "undefined **ppuVar20;" type_identifier (pointer_declarator "**ppuVar20" * (pointer_declarator "*ppuVar20" * identifier)) ;) (declaration "stack_st_CONF_VALUE *section;" type_identifier (pointer_declarator "*section" * identifier) ;) (declaration "stack_st_CONF_VALUE *psVar21;" type_identifier (pointer_declarator "*psVar21" * identifier) ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "X509_NAME *pXVar23;" type_identifier (pointer_declarator "*pXVar23" * identifier) ;) (declaration "EVP_PKEY *pEVar24;" type_identifier (pointer_declarator "*pEVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "undefined4 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_02;" type_identifier identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "int set;" primitive_type identifier ;) (declaration "X509 *x;" type_identifier (pointer_declarator "*x" * identifier) ;) (declaration "X509_REQ *x_00;" type_identifier (pointer_declarator "*x_00" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar29;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "byte bVar32;" type_identifier identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "char *pcVar34;" primitive_type (pointer_declarator "*pcVar34" * identifier) ;) (declaration "undefined4 uVar35;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE *psVar36;" type_identifier (pointer_declarator "*psVar36" * identifier) ;) (declaration "uint local_598;" type_identifier identifier ;) (declaration "uint local_594;" type_identifier identifier ;) (declaration "int local_588;" primitive_type identifier ;) (declaration "uint local_584;" type_identifier identifier ;) (declaration "uint local_580;" type_identifier identifier ;) (declaration "undefined4 local_57c;" type_identifier identifier ;) (declaration "uint local_578;" type_identifier identifier ;) (declaration "EVP_PKEY *local_570;" type_identifier (pointer_declarator "*local_570" * identifier) ;) (declaration "uint local_56c;" type_identifier identifier ;) (declaration "uint local_564;" type_identifier identifier ;) (declaration "BIO *local_560;" type_identifier (pointer_declarator "*local_560" * identifier) ;) (declaration "int local_55c;" primitive_type identifier ;) (declaration "int local_558;" primitive_type identifier ;) (declaration "ASN1_INTEGER *local_554;" type_identifier (pointer_declarator "*local_554" * identifier) ;) (declaration "BIO *local_550;" type_identifier (pointer_declarator "*local_550" * identifier) ;) (declaration "int local_54c;" primitive_type identifier ;) (declaration "BIO *local_548;" type_identifier (pointer_declarator "*local_548" * identifier) ;) (declaration "ENGINE *local_544;" type_identifier (pointer_declarator "*local_544" * identifier) ;) (declaration "undefined4 local_540;" type_identifier identifier ;) (declaration "uint local_53c;" type_identifier identifier ;) (declaration "char *local_538;" primitive_type (pointer_declarator "*local_538" * identifier) ;) (declaration "char *local_534;" primitive_type (pointer_declarator "*local_534" * identifier) ;) (declaration "int local_530;" primitive_type identifier ;) (declaration "int local_52c;" primitive_type identifier ;) (declaration "char **local_528;" primitive_type (pointer_declarator "**local_528" * (pointer_declarator "*local_528" * identifier)) ;) (declaration "stack_st_CONF_VALUE *local_524;" type_identifier (pointer_declarator "*local_524" * identifier) ;) (declaration "uint local_520;" type_identifier identifier ;) (declaration "int local_51c;" primitive_type identifier ;) (declaration "char *local_518;" primitive_type (pointer_declarator "*local_518" * identifier) ;) (declaration "int local_514;" primitive_type identifier ;) (declaration "int local_510;" primitive_type identifier ;) (declaration "char *local_50c;" primitive_type (pointer_declarator "*local_50c" * identifier) ;) (declaration "EVP_CIPHER *local_500;" type_identifier (pointer_declarator "*local_500" * identifier) ;) (declaration "int local_4ec;" primitive_type identifier ;) (declaration "BIO *local_4d0;" type_identifier (pointer_declarator "*local_4d0" * identifier) ;) (declaration "int local_4cc;" primitive_type identifier ;) (declaration "void *local_4c8;" primitive_type (pointer_declarator "*local_4c8" * identifier) ;) (declaration "char *local_4c4;" primitive_type (pointer_declarator "*local_4c4" * identifier) ;) (declaration "char *local_4c0;" primitive_type (pointer_declarator "*local_4c0" * identifier) ;) (declaration "int local_4bc;" primitive_type identifier ;) (declaration "undefined *local_4b8;" type_identifier (pointer_declarator "*local_4b8" * identifier) ;) (declaration "undefined *local_4b4;" type_identifier (pointer_declarator "*local_4b4" * identifier) ;) (declaration "undefined *local_4b0;" type_identifier (pointer_declarator "*local_4b0" * identifier) ;) (declaration "long local_4ac;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_4a8;" type_identifier identifier ;) (declaration "long local_4a4;" (sized_type_specifier "long" long) identifier ;) (declaration "X509V3_CTX local_4a0;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE local_484 [5];" type_identifier (array_declarator "local_484 [5]" identifier [ number_literal ]) ;) (declaration "uchar local_420 [1024];" type_identifier (array_declarator "local_420 [1024]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar32 = 0;" (assignment_expression "bVar32 = 0" identifier = number_literal) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "uStack_14 = 0x4e220;" (assignment_expression "uStack_14 = 0x4e220" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_4d0 = (BIO *)0x0;" (assignment_expression "local_4d0 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4cc = 0;" (assignment_expression "local_4cc = 0" identifier = number_literal) ;) (expression_statement "local_560 = (BIO *)DAT_000c4598;" (assignment_expression "local_560 = (BIO *)DAT_000c4598" identifier = (cast_expression "(BIO *)DAT_000c4598" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_4c8 = (void *)0x0;" (assignment_expression "local_4c8 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c4 = (char *)0x0;" (assignment_expression "local_4c4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c0 = (char *)0x0;" (assignment_expression "local_4c0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4bc = -1;" (assignment_expression "local_4bc = -1" identifier = number_literal) ;) (expression_statement "local_4b8 = (undefined *)0x8005;" (assignment_expression "local_4b8 = (undefined *)0x8005" identifier = (cast_expression "(undefined *)0x8005" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4b4 = (undefined *)0x8005;" (assignment_expression "local_4b4 = (undefined *)0x8005" identifier = (cast_expression "(undefined *)0x8005" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4b0 = (undefined *)0x8005;" (assignment_expression "local_4b0 = (undefined *)0x8005" identifier = (cast_expression "(undefined *)0x8005" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4ac = -1;" (assignment_expression "local_4ac = -1" identifier = number_literal) ;) (expression_statement "local_4a8 = 0;" (assignment_expression "local_4a8 = 0" identifier = number_literal) ;) (expression_statement "pEVar8 = EVP_des_ede3_cbc();" (assignment_expression "pEVar8 = EVP_des_ede3_cbc()" identifier = (call_expression "EVP_des_ede3_cbc()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppuVar20 = &PTR_DAT_000bb480;" (assignment_expression "ppuVar20 = &PTR_DAT_000bb480" identifier = (pointer_expression "&PTR_DAT_000bb480" & identifier)) ;) (expression_statement "ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);" (assignment_expression "ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" identifier = (cast_expression "(char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" identifier (argument_list "(param_1,param_2,&PTR_DAT_000bb480)" ( identifier , identifier , (pointer_expression "&PTR_DAT_000bb480" & identifier) ))))) ;) (expression_statement "pcVar34 = "../apps/req.c";" (assignment_expression "pcVar34 = "../apps/req.c"" identifier = (string_literal ""../apps/req.c"" " string_content ")) ;) (expression_statement "local_588 = 0x1001;" (assignment_expression "local_588 = 0x1001" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_56c = 0;" (assignment_expression "local_56c = 0" identifier = number_literal) ;) (expression_statement "local_584 = 0;" (assignment_expression "local_584 = 0" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "local_594 = 0;" (assignment_expression "local_594 = 0" identifier = number_literal) ;) (expression_statement "local_580 = 0;" (assignment_expression "local_580 = 0" identifier = number_literal) ;) (expression_statement "local_578 = 0;" (assignment_expression "local_578 = 0" identifier = number_literal) ;) (expression_statement "local_57c = 0;" (assignment_expression "local_57c = 0" identifier = number_literal) ;) (expression_statement "local_520 = 0;" (assignment_expression "local_520 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_530 = 0;" (assignment_expression "local_530 = 0" identifier = number_literal) ;) (expression_statement "local_53c = 0;" (assignment_expression "local_53c = 0" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_518 = (char *)0x0;" (assignment_expression "local_518 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) (expression_statement "local_50c = (char *)0x0;" (assignment_expression "local_50c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_52c = 0;" (assignment_expression "local_52c = 0" identifier = number_literal) ;) (expression_statement "local_528 = (char **)0x0;" (assignment_expression "local_528 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_550 = (BIO *)0x0;" (assignment_expression "local_550 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_510 = 0;" (assignment_expression "local_510 = 0" identifier = number_literal) ;) (expression_statement "local_54c = 0;" (assignment_expression "local_54c = 0" identifier = number_literal) ;) (expression_statement "local_558 = 0;" (assignment_expression "local_558 = 0" identifier = number_literal) ;) (expression_statement "local_55c = 0;" (assignment_expression "local_55c = 0" identifier = number_literal) ;) (expression_statement "local_544 = (ENGINE *)0x0;" (assignment_expression "local_544 = (ENGINE *)0x0" identifier = (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_540 = 0;" (assignment_expression "local_540 = 0" identifier = number_literal) ;) (expression_statement "local_554 = (ASN1_INTEGER *)0x0;" (assignment_expression "local_554 = (ASN1_INTEGER *)0x0" identifier = (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e430:\n  iVar10 = FUN_00078780();" statement_identifier : (expression_statement "iVar10 = FUN_00078780();" (assignment_expression "iVar10 = FUN_00078780()" identifier = (call_expression "FUN_00078780()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar10 != 0) goto LAB_0004e43d;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e43d;" goto statement_identifier ;)) (labeled_statement "LAB_0004e6f0:\n  iVar10 = FUN_00079110();" statement_identifier : (expression_statement "iVar10 = FUN_00079110();" (assignment_expression "iVar10 = FUN_00079110()" identifier = (call_expression "FUN_00079110()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar10 != 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_564 = local_53c ^ 1;" (assignment_expression "local_564 = local_53c ^ 1" identifier = (binary_expression "local_53c ^ 1" identifier ^ number_literal)) ;) (if_statement "if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }" if (parenthesized_expression "((local_530 != 0) && (local_564 != 0))" ( (binary_expression "(local_530 != 0) && (local_564 != 0)" (parenthesized_expression "(local_530 != 0)" ( (binary_expression "local_530 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_564 != 0)" ( (binary_expression "local_564 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }" { (expression_statement "BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");" (call_expression "BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n")" identifier (argument_list "(DAT_000c458c,"Ignoring -days; not generating a certificate\n")" ( identifier , (string_literal ""Ignoring -days; not generating a certificate\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "pBVar14 = local_4d0;" (assignment_expression "pBVar14 = local_4d0" identifier = identifier) ;) (expression_statement "bVar7 = (bool)(local_52c == 0 & (byte)local_53c);" (assignment_expression "bVar7 = (bool)(local_52c == 0 & (byte)local_53c)" identifier = (cast_expression "(bool)(local_52c == 0 & (byte)local_53c)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(local_52c == 0 & (byte)local_53c)" ( (binary_expression "local_52c == 0 & (byte)local_53c" (binary_expression "local_52c == 0" identifier == number_literal) & (cast_expression "(byte)local_53c" ( (type_descriptor "byte" type_identifier) ) identifier)) )))) ;) (expression_statement "bVar29 = bVar31;" (assignment_expression "bVar29 = bVar31" identifier = identifier) ;) (if_statement "if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }" if (parenthesized_expression "(bVar7 != false)" ( (binary_expression "bVar7 != false" identifier != false) )) (compound_statement "{\n    bVar31 = bVar7;\n    bVar29 = true;\n  }" { (expression_statement "bVar31 = bVar7;" (assignment_expression "bVar31 = bVar7" identifier = identifier) ;) (expression_statement "bVar29 = true;" (assignment_expression "bVar29 = true" identifier = true) ;) })) (expression_statement "pcVar11 = (char *)&local_4c4;" (assignment_expression "pcVar11 = (char *)&local_4c4" identifier = (cast_expression "(char *)&local_4c4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_4c4" & identifier))) ;) (expression_statement "iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);" (assignment_expression "iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0)" identifier = (call_expression "FUN_00075b40(local_534,local_548,pcVar11,&local_4c0)" identifier (argument_list "(local_534,local_548,pcVar11,&local_4c0)" ( identifier , identifier , identifier , (pointer_expression "&local_4c0" & identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }" { (expression_statement "pcVar12 = "Error getting passwords\n";" (assignment_expression "pcVar12 = "Error getting passwords\n"" identifier = (string_literal ""Error getting passwords\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) (if_statement "if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }" { (expression_statement "pcVar11 = (char *)local_560;" (assignment_expression "pcVar11 = (char *)local_560" identifier = (cast_expression "(char *)local_560" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);" (call_expression "BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560)" identifier (argument_list "(DAT_000c458c,"Using configuration from %s\n",local_560)" ( identifier , (string_literal ""Using configuration from %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);" (assignment_expression "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560)" identifier = (cast_expression "(CONF *)FUN_00075fc0(local_560)" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fc0(local_560)" identifier (argument_list "(local_560)" ( identifier ))))) ;) (if_statement "if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }" if (parenthesized_expression "(local_550 != (BIO *)0x0)" ( (binary_expression "local_550 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }" { (expression_statement "BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);" (call_expression "BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11)" identifier (argument_list "(DAT_000c458c,"Using additional configuration from command line\n",pcVar11)" ( identifier , (string_literal ""Using additional configuration from command line\n"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_0004e7d1;" goto statement_identifier ;) })) }) (else_clause "else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" else (compound_statement "{\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" { (expression_statement "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);" (assignment_expression "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560)" identifier = (cast_expression "(CONF *)FUN_00075fc0(local_560)" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fc0(local_560)" identifier (argument_list "(local_560)" ( identifier ))))) ;) (if_statement "if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }" if (parenthesized_expression "(local_550 != (BIO *)0x0)" ( (binary_expression "local_550 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }" { (labeled_statement "LAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);" statement_identifier : (expression_statement "DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);" (assignment_expression "DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0)" identifier = (cast_expression "(CONF *)FUN_00073230(local_550,0)" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00073230(local_550,0)" identifier (argument_list "(local_550,0)" ( identifier , number_literal ))))) ;)) })) }))) (if_statement "if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;" if (parenthesized_expression "(((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))" ( (binary_expression "((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0)" (parenthesized_expression "((BIO *)DAT_000c4598 != local_560)" ( (binary_expression "(BIO *)DAT_000c4598 != local_560" (cast_expression "(BIO *)DAT_000c4598" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) && (parenthesized_expression "(iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0)" ( (comma_expression "iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0" (assignment_expression "iVar10 = FUN_000770d0(DAT_000c4a98)" identifier = (call_expression "FUN_000770d0(DAT_000c4a98)" identifier (argument_list "(DAT_000c4a98)" ( identifier )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;)) (if_statement "if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }" if (parenthesized_expression "(DAT_000c4a98 != (CONF *)0x0)" ( (binary_expression "DAT_000c4a98 != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }" { (expression_statement "pcVar11 = "oid_file";" (assignment_expression "pcVar11 = "oid_file"" identifier = (string_literal ""oid_file"" " string_content ")) ;) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file")" identifier (argument_list "(DAT_000c4a98,(char *)0x0,"oid_file")" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal ""oid_file"" " string_content ") )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" else (compound_statement "{\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" { (expression_statement "in = BIO_new_file(pcVar12,"r");" (assignment_expression "in = BIO_new_file(pcVar12,"r")" identifier = (call_expression "BIO_new_file(pcVar12,"r")" identifier (argument_list "(pcVar12,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }" if (parenthesized_expression "(in != (BIO *)0x0)" ( (binary_expression "in != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }" { (expression_statement "OBJ_create_objects(in);" (call_expression "OBJ_create_objects(in)" identifier (argument_list "(in)" ( identifier ))) ;) (expression_statement "BIO_free(in);" (call_expression "BIO_free(in)" identifier (argument_list "(in)" ( identifier ))) ;) })) }))) })) (expression_statement "iVar10 = FUN_00073330(DAT_000c4a98);" (assignment_expression "iVar10 = FUN_00073330(DAT_000c4a98)" identifier = (call_expression "FUN_00073330(DAT_000c4a98)" identifier (argument_list "(DAT_000c4a98)" ( identifier )))) ;) (if_statement "if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }" { (if_statement "if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }" if (parenthesized_expression "(local_4cc == 0)" ( (binary_expression "local_4cc == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }" { (expression_statement "pcVar11 = "default_md";" (assignment_expression "pcVar11 = "default_md"" identifier = (string_literal ""default_md"" " string_content ")) ;) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","default_md")" identifier (argument_list "(DAT_000c4a98,"req","default_md")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""default_md"" " string_content ") )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ERR_clear_error();\n      }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" else (compound_statement "{\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" { (expression_statement "iVar10 = FUN_000782e0(pcVar12,&local_4cc);" (assignment_expression "iVar10 = FUN_000782e0(pcVar12,&local_4cc)" identifier = (call_expression "FUN_000782e0(pcVar12,&local_4cc)" identifier (argument_list "(pcVar12,&local_4cc)" ( identifier , (pointer_expression "&local_4cc" & identifier) )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_510 = local_4cc;" (assignment_expression "local_510 = local_4cc" identifier = identifier) ;) }))) })) (if_statement "if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" if (parenthesized_expression "(local_528 == (char **)0x0)" ( (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }" { (expression_statement "pcVar11 = "x509_extensions";" (assignment_expression "pcVar11 = "x509_extensions"" identifier = (string_literal ""x509_extensions"" " string_content ")) ;) (expression_statement "local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");" (assignment_expression "local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" identifier = (cast_expression "(char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" identifier (argument_list "(DAT_000c4a98,"req","x509_extensions")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""x509_extensions"" " string_content ") ))))) ;) (if_statement "if (local_528 != (char **)0x0) goto LAB_0004e89e;" if (parenthesized_expression "(local_528 != (char **)0x0)" ( (binary_expression "local_528 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0004e89e;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" else (compound_statement "{\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" { (labeled_statement "LAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" statement_identifier : (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (pointer_expression "&local_4a0" & identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" identifier (argument_list "(&local_4a0,DAT_000c4a98)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" identifier (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }" { (expression_statement "pcVar12 = "Error Loading extension section %s\n";" (assignment_expression "pcVar12 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar11 = (char *)local_528;" (assignment_expression "pcVar11 = (char *)local_528" identifier = (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) }))) (if_statement "if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }" if (parenthesized_expression "(DAT_000c4a94 != (CONF *)0x0)" ( (binary_expression "DAT_000c4a94 != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }" { (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (pointer_expression "&local_4a0" & identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a94);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a94)" identifier (argument_list "(&local_4a0,DAT_000c4a94)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" identifier (argument_list "(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (string_literal ""default"" " string_content ") , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }" { (expression_statement "pcVar12 = "Error Loading command line extensions\n";" (assignment_expression "pcVar12 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) })) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0))" ( (binary_expression "(local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)" (parenthesized_expression "(local_4c4 == (char *)0x0)" ( (binary_expression "local_4c4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)" ( (comma_expression "local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0" (assignment_expression "local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","input_password")" identifier (argument_list "(DAT_000c4a98,"req","input_password")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""input_password"" " string_content ") )))) , (comma_expression "local_4c4 = local_538,\n       local_538 == (char *)0x0" (assignment_expression "local_4c4 = local_538" identifier = identifier) , (binary_expression "local_538 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0))" ( (binary_expression "(local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)" (parenthesized_expression "(local_4c0 == (char *)0x0)" ( (binary_expression "local_4c0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)" ( (comma_expression "local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0" (assignment_expression "local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","output_password")" identifier (argument_list "(DAT_000c4a98,"req","output_password")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""output_password"" " string_content ") )))) , (comma_expression "local_4c0 = local_534,\n       local_534 == (char *)0x0" (assignment_expression "local_4c0 = local_534" identifier = identifier) , (binary_expression "local_534 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar11 = "string_mask";" (assignment_expression "pcVar11 = "string_mask"" identifier = (string_literal ""string_mask"" " string_content ")) ;) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","string_mask")" identifier (argument_list "(DAT_000c4a98,"req","string_mask")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""string_mask"" " string_content ") ))))) ;) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" if (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" else (compound_statement "{\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" { (expression_statement "iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);" (assignment_expression "iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16)" identifier = (call_expression "ASN1_STRING_set_default_mask_asc((char *)psVar16)" identifier (argument_list "((char *)psVar16)" ( (cast_expression "(char *)psVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }" { (expression_statement "pcVar11 = "Invalid global string mask setting %s\n";" (assignment_expression "pcVar11 = "Invalid global string mask setting %s\n"" identifier = (string_literal ""Invalid global string mask setting %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004fba6;" goto statement_identifier ;) })) }))) (if_statement "if (local_588 == 0x1000) goto LAB_0004f5da;" if (parenthesized_expression "(local_588 == 0x1000)" ( (binary_expression "local_588 == 0x1000" identifier == number_literal) )) (goto_statement "goto LAB_0004f5da;" goto statement_identifier ;)) (expression_statement "pcVar11 = "utf8";" (assignment_expression "pcVar11 = "utf8"" identifier = (string_literal ""utf8"" " string_content ")) ;) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8")" identifier = (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","utf8")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","utf8")" identifier (argument_list "(DAT_000c4a98,"req","utf8")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""utf8"" " string_content ") ))))) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "bVar30 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar30 = pbVar17 == (byte *)0x0" identifier = (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4ec = 0x1001;" (assignment_expression "local_4ec = 0x1001" identifier = number_literal) ;) (goto_statement "goto LAB_0004f11f;" goto statement_identifier ;) })) (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar28 = &DAT_0007e7a8;" (assignment_expression "pbVar28 = &DAT_0007e7a8" identifier = (pointer_expression "&DAT_0007e7a8" & identifier)) ;) (goto_statement "goto code_r0x0004f105;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;) (labeled_statement "LAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" statement_identifier : (while_statement "while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" while (parenthesized_expression "(iVar10 != 0x15)" ( (binary_expression "iVar10 != 0x15" identifier != number_literal) )) (compound_statement "{\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" { (if_statement "if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 < 0x16)" ( (binary_expression "iVar10 < 0x16" identifier < number_literal) )) (compound_statement "{\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" if (parenthesized_expression "(iVar10 == 10)" ( (binary_expression "iVar10 == 10" identifier == number_literal) )) (compound_statement "{\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }" { (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppuVar20 = &local_4b0;" (assignment_expression "ppuVar20 = &local_4b0" identifier = (pointer_expression "&local_4b0" & identifier)) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20)" identifier = (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00077fb0(uVar35,0x7be,ppuVar20)" identifier (argument_list "(uVar35,0x7be,ppuVar20)" ( identifier , number_literal , identifier ))))) ;) }) (else_clause "else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" else (if_statement "if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" if (parenthesized_expression "(iVar10 < 0xb)" ( (binary_expression "iVar10 < 0xb" identifier < number_literal) )) (compound_statement "{\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }" { (if_statement "if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar10 == 4)" ( (binary_expression "iVar10 == 4" identifier == number_literal) )) (compound_statement "{\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }" { (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_540 = FUN_00074050(uVar35,0);" (assignment_expression "local_540 = FUN_00074050(uVar35,0)" identifier = (call_expression "FUN_00074050(uVar35,0)" identifier (argument_list "(uVar35,0)" ( identifier , number_literal )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }" if (parenthesized_expression "(4 < iVar10)" ( (binary_expression "4 < iVar10" number_literal < identifier) )) (compound_statement "{\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }" { (if_statement "if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar10 == 7)" ( (binary_expression "iVar10 == 7" identifier == number_literal) )) (compound_statement "{\n            local_56c = 1;\n            goto LAB_0004e430;\n          }" { (expression_statement "local_56c = 1;" (assignment_expression "local_56c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(7 < iVar10)" ( (binary_expression "7 < iVar10" number_literal < identifier) )) (compound_statement "{\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" if (parenthesized_expression "(iVar10 == 8)" ( (binary_expression "iVar10 == 8" identifier == number_literal) )) (compound_statement "{\n              bVar31 = true;\n            }" { (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" identifier = true) ;) }) (else_clause "else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" else (if_statement "if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" if (parenthesized_expression "(iVar10 == 9)" ( (binary_expression "iVar10 == 9" identifier == number_literal) )) (compound_statement "{\n              local_560 = (BIO *)FUN_00078b30();\n            }" { (expression_statement "local_560 = (BIO *)FUN_00078b30();" (assignment_expression "local_560 = (BIO *)FUN_00078b30()" identifier = (cast_expression "(BIO *)FUN_00078b30()" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar10 != 5)" ( (binary_expression "iVar10 != 5" identifier != number_literal) )) (compound_statement "{\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }" if (parenthesized_expression "(iVar10 == 6)" ( (binary_expression "iVar10 == 6" identifier == number_literal) )) (compound_statement "{\n              local_514 = FUN_00078b30();\n            }" { (expression_statement "local_514 = FUN_00078b30();" (assignment_expression "local_514 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) })) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_544 = ENGINE_by_id(pcVar11);" (assignment_expression "local_544 = ENGINE_by_id(pcVar11)" identifier = (call_expression "ENGINE_by_id(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (if_statement "if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;" if (parenthesized_expression "(local_544 != (ENGINE *)0x0)" ( (binary_expression "local_544 != (ENGINE *)0x0" identifier != (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "ppuVar20 = (undefined **)*param_2;" (assignment_expression "ppuVar20 = (undefined **)*param_2" identifier = (cast_expression "(undefined **)*param_2" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "pcVar11 = "Can\'t find keygen engine %s\n";" (assignment_expression "pcVar11 = "Can\'t find keygen engine %s\n"" identifier = (string_literal ""Can\'t find keygen engine %s\n"" " string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11,ppuVar20);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,ppuVar20)" identifier (argument_list "(DAT_000c458c,pcVar11,ppuVar20)" ( identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }" if (parenthesized_expression "(iVar10 == 1)" ( (binary_expression "iVar10 == 1" identifier == number_literal) )) (compound_statement "{\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00079140(&PTR_DAT_000bb480);" (call_expression "FUN_00079140(&PTR_DAT_000bb480)" identifier (argument_list "(&PTR_DAT_000bb480)" ( (pointer_expression "&PTR_DAT_000bb480" & identifier) ))) ;) (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }" if (parenthesized_expression "(iVar10 < 2)" ( (binary_expression "iVar10 < 2" identifier < number_literal) )) (compound_statement "{\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }" { (if_statement "if (iVar10 != -1) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != -1)" ( (binary_expression "iVar10 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" { (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppuVar20 = &local_4b8;" (assignment_expression "ppuVar20 = &local_4b8" identifier = (pointer_expression "&local_4b8" & identifier)) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" identifier = (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00077fb0(uVar35,2,ppuVar20)" identifier (argument_list "(uVar35,2,ppuVar20)" ( identifier , number_literal , identifier ))))) ;) }) (else_clause "else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" else (compound_statement "{\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" { (if_statement "if (iVar10 != 3) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 3)" ( (binary_expression "iVar10 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppuVar20 = &local_4b4;" (assignment_expression "ppuVar20 = &local_4b4" identifier = (pointer_expression "&local_4b4" & identifier)) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" identifier = (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00077fb0(uVar35,2,ppuVar20)" identifier (argument_list "(uVar35,2,ppuVar20)" ( identifier , number_literal , identifier ))))) ;) }))) }) (else_clause "else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" else (compound_statement "{\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" { (if_statement "if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar10 == 0xf)" ( (binary_expression "iVar10 == 0xf" identifier == number_literal) )) (compound_statement "{\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }" { (expression_statement "local_548 = (BIO *)FUN_00078b30();" (assignment_expression "local_548 = (BIO *)FUN_00078b30()" identifier = (cast_expression "(BIO *)FUN_00078b30()" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar10 < 0x10)" ( (binary_expression "iVar10 < 0x10" identifier < number_literal) )) (compound_statement "{\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }" { (if_statement "if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" if (parenthesized_expression "(iVar10 == 0xc)" ( (binary_expression "iVar10 == 0xc" identifier == number_literal) )) (compound_statement "{\n            local_50c = (char *)FUN_00078b30();\n          }" { (expression_statement "local_50c = (char *)FUN_00078b30();" (assignment_expression "local_50c = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" else (if_statement "if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" if (parenthesized_expression "(iVar10 < 0xc)" ( (binary_expression "iVar10 < 0xc" identifier < number_literal) )) (compound_statement "{\n            local_52c = FUN_00078b30();\n          }" { (expression_statement "local_52c = FUN_00078b30();" (assignment_expression "local_52c = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" else (if_statement "if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" if (parenthesized_expression "(iVar10 == 0xd)" ( (binary_expression "iVar10 == 0xd" identifier == number_literal) )) (compound_statement "{\n            local_518 = (char *)FUN_00078b30();\n          }" { (expression_statement "local_518 = (char *)FUN_00078b30();" (assignment_expression "local_518 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" else (if_statement "if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" if (parenthesized_expression "(iVar10 == 0xe)" ( (binary_expression "iVar10 == 0xe" identifier == number_literal) )) (compound_statement "{\n            local_534 = (char *)FUN_00078b30();\n          }" { (expression_statement "local_534 = (char *)FUN_00078b30();" (assignment_expression "local_534 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) })))))))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" if (parenthesized_expression "(iVar10 == 0x12)" ( (binary_expression "iVar10 == 0x12" identifier == number_literal) )) (compound_statement "{\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }" { (if_statement "if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;" if (parenthesized_expression "((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))" ( (binary_expression "(local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0)" (parenthesized_expression "(local_558 == 0)" ( (binary_expression "local_558 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_558 = OPENSSL_sk_new_null(), local_558 == 0)" ( (comma_expression "local_558 = OPENSSL_sk_new_null(), local_558 == 0" (assignment_expression "local_558 = OPENSSL_sk_new_null()" identifier = (call_expression "OPENSSL_sk_new_null()" identifier (argument_list "()" ( )))) , (binary_expression "local_558 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35)" identifier = (cast_expression "(ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_push(local_558,uVar35)" identifier (argument_list "(local_558,uVar35)" ( identifier , identifier ))))) ;) }) (else_clause "else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" else (compound_statement "{\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" { (if_statement "if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(0x12 < iVar10)" ( (binary_expression "0x12 < iVar10" number_literal < identifier) )) (compound_statement "{\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" if (parenthesized_expression "(iVar10 == 0x13)" ( (binary_expression "iVar10 == 0x13" identifier == number_literal) )) (compound_statement "{\n              DAT_000c4a90 = 1;\n            }" { (expression_statement "DAT_000c4a90 = 1;" (assignment_expression "DAT_000c4a90 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" else (if_statement "if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" if (parenthesized_expression "(iVar10 == 0x14)" ( (binary_expression "iVar10 == 0x14" identifier == number_literal) )) (compound_statement "{\n              bVar5 = true;\n            }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar10 == 0x10)" ( (binary_expression "iVar10 == 0x10" identifier == number_literal) )) (compound_statement "{\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }" { (expression_statement "local_570 = (EVP_PKEY *)FUN_00078b30();" (assignment_expression "local_570 = (EVP_PKEY *)FUN_00078b30()" identifier = (cast_expression "(EVP_PKEY *)FUN_00078b30()" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" identifier = true) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0x11) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 0x11)" ( (binary_expression "iVar10 != 0x11" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (if_statement "if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;" if (parenthesized_expression "((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))" ( (binary_expression "(local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0)" (parenthesized_expression "(local_55c == 0)" ( (binary_expression "local_55c == 0" identifier == number_literal) )) && (parenthesized_expression "(local_55c = OPENSSL_sk_new_null(), local_55c == 0)" ( (comma_expression "local_55c = OPENSSL_sk_new_null(), local_55c == 0" (assignment_expression "local_55c = OPENSSL_sk_new_null()" identifier = (call_expression "OPENSSL_sk_new_null()" identifier (argument_list "()" ( )))) , (binary_expression "local_55c == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35)" identifier = (cast_expression "(ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_push(local_55c,uVar35)" identifier (argument_list "(local_55c,uVar35)" ( identifier , identifier ))))) ;) }))) }))))) (labeled_statement "joined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;" statement_identifier : (if_statement "if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;" if (parenthesized_expression "(pAVar15 == (ASN1_INTEGER *)0x0)" ( (binary_expression "pAVar15 == (ASN1_INTEGER *)0x0" identifier == (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 == 0x20)" ( (binary_expression "iVar10 == 0x20" identifier == number_literal) )) (compound_statement "{\n      local_53c = 1;\n      goto LAB_0004e430;\n    }" { (expression_statement "local_53c = 1;" (assignment_expression "local_53c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }" if (parenthesized_expression "(0x20 < iVar10)" ( (binary_expression "0x20 < iVar10" number_literal < identifier) )) (compound_statement "{\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }" { (if_statement "if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar10 == 0x25)" ( (binary_expression "iVar10 == 0x25" identifier == number_literal) )) (compound_statement "{\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }" { (expression_statement "local_528 = (char **)FUN_00078b30();" (assignment_expression "local_528 = (char **)FUN_00078b30()" identifier = (cast_expression "(char **)FUN_00078b30()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(0x25 < iVar10)" ( (binary_expression "0x25 < iVar10" number_literal < identifier) )) (compound_statement "{\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }" { (if_statement "if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar10 == 0x28)" ( (binary_expression "iVar10 == 0x28" identifier == number_literal) )) (compound_statement "{\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }" { (expression_statement "uVar35 = FUN_000790d0();" (assignment_expression "uVar35 = FUN_000790d0()" identifier = (call_expression "FUN_000790d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = FUN_000782e0(uVar35,&local_4cc);" (assignment_expression "iVar10 = FUN_000782e0(uVar35,&local_4cc)" identifier = (call_expression "FUN_000782e0(uVar35,&local_4cc)" identifier (argument_list "(uVar35,&local_4cc)" ( identifier , (pointer_expression "&local_4cc" & identifier) )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_510 = local_4cc;" (assignment_expression "local_510 = local_4cc" identifier = identifier) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }" if (parenthesized_expression "(0x28 < iVar10)" ( (binary_expression "0x28 < iVar10" number_literal < identifier) )) (compound_statement "{\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }" { (if_statement "if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;" if (parenthesized_expression "((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))" ( (binary_expression "(1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0)" (parenthesized_expression "(1 < iVar10 - 0x5ddU)" ( (binary_expression "1 < iVar10 - 0x5ddU" number_literal < (binary_expression "iVar10 - 0x5ddU" identifier - number_literal)) )) || (parenthesized_expression "(iVar10 = FUN_00072560(iVar10), iVar10 != 0)" ( (comma_expression "iVar10 = FUN_00072560(iVar10), iVar10 != 0" (assignment_expression "iVar10 = FUN_00072560(iVar10)" identifier = (call_expression "FUN_00072560(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" if (parenthesized_expression "(iVar10 == 0x26)" ( (binary_expression "iVar10 == 0x26" identifier == number_literal) )) (compound_statement "{\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }" { (expression_statement "local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)FUN_00078b30()" identifier = (cast_expression "(stack_st_CONF_VALUE *)FUN_00078b30()" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" else (if_statement "if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" if (parenthesized_expression "(iVar10 == 0x27)" ( (binary_expression "iVar10 == 0x27" identifier == number_literal) )) (compound_statement "{\n          bVar31 = true;\n          bVar4 = true;\n        }" { (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" identifier = true) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar10 == 0x22)" ( (binary_expression "iVar10 == 0x22" identifier == number_literal) )) (compound_statement "{\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }" { (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppuVar20 = (undefined **)0xa;" (assignment_expression "ppuVar20 = (undefined **)0xa" identifier = (cast_expression "(undefined **)0xa" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_530 = strtol(pcVar11,(char **)0x0,10);" (assignment_expression "local_530 = strtol(pcVar11,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar11,(char **)0x0,10)" identifier (argument_list "(pcVar11,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar10 < 0x22)" ( (binary_expression "iVar10 < 0x22" identifier < number_literal) )) (compound_statement "{\n        local_57c = 1;\n        goto LAB_0004e430;\n      }" { (expression_statement "local_57c = 1;" (assignment_expression "local_57c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }" if (parenthesized_expression "(iVar10 == 0x23)" ( (binary_expression "iVar10 == 0x23" identifier == number_literal) )) (compound_statement "{\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }" { (if_statement "if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }" if (parenthesized_expression "(local_554 != (ASN1_INTEGER *)0x0)" ( (binary_expression "local_554 != (ASN1_INTEGER *)0x0" identifier != (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }" { (expression_statement "pcVar11 = "Serial number supplied twice\n";" (assignment_expression "pcVar11 = "Serial number supplied twice\n"" identifier = (string_literal ""Serial number supplied twice\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e4a9;" goto statement_identifier ;) })) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);" (assignment_expression "local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11)" identifier = (call_expression "s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11)" identifier (argument_list "((X509V3_EXT_METHOD *)0x0,pcVar11)" ( (cast_expression "(X509V3_EXT_METHOD *)0x0" ( (type_descriptor "X509V3_EXT_METHOD *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "pAVar15 = local_554;" (assignment_expression "pAVar15 = local_554" identifier = identifier) ;) (goto_statement "goto joined_r0x0004ee90;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0x24) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 0x24)" ( (binary_expression "iVar10 != 0x24" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }" if (parenthesized_expression "(local_54c == 0)" ( (binary_expression "local_54c == 0" identifier == number_literal) )) (compound_statement "{\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }" { (expression_statement "local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);" (assignment_expression "local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0)" identifier = (call_expression "OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0)" identifier (argument_list "(FUN_0004d7c0,FUN_0004d6b0)" ( identifier , identifier )))) ;) (expression_statement "type = BIO_s_mem();" (assignment_expression "type = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_550 = BIO_new(type);" (assignment_expression "local_550 = BIO_new(type)" identifier = (call_expression "BIO_new(type)" identifier (argument_list "(type)" ( identifier )))) ;) (if_statement "if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "((local_54c == 0) || (local_550 == (BIO *)0x0))" ( (binary_expression "(local_54c == 0) || (local_550 == (BIO *)0x0)" (parenthesized_expression "(local_54c == 0)" ( (binary_expression "local_54c == 0" identifier == number_literal) )) || (parenthesized_expression "(local_550 == (BIO *)0x0)" ( (binary_expression "local_550 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) })) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar1 != '\0') goto LAB_0004ea31;" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ea31;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ea4d;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 == 0x1a)" ( (binary_expression "iVar10 == 0x1a" identifier == number_literal) )) (compound_statement "{\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }" { (expression_statement "local_588 = 0x1000;" (assignment_expression "local_588 = 0x1000" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 < 0x1b)" ( (binary_expression "iVar10 < 0x1b" identifier < number_literal) )) (compound_statement "{\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar10 == 0x17)" ( (binary_expression "iVar10 == 0x17" identifier == number_literal) )) (compound_statement "{\n        bVar3 = true;\n      }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }) (else_clause "else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar10 < 0x17)" ( (binary_expression "iVar10 < 0x17" identifier < number_literal) )) (compound_statement "{\n        local_578 = 1;\n      }" { (expression_statement "local_578 = 1;" (assignment_expression "local_578 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar10 == 0x18)" ( (binary_expression "iVar10 == 0x18" identifier == number_literal) )) (compound_statement "{\n        local_580 = 1;\n      }" { (expression_statement "local_580 = 1;" (assignment_expression "local_580 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar10 == 0x19)" ( (binary_expression "iVar10 == 0x19" identifier == number_literal) )) (compound_statement "{\n        bVar2 = true;\n      }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })))))))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 == 0x1d)" ( (binary_expression "iVar10 == 0x1d" identifier == number_literal) )) (compound_statement "{\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }" { (expression_statement "local_51c = FUN_00078b30();" (assignment_expression "local_51c = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(0x1d < iVar10)" ( (binary_expression "0x1d < iVar10" number_literal < identifier) )) (compound_statement "{\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" if (parenthesized_expression "(iVar10 == 0x1e)" ( (binary_expression "iVar10 == 0x1e" identifier == number_literal) )) (compound_statement "{\n        local_584 = 1;\n      }" { (expression_statement "local_584 = 1;" (assignment_expression "local_584 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" else (if_statement "if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" if (parenthesized_expression "(iVar10 == 0x1f)" ( (binary_expression "iVar10 == 0x1f" identifier == number_literal) )) (compound_statement "{\n        local_594 = 1;\n      }" { (expression_statement "local_594 = 1;" (assignment_expression "local_594 = 1" identifier = number_literal) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }" if (parenthesized_expression "(iVar10 == 0x1b)" ( (binary_expression "iVar10 == 0x1b" identifier == number_literal) )) (compound_statement "{\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }" { (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = FUN_00073960(uVar35);" (assignment_expression "iVar10 = FUN_00073960(uVar35)" identifier = (call_expression "FUN_00073960(uVar35)" identifier (argument_list "(uVar35)" ( identifier )))) ;) (if_statement "if (iVar10 != 0) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0x1c) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 0x1c)" ( (binary_expression "iVar10 != 0x1c" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = FUN_000738d0(&local_4a8,uVar35);" (assignment_expression "iVar10 = FUN_000738d0(&local_4a8,uVar35)" identifier = (call_expression "FUN_000738d0(&local_4a8,uVar35)" identifier (argument_list "(&local_4a8,uVar35)" ( (pointer_expression "&local_4a8" & identifier) , identifier )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "iVar10 = FUN_00078780();" (assignment_expression "iVar10 = FUN_00078780()" identifier = (call_expression "FUN_00078780()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004e6f0;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e6f0;" goto statement_identifier ;)) }))) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) (labeled_statement "LAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();" statement_identifier : (expression_statement "ppuVar13 = __ctype_b_loc();" (assignment_expression "ppuVar13 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;" if (parenthesized_expression "((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar13 + cVar1 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar13 + cVar1 * 2 + 1)" ( (binary_expression "(int)*ppuVar13 + cVar1 * 2 + 1" (binary_expression "(int)*ppuVar13 + cVar1 * 2" (cast_expression "(int)*ppuVar13" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar13" * identifier)) + (binary_expression "cVar1 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ea4d;" goto statement_identifier ;)) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar1 == '\0') goto LAB_0004e51a;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ea31;" goto statement_identifier ;) (labeled_statement "LAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);" statement_identifier : (expression_statement "pcVar12 = strchr(pcVar11,0x3d);" (assignment_expression "pcVar12 = strchr(pcVar11,0x3d)" identifier = (call_expression "strchr(pcVar11,0x3d)" identifier (argument_list "(pcVar11,0x3d)" ( identifier , number_literal )))) ;)) (if_statement "if (pcVar12 == (char *)0x0) goto LAB_0004e51a;" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);" (assignment_expression "ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd)" identifier = (call_expression "CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd)" identifier (argument_list "(pcVar11,"../apps/req.c",0xbd)" ( identifier , (string_literal ""../apps/req.c"" " string_content ") , number_literal )))) ;) (if_statement "if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }" if (parenthesized_expression "(ptr == (char *)0x0)" ( (binary_expression "ptr == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }" { (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004f60c;" goto statement_identifier ;) })) (expression_statement "pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);" (assignment_expression "pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11)" identifier = (binary_expression "ptr + ((int)pcVar12 - (int)pcVar11)" identifier + (parenthesized_expression "((int)pcVar12 - (int)pcVar11)" ( (binary_expression "(int)pcVar12 - (int)pcVar11" (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }" if (parenthesized_expression "(ptr < pcVar11)" ( (binary_expression "ptr < pcVar11" identifier < identifier) )) (compound_statement "{\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }" { (expression_statement "ppuVar13 = __ctype_b_loc();" (assignment_expression "ppuVar13 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (while_statement "while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }" while (parenthesized_expression "((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" ( (binary_expression "(int)*ppuVar13 + pcVar11[-1] * 2 + 1" (binary_expression "(int)*ppuVar13 + pcVar11[-1] * 2" (cast_expression "(int)*ppuVar13" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar13" * identifier)) + (binary_expression "pcVar11[-1] * 2" (subscript_expression "pcVar11[-1]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }" { (expression_statement "pcVar11 = pcVar11 + -1;" (assignment_expression "pcVar11 = pcVar11 + -1" identifier = (binary_expression "pcVar11 + -1" identifier + number_literal)) ;) (if_statement "if (ptr == pcVar11) goto LAB_0004f4ba;" if (parenthesized_expression "(ptr == pcVar11)" ( (binary_expression "ptr == pcVar11" identifier == identifier) )) (goto_statement "goto LAB_0004f4ba;" goto statement_identifier ;)) })) })) (if_statement "if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }" if (parenthesized_expression "(pcVar11 == ptr)" ( (binary_expression "pcVar11 == ptr" identifier == identifier) )) (compound_statement "{\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }" { (labeled_statement "LAB_0004f4ba:\n    CRYPTO_free(ptr);" statement_identifier : (expression_statement "CRYPTO_free(ptr);" (call_expression "CRYPTO_free(ptr)" identifier (argument_list "(ptr)" ( identifier ))) ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (expression_statement "*pcVar11 = '\0';" (assignment_expression "*pcVar11 = '\0'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);" (assignment_expression "pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr)" identifier = (cast_expression "(BIO *)OPENSSL_LH_insert(local_54c,ptr)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_LH_insert(local_54c,ptr)" identifier (argument_list "(local_54c,ptr)" ( identifier , identifier ))))) ;) (if_statement "if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }" if (parenthesized_expression "((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0))" ( (binary_expression "(pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)" (parenthesized_expression "(pBVar14 == (BIO *)0x0)" ( (binary_expression "pBVar14 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)" ( (comma_expression "iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0" (assignment_expression "iVar10 = OPENSSL_LH_error(local_54c)" identifier = (call_expression "OPENSSL_LH_error(local_54c)" identifier (argument_list "(local_54c)" ( identifier )))) , (comma_expression "pBVar14 = (BIO *)ptr, iVar10 == 0" (assignment_expression "pBVar14 = (BIO *)ptr" identifier = (cast_expression "(BIO *)ptr" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "iVar10 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }" { (expression_statement "ppuVar20 = (undefined **)FUN_00078b30();" (assignment_expression "ppuVar20 = (undefined **)FUN_00078b30()" identifier = (cast_expression "(undefined **)FUN_00078b30()" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);" (assignment_expression "iVar10 = BIO_printf(local_550,"%s\n",ppuVar20)" identifier = (call_expression "BIO_printf(local_550,"%s\n",ppuVar20)" identifier (argument_list "(local_550,"%s\n",ppuVar20)" ( identifier , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier )))) ;) (if_statement "if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (expression_statement "local_560 = pBVar14;" (assignment_expression "local_560 = pBVar14" identifier = identifier) ;) (expression_statement "CRYPTO_free(local_560);" (call_expression "CRYPTO_free(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (labeled_statement "LAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;" statement_identifier : (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (labeled_statement "LAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";" statement_identifier : (expression_statement "pcVar12 = "%s: Use -help for summary.\n";" (assignment_expression "pcVar12 = "%s: Use -help for summary.\n"" identifier = (string_literal ""%s: Use -help for summary.\n"" " string_content escape_sequence ")) ;)) (expression_statement "pcVar11 = (char *)ppcVar9;" (assignment_expression "pcVar11 = (char *)ppcVar9" identifier = (cast_expression "(char *)ppcVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar12,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11)" identifier (argument_list "(DAT_000c458c,pcVar12,pcVar11)" ( identifier , identifier , identifier ))) ;)) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e54e:\n  local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }" { (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar17 < *pbVar28;" (assignment_expression "bVar7 = *pbVar17 < *pbVar28" identifier = (binary_expression "*pbVar17 < *pbVar28" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "bVar30 = *pbVar17 == *pbVar28;" (assignment_expression "bVar30 = *pbVar17 == *pbVar28" identifier = (binary_expression "*pbVar17 == *pbVar28" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar32 * -2" identifier + (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar32 * -2" identifier + (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if (!bVar30) break;" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x0004f105:\n    if (iVar10 == 0) break;" statement_identifier : (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) })) (if_statement "if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }" if (parenthesized_expression "((!bVar7 && !bVar30) == bVar7)" ( (binary_expression "(!bVar7 && !bVar30) == bVar7" (parenthesized_expression "(!bVar7 && !bVar30)" ( (binary_expression "!bVar7 && !bVar30" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }" { (labeled_statement "LAB_0004f5da:\n    local_4ec = 0x1000;" statement_identifier : (expression_statement "local_4ec = 0x1000;" (assignment_expression "local_4ec = 0x1000" identifier = number_literal) ;)) }) (else_clause "else {\n    local_4ec = 0x1001;\n  }" else (compound_statement "{\n    local_4ec = 0x1001;\n  }" { (expression_statement "local_4ec = 0x1001;" (assignment_expression "local_4ec = 0x1001" identifier = number_literal) ;) }))) (labeled_statement "LAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" statement_identifier : (if_statement "if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" if (parenthesized_expression "(local_524 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }" { (expression_statement "pcVar11 = "req_extensions";" (assignment_expression "pcVar11 = "req_extensions"" identifier = (string_literal ""req_extensions"" " string_content ")) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","req_extensions")" identifier (argument_list "(DAT_000c4a98,"req","req_extensions")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""req_extensions"" " string_content ") ))))) ;) (if_statement "if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;" if (parenthesized_expression "(local_524 != (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 != (stack_st_CONF_VALUE *)0x0" identifier != (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f12b;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" else (compound_statement "{\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" { (labeled_statement "LAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" statement_identifier : (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (pointer_expression "&local_4a0" & identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" identifier (argument_list "(&local_4a0,DAT_000c4a98)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" identifier (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (cast_expression "(char *)local_524" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }" { (expression_statement "pcVar11 = "Error Loading request extension section %s\n";" (assignment_expression "pcVar11 = "Error Loading request extension section %s\n"" identifier = (string_literal ""Error Loading request extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "psVar16 = local_524;" (assignment_expression "psVar16 = local_524" identifier = identifier) ;) (labeled_statement "LAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11,psVar16);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,psVar16)" identifier (argument_list "(DAT_000c458c,pcVar11,psVar16)" ( identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0004e54e;" goto statement_identifier ;) })) })))) (if_statement "if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" if (parenthesized_expression "(local_514 == 0)" ( (binary_expression "local_514 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }" { (labeled_statement "LAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" statement_identifier : (if_statement "if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" if (parenthesized_expression "((local_4d0 == (BIO *)0x0) && (bVar31 != false))" ( (binary_expression "(local_4d0 == (BIO *)0x0) && (bVar31 != false)" (parenthesized_expression "(local_4d0 == (BIO *)0x0)" ( (binary_expression "local_4d0 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar31 != false)" ( (binary_expression "bVar31 != false" identifier != false) ))) )) (compound_statement "{\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }" { (expression_statement "FUN_00072430(DAT_000c4a98,&DAT_00091821);" (call_expression "FUN_00072430(DAT_000c4a98,&DAT_00091821)" identifier (argument_list "(DAT_000c4a98,&DAT_00091821)" ( identifier , (pointer_expression "&DAT_00091821" & identifier) ))) ;) (expression_statement "iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);" (assignment_expression "iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac)" identifier (argument_list "(DAT_000c4a98,"req","default_bits",&local_4ac)" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""default_bits"" " string_content ") , (pointer_expression "&local_4ac" & identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }" { (expression_statement "local_4ac = 0x800;" (assignment_expression "local_4ac = 0x800" identifier = number_literal) ;) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }" { (labeled_statement "LAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" (assignment_expression "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" identifier = (cast_expression "(EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004d840(&local_4c8,local_544)" identifier (argument_list "(&local_4c8,local_544)" ( (pointer_expression "&local_4c8" & identifier) , identifier ))))) ;)) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004f2bc;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" (assignment_expression "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" identifier = (cast_expression "(EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004d840(&local_4c8,local_544)" identifier (argument_list "(&local_4c8,local_544)" ( (pointer_expression "&local_4c8" & identifier) , identifier ))))) ;)) (if_statement "if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;" if (parenthesized_expression "(local_570 != (EVP_PKEY *)0x0)" ( (binary_expression "local_570 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f275;" goto statement_identifier ;)) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000501da:\n        x = (X509 *)0x0;" statement_identifier : (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" else (compound_statement "{\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" { (if_statement "if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;" if (parenthesized_expression "(local_570 != (EVP_PKEY *)0x0)" ( (binary_expression "local_570 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f245;" goto statement_identifier ;)) (labeled_statement "LAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" statement_identifier : (if_statement "if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" if (parenthesized_expression "(local_4ac < 0x200)" ( (binary_expression "local_4ac < 0x200" identifier < number_literal) )) (compound_statement "{\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }" { (if_statement "if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;" if (parenthesized_expression "((local_4bc != 0x74) && (local_4bc != 6))" ( (binary_expression "(local_4bc != 0x74) && (local_4bc != 6)" (parenthesized_expression "(local_4bc != 0x74)" ( (binary_expression "local_4bc != 0x74" identifier != number_literal) )) && (parenthesized_expression "(local_4bc != 6)" ( (binary_expression "local_4bc != 6" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004f2b0;" goto statement_identifier ;)) (expression_statement "BIO_printf(DAT_000c458c,"private key length is too short,\n");" (call_expression "BIO_printf(DAT_000c458c,"private key length is too short,\n")" identifier (argument_list "(DAT_000c458c,"private key length is too short,\n")" ( identifier , (string_literal ""private key length is too short,\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac)" identifier (argument_list "(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac)" ( identifier , (string_literal ""it needs to be at least %d bits, not %ld\n"" " string_content escape_sequence ") , number_literal , identifier ))) ;) }) (else_clause "else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" else (compound_statement "{\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" { (if_statement "if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }" if (parenthesized_expression "((0x4000 < local_4ac) && (local_4bc == 6))" ( (binary_expression "(0x4000 < local_4ac) && (local_4bc == 6)" (parenthesized_expression "(0x4000 < local_4ac)" ( (binary_expression "0x4000 < local_4ac" number_literal < identifier) )) && (parenthesized_expression "(local_4bc == 6)" ( (binary_expression "local_4bc == 6" identifier == number_literal) ))) )) (compound_statement "{\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }" { (expression_statement "pcVar11 = (char *)0x4000;" (assignment_expression "pcVar11 = (char *)0x4000" identifier = (cast_expression "(char *)0x4000" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac)" identifier (argument_list "(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac)" ( identifier , (string_literal ""Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal , identifier ))) ;) })) (if_statement "if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }" if (parenthesized_expression "((local_4bc == 0x74) && (10000 < local_4ac))" ( (binary_expression "(local_4bc == 0x74) && (10000 < local_4ac)" (parenthesized_expression "(local_4bc == 0x74)" ( (binary_expression "local_4bc == 0x74" identifier == number_literal) )) && (parenthesized_expression "(10000 < local_4ac)" ( (binary_expression "10000 < local_4ac" number_literal < identifier) ))) )) (compound_statement "{\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }" { (expression_statement "pcVar11 = (char *)0x2710;" (assignment_expression "pcVar11 = (char *)0x2710" identifier = (cast_expression "(char *)0x2710" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac)" identifier (argument_list "(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac)" ( identifier , (string_literal ""Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal , identifier ))) ;) })) (labeled_statement "LAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;" statement_identifier : (if_statement "if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000500d7;" goto statement_identifier ;))) (labeled_statement "LAB_0004f2bc:\n          iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (if_statement "if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }" if (parenthesized_expression "(local_55c != 0)" ( (binary_expression "local_55c != 0" identifier != number_literal) )) (compound_statement "{\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }" { (for_statement "for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }" for ( ; (comma_expression "iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(local_55c)" identifier = (call_expression "OPENSSL_sk_num(local_55c)" identifier (argument_list "(local_55c)" ( identifier )))) , (binary_expression "iVar10 < iVar18" identifier < identifier)) ; (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }" { (expression_statement "uVar35 = OPENSSL_sk_value(local_55c,iVar10);" (assignment_expression "uVar35 = OPENSSL_sk_value(local_55c,iVar10)" identifier = (call_expression "OPENSSL_sk_value(local_55c,iVar10)" identifier (argument_list "(local_55c,iVar10)" ( identifier , identifier )))) ;) (expression_statement "iVar18 = FUN_00075300(local_570,uVar35);" (assignment_expression "iVar18 = FUN_00075300(local_570,uVar35)" identifier = (call_expression "FUN_00075300(local_570,uVar35)" identifier (argument_list "(local_570,uVar35)" ( identifier , identifier )))) ;) (if_statement "if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }" if (parenthesized_expression "(iVar18 < 1)" ( (binary_expression "iVar18 < 1" identifier < number_literal) )) (compound_statement "{\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }" { (expression_statement "BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);" (call_expression "BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35)" identifier (argument_list "(DAT_000c458c,"parameter error \"%s\"\n",uVar35)" ( identifier , (string_literal ""parameter error \"%s\"\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier ))) ;) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (goto_statement "goto LAB_0004ff7c;" goto statement_identifier ;) })) })) })) (if_statement "if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" if (parenthesized_expression "(local_4bc == 0x198)" ( (binary_expression "local_4bc == 0x198" identifier == number_literal) )) (compound_statement "{\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }" { (expression_statement "BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);" (call_expression "BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11)" identifier (argument_list "(DAT_000c458c,"Generating an EC private key\n",pcVar11)" ( identifier , (string_literal ""Generating an EC private key\n"" " string_content escape_sequence ") , identifier ))) ;) }) (else_clause "else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" else (compound_statement "{\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" { (expression_statement "BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);" (call_expression "BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8)" identifier (argument_list "(DAT_000c458c,"Generating a %s private key\n",local_4c8)" ( identifier , (string_literal ""Generating a %s private key\n"" " string_content escape_sequence ") , identifier ))) ;) }))) (expression_statement "EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);" (call_expression "EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,FUN_0004d710)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);" (call_expression "EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,DAT_000c458c)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);" (assignment_expression "iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" identifier = (call_expression "EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(EVP_PKEY **)&local_4d0" ( (type_descriptor "EVP_PKEY **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_4d0" & identifier)) )))) ;) (if_statement "if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }" { (expression_statement "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);" (call_expression "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570)" identifier (argument_list "((EVP_PKEY_CTX *)local_570)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" if (parenthesized_expression "(local_518 == (char *)0x0)" ( (binary_expression "local_518 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }" { (expression_statement "pcVar11 = "default_keyfile";" (assignment_expression "pcVar11 = "default_keyfile"" identifier = (string_literal ""default_keyfile"" " string_content ")) ;) (expression_statement "local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");" (assignment_expression "local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","default_keyfile")" identifier (argument_list "(DAT_000c4a98,"req","default_keyfile")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""default_keyfile"" " string_content ") )))) ;) (if_statement "if (local_518 != (char *)0x0) goto LAB_0004f392;" if (parenthesized_expression "(local_518 != (char *)0x0)" ( (binary_expression "local_518 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f392;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar12 = "writing new private key to stdout\n";" (assignment_expression "pcVar12 = "writing new private key to stdout\n"" identifier = (string_literal ""writing new private key to stdout\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" else (compound_statement "{\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" { (labeled_statement "LAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";" statement_identifier : (expression_statement "pcVar12 = "writing new private key to \'%s\'\n";" (assignment_expression "pcVar12 = "writing new private key to \'%s\'\n"" identifier = (string_literal ""writing new private key to \'%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ")) ;)) (expression_statement "pcVar11 = local_518;" (assignment_expression "pcVar11 = local_518" identifier = identifier) ;) }))) (expression_statement "BIO_printf(DAT_000c458c,pcVar12,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11)" identifier (argument_list "(DAT_000c458c,pcVar12,pcVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);" (assignment_expression "local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" identifier = (cast_expression "(BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" identifier (argument_list "(local_518,local_4b4,pBVar14 == (BIO *)0x0)" ( identifier , identifier , (binary_expression "pBVar14 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (if_statement "if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }" if (parenthesized_expression "(local_560 == (BIO *)0x0)" ( (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" identifier = (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" identifier (argument_list "(DAT_000c4a98,"req","encrypt_rsa_key")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""encrypt_rsa_key"" " string_content ") ))))) ;) (expression_statement "bVar31 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar31 = pbVar17 == (byte *)0x0" identifier = (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" if (parenthesized_expression "(bVar31)" ( identifier )) (compound_statement "{\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" identifier = (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" identifier (argument_list "(DAT_000c4a98,"req","encrypt_key")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""encrypt_key"" " string_content ") ))))) ;) (expression_statement "bVar31 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar31 = pbVar17 == (byte *)0x0" identifier = (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar31) goto LAB_0004f40c;" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (goto_statement "goto LAB_0004f40c;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_500 = pEVar8;" (assignment_expression "local_500 = pEVar8" identifier = identifier) ;) }) (else_clause "else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" else (compound_statement "{\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" { (labeled_statement "LAB_0004f40c:\n              bVar29 = false;" statement_identifier : (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;)) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar28 = &DAT_0007e9a6;" (assignment_expression "pbVar28 = &DAT_0007e9a6" identifier = (pointer_expression "&DAT_0007e9a6" & identifier)) ;) (do_statement "do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);" do (compound_statement "{\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar17 < *pbVar28;" (assignment_expression "bVar29 = *pbVar17 < *pbVar28" identifier = (binary_expression "*pbVar17 < *pbVar28" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "bVar31 = *pbVar17 == *pbVar28;" (assignment_expression "bVar31 = *pbVar17 == *pbVar28" identifier = (binary_expression "*pbVar17 == *pbVar28" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar32 * -2" identifier + (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar32 * -2" identifier + (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (expression_statement "local_500 = (EVP_CIPHER *)0x0;" (assignment_expression "local_500 = (EVP_CIPHER *)0x0" identifier = (cast_expression "(EVP_CIPHER *)0x0" ( (type_descriptor "EVP_CIPHER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }" if (parenthesized_expression "((!bVar29 && !bVar31) != bVar29)" ( (binary_expression "(!bVar29 && !bVar31) != bVar29" (parenthesized_expression "(!bVar29 && !bVar31)" ( (binary_expression "!bVar29 && !bVar31" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) != identifier) )) (compound_statement "{\n                local_500 = pEVar8;\n              }" { (expression_statement "local_500 = pEVar8;" (assignment_expression "local_500 = pEVar8" identifier = identifier) ;) })) }))) (expression_statement "pEVar8 = (EVP_CIPHER *)0x0;" (assignment_expression "pEVar8 = (EVP_CIPHER *)0x0" identifier = (cast_expression "(EVP_CIPHER *)0x0" ( (type_descriptor "EVP_CIPHER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (!bVar3) {\n              pEVar8 = local_500;\n            }" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (compound_statement "{\n              pEVar8 = local_500;\n            }" { (expression_statement "pEVar8 = local_500;" (assignment_expression "pEVar8 = local_500" identifier = identifier) ;) })) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (while_statement "while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }" while (parenthesized_expression "(iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0)" ( (comma_expression "iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0" (assignment_expression "iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" identifier (argument_list "(local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" ( identifier , (cast_expression "(EVP_PKEY *)local_4d0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) )) (compound_statement "{\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }" { (expression_statement "uVar19 = ERR_peek_error();" (assignment_expression "uVar19 = ERR_peek_error()" identifier = (call_expression "ERR_peek_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }" if (parenthesized_expression "(((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3))" ( (binary_expression "((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)" (parenthesized_expression "((uVar19 & 0xfff) != 0x6d)" ( (binary_expression "(uVar19 & 0xfff) != 0x6d" (parenthesized_expression "(uVar19 & 0xfff)" ( (binary_expression "uVar19 & 0xfff" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) ))) )) (compound_statement "{\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }" { (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "BIO_free(local_560);" (call_expression "BIO_free(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"-----\n");" (call_expression "BIO_printf(DAT_000c458c,"-----\n")" identifier (argument_list "(DAT_000c458c,"-----\n")" ( identifier , (string_literal ""-----\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_0004f6c0;" goto statement_identifier ;) })) (expression_statement "BIO_puts(DAT_000c458c,"Error Generating Key\n");" (call_expression "BIO_puts(DAT_000c458c,"Error Generating Key\n")" identifier (argument_list "(DAT_000c458c,"Error Generating Key\n")" ( identifier , (string_literal ""Error Generating Key\n"" " string_content escape_sequence ") ))) ;) })))) (labeled_statement "LAB_0004ff7c:\n        local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" else (compound_statement "{\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" { (if_statement "if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }" if (parenthesized_expression "(bVar29)" ( identifier )) (compound_statement "{\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }" { (labeled_statement "LAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" statement_identifier : (if_statement "if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "(local_4d0 == (BIO *)0x0)" ( (binary_expression "local_4d0 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000505b7:\n          x = (X509 *)0x0;" statement_identifier : (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "BIO_printf(DAT_000c458c,"you need to specify a private key\n");" (call_expression "BIO_printf(DAT_000c458c,"you need to specify a private key\n")" identifier (argument_list "(DAT_000c458c,"you need to specify a private key\n")" ( identifier , (string_literal ""you need to specify a private key\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) }))) (expression_statement "x_00 = X509_REQ_new();" (assignment_expression "x_00 = X509_REQ_new()" identifier = (call_expression "X509_REQ_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar14 = local_4d0;" (assignment_expression "pBVar14 = local_4d0" identifier = identifier) ;) (if_statement "if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }" if (parenthesized_expression "(x_00 == (X509_REQ *)0x0)" ( (binary_expression "x_00 == (X509_REQ *)0x0" identifier == (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000501da;" goto statement_identifier ;) })) (expression_statement "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");" (assignment_expression "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","prompt")" identifier (argument_list "(DAT_000c4a98,"req","prompt")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""prompt"" " string_content ") )))) ;) (if_statement "if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" if (parenthesized_expression "(pcVar11 == (char *)0x0)" ( (binary_expression "pcVar11 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ERR_clear_error();\n          bVar31 = false;\n        }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) }) (else_clause "else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" else (compound_statement "{\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" { (expression_statement "iVar10 = strcmp(pcVar11,"no");" (assignment_expression "iVar10 = strcmp(pcVar11,"no")" identifier = (call_expression "strcmp(pcVar11,"no")" identifier (argument_list "(pcVar11,"no")" ( identifier , (string_literal ""no"" " string_content ") )))) ;) (expression_statement "bVar31 = iVar10 == 0;" (assignment_expression "bVar31 = iVar10 == 0" identifier = (binary_expression "iVar10 == 0" identifier == number_literal)) ;) }))) (expression_statement "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");" (assignment_expression "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","distinguished_name")" identifier (argument_list "(DAT_000c4a98,"req","distinguished_name")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""distinguished_name"" " string_content ") )))) ;) (if_statement "if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }" if (parenthesized_expression "((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "(stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0" (cast_expression "(stack_st_CONF_VALUE *)pcVar11" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }" { (expression_statement "pcVar12 = "unable to find \'%s\' in config\n";" (assignment_expression "pcVar12 = "unable to find \'%s\' in config\n"" identifier = (string_literal ""unable to find \'%s\' in config\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "pcVar11 = "distinguished_name";" (assignment_expression "pcVar11 = "distinguished_name"" identifier = (string_literal ""distinguished_name"" " string_content ")) ;) (expression_statement "psVar16 = extraout_ECX;" (assignment_expression "psVar16 = extraout_ECX" identifier = identifier) ;) (labeled_statement "LAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);" statement_identifier : (expression_statement "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);" (assignment_expression "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" identifier = (cast_expression "(undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" identifier (argument_list "(DAT_000c458c,pcVar12,pcVar11,psVar16)" ( identifier , identifier , identifier , identifier ))))) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);" (assignment_expression "psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11)" identifier = (call_expression "NCONF_get_section(DAT_000c4a98,pcVar11)" identifier (argument_list "(DAT_000c4a98,pcVar11)" ( identifier , identifier )))) ;) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }" if (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }" { (expression_statement "pcVar12 = "unable to get \'%s\' section\n";" (assignment_expression "pcVar12 = "unable to get \'%s\' section\n"" identifier = (string_literal ""unable to get \'%s\' section\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "psVar16 = extraout_EDX;" (assignment_expression "psVar16 = extraout_EDX" identifier = identifier) ;) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) (expression_statement "section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");" (assignment_expression "section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","attributes")" identifier (argument_list "(DAT_000c4a98,"req","attributes")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""attributes"" " string_content ") ))))) ;) (if_statement "if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" if (parenthesized_expression "(section == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "section == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }" { (expression_statement "psVar21 = section;" (assignment_expression "psVar21 = section" identifier = identifier) ;) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" else (compound_statement "{\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" { (expression_statement "psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);" (assignment_expression "psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section)" identifier = (call_expression "NCONF_get_section(DAT_000c4a98,(char *)section)" identifier (argument_list "(DAT_000c4a98,(char *)section)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_548 = (BIO *)psVar21;" (assignment_expression "local_548 = (BIO *)psVar21" identifier = (cast_expression "(BIO *)psVar21" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }" if (parenthesized_expression "(psVar21 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar21 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }" { (expression_statement "pcVar12 = "unable to get \'%s\' section\n";" (assignment_expression "pcVar12 = "unable to get \'%s\' section\n"" identifier = (string_literal ""unable to get \'%s\' section\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = (char *)section;" (assignment_expression "pcVar11 = (char *)section" identifier = (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) }))) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "psVar36 = psVar21;" (assignment_expression "psVar36 = psVar21" identifier = identifier) ;) (expression_statement "iVar10 = X509_REQ_set_version(x_00,0);" (assignment_expression "iVar10 = X509_REQ_set_version(x_00,0)" identifier = (call_expression "X509_REQ_set_version(x_00,0)" identifier (argument_list "(x_00,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }" { (labeled_statement "LAB_0004f80b:\n          puVar26 = &DAT_000c458c;" statement_identifier : (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" identifier = (pointer_expression "&DAT_000c458c" & identifier)) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (if_statement "if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }" if (parenthesized_expression "(local_51c == 0)" ( (binary_expression "local_51c == 0" identifier == number_literal) )) (compound_statement "{\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }" { (if_statement "if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" if (parenthesized_expression "(bVar31)" ( identifier )) (compound_statement "{\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }" { (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" identifier (argument_list "(x_00,uVar35,psVar21,psVar36)" ( identifier , identifier , identifier , identifier ))))) ;) (for_statement "for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }" for ( (assignment_expression "iVar10 = 0" identifier = number_literal) ; (comma_expression "iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(psVar16)" identifier = (call_expression "OPENSSL_sk_num(psVar16)" identifier (argument_list "(psVar16)" ( identifier )))) , (binary_expression "iVar10 < iVar18" identifier < identifier)) ; (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }" { (expression_statement "iVar18 = OPENSSL_sk_value(psVar16,iVar10);" (assignment_expression "iVar18 = OPENSSL_sk_value(psVar16,iVar10)" identifier = (call_expression "OPENSSL_sk_value(psVar16,iVar10)" identifier (argument_list "(psVar16,iVar10)" ( identifier , identifier )))) ;) (expression_statement "pbVar17 = *(byte **)(iVar18 + 4);" (assignment_expression "pbVar17 = *(byte **)(iVar18 + 4)" identifier = (pointer_expression "*(byte **)(iVar18 + 4)" * (cast_expression "(byte **)(iVar18 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "bVar32 = *pbVar17;" (assignment_expression "bVar32 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar28 = pbVar17;" (assignment_expression "pbVar28 = pbVar17" identifier = identifier) ;) (if_statement "if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" if (parenthesized_expression "(bVar32 == 0)" ( (binary_expression "bVar32 == 0" identifier == number_literal) )) (compound_statement "{\n                set = 0;\n              }" { (expression_statement "set = 0;" (assignment_expression "set = 0" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" else (compound_statement "{\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" { (do_statement "do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);" do (compound_statement "{\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                }" { (if_statement "if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }" if (parenthesized_expression "(((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a))" ( (binary_expression "((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)" (parenthesized_expression "((bVar32 & 0xfd) == 0x2c)" ( (binary_expression "(bVar32 & 0xfd) == 0x2c" (parenthesized_expression "(bVar32 & 0xfd)" ( (binary_expression "bVar32 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar32 == 0x3a)" ( (binary_expression "bVar32 == 0x3a" identifier == number_literal) ))) )) (compound_statement "{\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }" { (if_statement "if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }" if (parenthesized_expression "(*(byte *)((int)pbVar28 + 1) != 0)" ( (binary_expression "*(byte *)((int)pbVar28 + 1) != 0" (pointer_expression "*(byte *)((int)pbVar28 + 1)" * (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }" { (expression_statement "pbVar17 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar17 = (byte *)((int)pbVar28 + 1)" identifier = (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar28 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar28 = (byte *)((int)pbVar28 + 1)" identifier = (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar32 = *pbVar28;" (assignment_expression "bVar32 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) }) while (parenthesized_expression "(bVar32 != 0)" ( (binary_expression "bVar32 != 0" identifier != number_literal) )) ;) (expression_statement "set = 0;" (assignment_expression "set = 0" identifier = number_literal) ;) (if_statement "if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }" if (parenthesized_expression "(*pbVar17 == 0x2b)" ( (binary_expression "*pbVar17 == 0x2b" (pointer_expression "*pbVar17" * identifier) == number_literal) )) (compound_statement "{\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "set = -1;" (assignment_expression "set = -1" identifier = number_literal) ;) })) }))) (expression_statement "iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);" (assignment_expression "iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" identifier = (call_expression "X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" identifier (argument_list "(pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" ( identifier , (cast_expression "(char *)pbVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "*(uchar **)(iVar18 + 8)" * (cast_expression "(uchar **)(iVar18 + 8)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar18 == 0) goto LAB_0004f80b;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) })) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" identifier = (cast_expression "(stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_entry_count(pXVar23)" identifier (argument_list "(pXVar23)" ( identifier ))))) ;) (if_statement "if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }" if (parenthesized_expression "(psVar16 != (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar16 != (stack_st_CONF_VALUE *)0x0" identifier != (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }" { (if_statement "if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (compound_statement "{\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }" { (for_statement "for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }" for ( (assignment_expression "iVar10 = 0" identifier = number_literal) ; (comma_expression "iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) , (comma_expression "pcVar11 = (char *)local_548,\n                    iVar10 < iVar18" (assignment_expression "pcVar11 = (char *)local_548" identifier = (cast_expression "(char *)local_548" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "iVar10 < iVar18" identifier < identifier))) ; (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }" { (expression_statement "iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);" (assignment_expression "iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18)" identifier = (call_expression "OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18)" identifier (argument_list "(local_548,iVar10,iVar18,iVar18)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);" (assignment_expression "iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" identifier = (call_expression "X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" identifier (argument_list "(x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" ( identifier , (pointer_expression "*(char **)(iVar18 + 4)" * (cast_expression "(char **)(iVar18 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , identifier , (pointer_expression "*(uchar **)(iVar18 + 8)" * (cast_expression "(uchar **)(iVar18 + 8)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar18 == 0) goto LAB_0004f80b;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) })) (labeled_statement "LAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" statement_identifier : (expression_statement "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier (argument_list "(x_00,(EVP_PKEY *)pBVar14)" ( identifier , (cast_expression "(EVP_PKEY *)pBVar14" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar10 != 0) goto LAB_0004fbe2;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fbe2;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" else (compound_statement "{\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" { (labeled_statement "LAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" statement_identifier : (expression_statement "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier (argument_list "(x_00,(EVP_PKEY *)pBVar14)" ( identifier , (cast_expression "(EVP_PKEY *)pBVar14" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }" { (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004f99b;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;) })) (labeled_statement "LAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";" statement_identifier : (expression_statement "pcVar12 = "error, no objects specified in config file\n";" (assignment_expression "pcVar12 = "error, no objects specified in config file\n"" identifier = (string_literal ""error, no objects specified in config file\n"" " string_content escape_sequence ")) ;)) (expression_statement "pcVar11 = (char *)psVar16;" (assignment_expression "pcVar11 = (char *)psVar16" identifier = (cast_expression "(char *)psVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" else (compound_statement "{\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" { (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" identifier (argument_list "(x_00,uVar35,psVar21,psVar36)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }" if (parenthesized_expression "(DAT_000c4a90 == 0)" ( (binary_expression "DAT_000c4a90 == 0" identifier == number_literal) )) (compound_statement "{\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }" { (expression_statement "BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);" (call_expression "BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23)" identifier (argument_list "(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23)" ( identifier , (string_literal ""You are about to be asked to enter information that will be incorporated\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"into your certificate request.\n");" (call_expression "BIO_printf(DAT_000c458c,"into your certificate request.\n")" identifier (argument_list "(DAT_000c458c,"into your certificate request.\n")" ( identifier , (string_literal ""into your certificate request.\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );" (call_expression "BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        )" identifier (argument_list "(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        )" ( identifier , (string_literal ""What you are about to enter is what is called a Distinguished Name or a DN.\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;" (call_expression "BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")" identifier (argument_list "(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")" ( identifier , (string_literal ""There are quite a few fields but you can leave some blank\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");" (call_expression "BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n")" identifier (argument_list "(DAT_000c458c,"For some fields there will be a default value,\n")" ( identifier , (string_literal ""For some fields there will be a default value,\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");" (call_expression "BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n")" identifier (argument_list "(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n")" ( identifier , (string_literal ""If you enter \'.\', the field will be left blank.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"-----\n");" (call_expression "BIO_printf(DAT_000c458c,"-----\n")" identifier (argument_list "(DAT_000c458c,"-----\n")" ( identifier , (string_literal ""-----\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "iVar10 = OPENSSL_sk_num(psVar16);" (assignment_expression "iVar10 = OPENSSL_sk_num(psVar16)" identifier = (call_expression "OPENSSL_sk_num(psVar16)" identifier (argument_list "(psVar16)" ( identifier )))) ;) (expression_statement "local_52c = -1;" (assignment_expression "local_52c = -1" identifier = number_literal) ;) (if_statement "if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }" { (labeled_statement "LAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);" statement_identifier : (do_statement "do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);" do (compound_statement "{\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              }" { (do_statement "do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);" do (compound_statement "{\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                }" { (do_statement "do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));" do (compound_statement "{\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  }" { (expression_statement "local_52c = local_52c + 1;" (assignment_expression "local_52c = local_52c + 1" identifier = (binary_expression "local_52c + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = OPENSSL_sk_num(psVar16);" (assignment_expression "iVar10 = OPENSSL_sk_num(psVar16)" identifier = (call_expression "OPENSSL_sk_num(psVar16)" identifier (argument_list "(psVar16)" ( identifier )))) ;) (if_statement "if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }" if (parenthesized_expression "(iVar10 <= local_52c)" ( (binary_expression "iVar10 <= local_52c" identifier <= identifier) )) (compound_statement "{\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }" { (expression_statement "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" identifier = (cast_expression "(stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_entry_count(pXVar23)" identifier (argument_list "(pXVar23)" ( identifier ))))) ;) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;" if (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000510a8;" goto statement_identifier ;)) (if_statement "if (local_53c != 0) goto LAB_00051084;" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051084;" goto statement_identifier ;)) (if_statement "if (local_548 == (BIO *)0x0) goto LAB_00050951;" if (parenthesized_expression "(local_548 == (BIO *)0x0)" ( (binary_expression "local_548 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050951;" goto statement_identifier ;)) (expression_statement "uVar33 = OPENSSL_sk_num(local_548);" (assignment_expression "uVar33 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) ;) (expression_statement "uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);" (assignment_expression "uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar33 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }" if (parenthesized_expression "((0 < (int)uVar33) && (DAT_000c4a90 == 0))" ( (binary_expression "(0 < (int)uVar33) && (DAT_000c4a90 == 0)" (parenthesized_expression "(0 < (int)uVar33)" ( (binary_expression "0 < (int)uVar33" number_literal < (cast_expression "(int)uVar33" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(DAT_000c4a90 == 0)" ( (binary_expression "DAT_000c4a90 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }" { (expression_statement "BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);" (call_expression "BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35)" identifier (argument_list "(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35)" ( identifier , (string_literal ""\nPlease enter the following \'extra\' attributes\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");" (call_expression "BIO_printf(DAT_000c458c,"to be sent with your certificate request\n")" identifier (argument_list "(DAT_000c458c,"to be sent with your certificate request\n")" ( identifier , (string_literal ""to be sent with your certificate request\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "local_588 = -1;" (assignment_expression "local_588 = -1" identifier = number_literal) ;) (expression_statement "pcVar11 = (char *)local_484;" (assignment_expression "pcVar11 = (char *)local_484" identifier = (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00050afd;" goto statement_identifier ;) })) (expression_statement "iVar10 = OPENSSL_sk_value(psVar16,local_52c);" (assignment_expression "iVar10 = OPENSSL_sk_value(psVar16,local_52c)" identifier = (call_expression "OPENSSL_sk_value(psVar16,local_52c)" identifier (argument_list "(psVar16,local_52c)" ( identifier , identifier )))) ;) (expression_statement "pbVar17 = *(byte **)(iVar10 + 4);" (assignment_expression "pbVar17 = *(byte **)(iVar10 + 4)" identifier = (pointer_expression "*(byte **)(iVar10 + 4)" * (cast_expression "(byte **)(iVar10 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = FUN_0004d7e0();" (assignment_expression "iVar10 = FUN_0004d7e0()" identifier = (call_expression "FUN_0004d7e0()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0))" ( (binary_expression "(((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "(((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0))" ( (binary_expression "((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0))" ( (binary_expression "(iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" ( (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" identifier = (call_expression "FUN_0004d7e0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" ( (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" identifier = (call_expression "FUN_0004d7e0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" ( (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" identifier = (call_expression "FUN_0004d7e0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) ;) (expression_statement "bVar32 = *pbVar17;" (assignment_expression "bVar32 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar28 = pbVar17;" (assignment_expression "pbVar28 = pbVar17" identifier = identifier) ;) (if_statement "if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" if (parenthesized_expression "(bVar32 == 0)" ( (binary_expression "bVar32 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_514 = 0;\n                  }" { (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" else (compound_statement "{\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" { (do_statement "do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);" do (compound_statement "{\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    }" { (if_statement "if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }" if (parenthesized_expression "(((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a))" ( (binary_expression "((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)" (parenthesized_expression "((bVar32 & 0xfd) == 0x2c)" ( (binary_expression "(bVar32 & 0xfd) == 0x2c" (parenthesized_expression "(bVar32 & 0xfd)" ( (binary_expression "bVar32 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar32 == 0x3a)" ( (binary_expression "bVar32 == 0x3a" identifier == number_literal) ))) )) (compound_statement "{\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }" { (if_statement "if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }" if (parenthesized_expression "(*(byte *)((int)pbVar28 + 1) != 0)" ( (binary_expression "*(byte *)((int)pbVar28 + 1) != 0" (pointer_expression "*(byte *)((int)pbVar28 + 1)" * (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }" { (expression_statement "pbVar17 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar17 = (byte *)((int)pbVar28 + 1)" identifier = (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar28 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar28 = (byte *)((int)pbVar28 + 1)" identifier = (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar32 = *pbVar28;" (assignment_expression "bVar32 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) }) while (parenthesized_expression "(bVar32 != 0)" ( (binary_expression "bVar32 != 0" identifier != number_literal) )) ;) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) (if_statement "if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }" if (parenthesized_expression "(*pbVar17 == 0x2b)" ( (binary_expression "*pbVar17 == 0x2b" (pointer_expression "*pbVar17" * identifier) == number_literal) )) (compound_statement "{\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }" { (expression_statement "local_514 = -1;" (assignment_expression "local_514 = -1" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) })) }))) (expression_statement "iVar10 = OBJ_txt2nid((char *)pbVar17);" (assignment_expression "iVar10 = OBJ_txt2nid((char *)pbVar17)" identifier = (call_expression "OBJ_txt2nid((char *)pbVar17)" identifier (argument_list "((char *)pbVar17)" ( (cast_expression "(char *)pbVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) while (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) ;) (expression_statement "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);" (assignment_expression "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10)" identifier = (call_expression "FUN_0004de90("_default","Name",iVar10,iVar10)" identifier (argument_list "("_default","Name",iVar10,iVar10)" ( (string_literal ""_default"" " string_content ") , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) break;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" identifier (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484)" ( identifier , identifier , (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12)" identifier = (call_expression "FUN_0004de90("_value","Name",pcVar12,pcVar12)" identifier (argument_list "("_value","Name",pcVar12,pcVar12)" ( (string_literal ""_value"" " string_content ") , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) break;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" identifier (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484)" ( identifier , identifier , (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  ERR_clear_error();\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" identifier = (call_expression "FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" identifier (argument_list "(&DAT_00087c81,"Name",pcVar12,pcVar12)" ( (pointer_expression "&DAT_00087c81" & identifier) , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) break;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" identifier (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" ( identifier , identifier , (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_4a4" & identifier) )))) ;) (if_statement "if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4a4 = -1;" (assignment_expression "local_4a4 = -1" identifier = number_literal) ;) })) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18)" identifier = (call_expression "FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18)" identifier (argument_list "(&DAT_00087c86,"Name",iVar18,iVar18)" ( (pointer_expression "&DAT_00087c86" & identifier) , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) break;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" identifier (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" ( identifier , identifier , (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_4a0.flags" & (field_expression "local_4a0.flags" identifier . field_identifier)) )))) ;) (if_statement "if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4a0.flags = -1;" (assignment_expression "local_4a0.flags = -1" (field_expression "local_4a0.flags" identifier . field_identifier) = number_literal) ;) })) (expression_statement "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");" (assignment_expression "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" identifier = (call_expression "FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" identifier (argument_list "(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" ( identifier , (field_expression "local_4a0.flags" identifier . field_identifier) , identifier , (string_literal ""DN value"" " string_content ") , (string_literal ""DN default"" " string_content ") )))) ;) (if_statement "if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }" if (parenthesized_expression "(uVar27 < 2)" ( (binary_expression "uVar27 < 2" identifier < number_literal) )) (compound_statement "{\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }" { (if_statement "if (uVar27 == 0) break;" if (parenthesized_expression "(uVar27 == 0)" ( (binary_expression "uVar27 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000509ca;" goto statement_identifier ;) })) (expression_statement "iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);" (assignment_expression "iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" identifier = (call_expression "X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" identifier (argument_list "(pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , identifier )))) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;)) (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" identifier = (pointer_expression "&DAT_000c458c" & identifier)) ;) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "pcVar12 = "No template, please set one up.\n";" (assignment_expression "pcVar12 = "No template, please set one up.\n"" identifier = (string_literal ""No template, please set one up.\n"" " string_content escape_sequence ")) ;) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;" (assignment_expression "pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(char *)(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }))) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" identifier = (call_expression "FUN_0004dcf0(local_57c)" identifier (argument_list "(local_57c)" ( identifier )))) ;) (if_statement "if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;" if (parenthesized_expression "((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))" ( (binary_expression "(iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0)" ( (comma_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier (argument_list "(x_00,(EVP_PKEY *)pBVar14)" ( identifier , (cast_expression "(EVP_PKEY *)pBVar14" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) (if_statement "if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }" { (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004f99b:\n          x = X509_new();" statement_identifier : (expression_statement "x = X509_new();" (assignment_expression "x = X509_new()" identifier = (call_expression "X509_new()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0))))" ( (binary_expression "(x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))" (parenthesized_expression "(x != (X509 *)0x0)" ( (binary_expression "x != (X509 *)0x0" identifier != (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))" ( (parenthesized_expression "((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0))" ( (binary_expression "(local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)" (parenthesized_expression "(local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0))" ( (binary_expression "local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)" (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) && (parenthesized_expression "(DAT_000c4a94 == (CONF *)0x0)" ( (binary_expression "DAT_000c4a94 == (CONF *)0x0" identifier == (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(iVar10 = X509_set_version(x,2), iVar10 != 0)" ( (comma_expression "iVar10 = X509_set_version(x,2), iVar10 != 0" (assignment_expression "iVar10 = X509_set_version(x,2)" identifier = (call_expression "X509_set_version(x,2)" identifier (argument_list "(x,2)" ( identifier , number_literal )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }" { (if_statement "if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" if (parenthesized_expression "(local_554 == (ASN1_INTEGER *)0x0)" ( (binary_expression "local_554 == (ASN1_INTEGER *)0x0" identifier == (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }" { (expression_statement "pAVar15 = X509_get_serialNumber(x);" (assignment_expression "pAVar15 = X509_get_serialNumber(x)" identifier = (call_expression "X509_get_serialNumber(x)" identifier (argument_list "(x)" ( identifier )))) ;) (expression_statement "iVar10 = FUN_00074630(0,pAVar15);" (assignment_expression "iVar10 = FUN_00074630(0,pAVar15)" identifier = (call_expression "FUN_00074630(0,pAVar15)" identifier (argument_list "(0,pAVar15)" ( number_literal , identifier )))) ;) }) (else_clause "else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" else (compound_statement "{\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" { (expression_statement "iVar10 = X509_set_serialNumber(x,local_554);" (assignment_expression "iVar10 = X509_set_serialNumber(x,local_554)" identifier = (call_expression "X509_set_serialNumber(x,local_554)" identifier (argument_list "(x,local_554)" ( identifier , identifier )))) ;) }))) (if_statement "if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }" { (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "iVar10 = X509_set_issuer_name(x,pXVar23);" (assignment_expression "iVar10 = X509_set_issuer_name(x,pXVar23)" identifier = (call_expression "X509_set_issuer_name(x,pXVar23)" identifier (argument_list "(x,pXVar23)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }" { (expression_statement "iVar10 = 0x1e;" (assignment_expression "iVar10 = 0x1e" identifier = number_literal) ;) (if_statement "if (local_530 != 0) {\n                  iVar10 = local_530;\n                }" if (parenthesized_expression "(local_530 != 0)" ( (binary_expression "local_530 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar10 = local_530;\n                }" { (expression_statement "iVar10 = local_530;" (assignment_expression "iVar10 = local_530" identifier = identifier) ;) })) (expression_statement "iVar10 = FUN_00077500(x,0,0,iVar10);" (assignment_expression "iVar10 = FUN_00077500(x,0,0,iVar10)" identifier = (call_expression "FUN_00077500(x,0,0,iVar10)" identifier (argument_list "(x,0,0,iVar10)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }" { (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "iVar10 = X509_set_subject_name(x,pXVar23);" (assignment_expression "iVar10 = X509_set_subject_name(x,pXVar23)" identifier = (call_expression "X509_set_subject_name(x,pXVar23)" identifier (argument_list "(x,pXVar23)" ( identifier , identifier )))) ;) (if_statement "if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }" if (parenthesized_expression "(((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0))" ( (binary_expression "((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)" (parenthesized_expression "((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      )" ( (binary_expression "(iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)" ( (comma_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0" (assignment_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) , (binary_expression "pEVar24 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)" ( (comma_expression "iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0" (assignment_expression "iVar10 = X509_set_pubkey(x,pEVar24)" identifier = (call_expression "X509_set_pubkey(x,pEVar24)" identifier (argument_list "(x,pEVar24)" ( identifier , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }" { (expression_statement "X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);" (call_expression "X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0)" identifier (argument_list "(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0)" ( (pointer_expression "&local_4a0" & identifier) , identifier , identifier , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" identifier (argument_list "(&local_4a0,DAT_000c4a98)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (if_statement "if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" if (parenthesized_expression "((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0))" ( (binary_expression "(local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)" (parenthesized_expression "(local_528 == (char **)0x0)" ( (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)" ( (comma_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x)" identifier (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_528,x)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }" { (if_statement "if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }" if (parenthesized_expression "((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0))" ( (binary_expression "(DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)" (parenthesized_expression "(DAT_000c4a94 == (CONF *)0x0)" ( (binary_expression "DAT_000c4a94 == (CONF *)0x0" identifier == (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)" ( (comma_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x)" identifier (argument_list "(DAT_000c4a94,&local_4a0,"default",x)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (string_literal ""default"" " string_content ") , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }" { (if_statement "if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }" { (expression_statement "iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);" (assignment_expression "iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0)" identifier = (call_expression "X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0)" identifier (argument_list "(x,0x3b8,(void *)0x0,1,0)" ( identifier , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal )))) ;) (expression_statement "local_528 = (char **)(iVar10 + -1);" (assignment_expression "local_528 = (char **)(iVar10 + -1)" identifier = (cast_expression "(char **)(iVar10 + -1)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -1)" ( (binary_expression "iVar10 + -1" identifier + number_literal) )))) ;) (if_statement "if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }" if (parenthesized_expression "(local_528 != (char **)0x0)" ( (binary_expression "local_528 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }" { (expression_statement "pcVar11 = "Error adding poison extension\n";" (assignment_expression "pcVar11 = "Error adding poison extension\n"" identifier = (string_literal ""Error adding poison extension\n"" " string_content escape_sequence ")) ;) (expression_statement "ppcVar9 = local_528;" (assignment_expression "ppcVar9 = local_528" identifier = identifier) ;) (goto_statement "goto LAB_00050666;" goto statement_identifier ;) })) })) (expression_statement "iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);" (assignment_expression "iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558)" identifier = (call_expression "FUN_0004e150(x,local_4d0,local_510,local_558)" identifier (argument_list "(x,local_4d0,local_510,local_558)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }" { (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (goto_statement "goto LAB_0004fb6e;" goto statement_identifier ;) })) (expression_statement "bVar31 = local_51c != 0;" (assignment_expression "bVar31 = local_51c != 0" identifier = (binary_expression "local_51c != 0" identifier != number_literal)) ;) (if_statement "if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;" if (parenthesized_expression "((local_53c == 0) || (!bVar31))" ( (binary_expression "(local_53c == 0) || (!bVar31)" (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) ))) )) (goto_statement "goto LAB_0004fed2;" goto statement_identifier ;)) (expression_statement "pcVar11 = "Cannot modify certificate subject\n";" (assignment_expression "pcVar11 = "Cannot modify certificate subject\n"" identifier = (string_literal ""Cannot modify certificate subject\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004fb64;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "Error Loading command line extensions\n";" (assignment_expression "pcVar11 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (expression_statement "local_528 = (char **)0x0;" (assignment_expression "local_528 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar9 = (char **)0x0;" (assignment_expression "ppcVar9 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" else (compound_statement "{\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" { (expression_statement "pcVar11 = "Error Loading extension section %s\n";" (assignment_expression "pcVar11 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "ppcVar9 = (char **)0x0;" (assignment_expression "ppcVar9 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (labeled_statement "LAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9)" identifier (argument_list "(DAT_000c458c,pcVar11,local_528,ppcVar9)" ( identifier , identifier , identifier , identifier ))) ;)) })) })) })) })) })) (goto_statement "goto LAB_0004fb6e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);" statement_identifier : (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0)" identifier (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0)" ( (pointer_expression "&local_4a0" & identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" identifier (argument_list "(&local_4a0,DAT_000c4a98)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (if_statement "if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" if (parenthesized_expression "((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0))" ( (binary_expression "(local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)" (parenthesized_expression "(local_524 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)" ( (comma_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" identifier = (call_expression "X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" identifier (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (cast_expression "(char *)local_524" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }" { (if_statement "if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }" if (parenthesized_expression "((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             ))" ( (binary_expression "(DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )" (parenthesized_expression "(DAT_000c4a94 != (CONF *)0x0)" ( (binary_expression "DAT_000c4a94 != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )" ( (comma_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0" (assignment_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00)" identifier = (call_expression "X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00)" identifier (argument_list "(DAT_000c4a94,&local_4a0,"default",x_00)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (string_literal ""default"" " string_content ") , identifier )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }" { (expression_statement "pcVar12 = "Error Loading command line extensions\n";" (assignment_expression "pcVar12 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)pcVar11;" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)pcVar11" identifier = (cast_expression "(stack_st_CONF_VALUE *)pcVar11" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0005068b;" goto statement_identifier ;) })) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);" (assignment_expression "iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558)" identifier = (call_expression "FUN_0004e1b0(x_00,local_4d0,local_510,local_558)" identifier (argument_list "(x_00,local_4d0,local_510,local_558)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar10 != 0) goto LAB_0004fc7f;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fc7f;" goto statement_identifier ;)) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) }) (else_clause "else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" else (compound_statement "{\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" { (expression_statement "pcVar12 = "Error Loading extension section %s\n";" (assignment_expression "pcVar12 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11)" identifier (argument_list "(DAT_000c458c,pcVar12,local_524,pcVar11)" ( identifier , identifier , identifier , identifier ))) ;)) }))) (goto_statement "goto LAB_0004f82c;" goto statement_identifier ;) })) (expression_statement "local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);" (assignment_expression "local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8)" identifier = (cast_expression "(BIO *)FUN_00075fa0(local_52c,0x72,local_4b8)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fa0(local_52c,0x72,local_4b8)" identifier (argument_list "(local_52c,0x72,local_4b8)" ( identifier , number_literal , identifier ))))) ;) (if_statement "if (local_548 == (BIO *)0x0) goto LAB_0004f60c;" if (parenthesized_expression "(local_548 == (BIO *)0x0)" ( (binary_expression "local_548 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f60c;" goto statement_identifier ;)) (if_statement "if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" if (parenthesized_expression "(local_4b8 == (undefined *)0x4)" ( (binary_expression "local_4b8 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }" { (expression_statement "x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);" (assignment_expression "x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0)" identifier = (call_expression "d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0)" identifier (argument_list "(local_548,(X509_REQ **)0x0)" ( identifier , (cast_expression "(X509_REQ **)0x0" ( (type_descriptor "X509_REQ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) }) (else_clause "else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" else (compound_statement "{\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" { (expression_statement "x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);" (assignment_expression "x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier = (call_expression "PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier (argument_list "(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" ( identifier , (cast_expression "(X509_REQ **)0x0" ( (type_descriptor "X509_REQ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) }))) (if_statement "if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(x_00 == (X509_REQ *)0x0)" ( (binary_expression "x_00 == (X509_REQ *)0x0" identifier == (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);" (call_expression "BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0)" identifier (argument_list "(DAT_000c458c,"unable to load X509 request\n",0,0)" ( identifier , (string_literal ""unable to load X509 request\n"" " string_content escape_sequence ") , number_literal , number_literal ))) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (if_statement "if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }" { (if_statement "if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;" if (parenthesized_expression "(local_4d0 == (BIO *)0x0)" ( (binary_expression "local_4d0 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000505b7;" goto statement_identifier ;)) (goto_statement "goto LAB_0004f99b;" goto statement_identifier ;) })) (expression_statement "bVar31 = local_51c != 0;" (assignment_expression "bVar31 = local_51c != 0" identifier = (binary_expression "local_51c != 0" identifier != number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" statement_identifier : (if_statement "if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" if (parenthesized_expression "((bVar31 & (byte)local_564) != 0)" ( (binary_expression "(bVar31 & (byte)local_564) != 0" (parenthesized_expression "(bVar31 & (byte)local_564)" ( (binary_expression "bVar31 & (byte)local_564" identifier & (cast_expression "(byte)local_564" ( (type_descriptor "byte" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" { (if_statement "if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }" { (expression_statement "BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");" (call_expression "BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n")" identifier (argument_list "(DAT_000c458c,"Modifying Request\'s Subject\n")" ( identifier , (string_literal ""Modifying Request\'s Subject\n"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" identifier = (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier )))) ;) (expression_statement "FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35)" identifier (argument_list "(DAT_000c458c,"old subject=",uVar25,uVar35)" ( identifier , (string_literal ""old subject="" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" identifier = (call_expression "FUN_0004dcf0(local_57c)" identifier (argument_list "(local_57c)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004ff17;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004ff17;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" identifier = (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier )))) ;) (expression_statement "FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35)" identifier (argument_list "(DAT_000c458c,"new subject=",uVar25,uVar35)" ( identifier , (string_literal ""new subject="" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" else (compound_statement "{\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" { (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" identifier = (call_expression "FUN_0004dcf0(local_57c)" identifier (argument_list "(local_57c)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }" { (labeled_statement "LAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";" statement_identifier : (expression_statement "pcVar11 = "ERROR: cannot modify subject\n";" (assignment_expression "pcVar11 = "ERROR: cannot modify subject\n"" identifier = (string_literal ""ERROR: cannot modify subject\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar11)" identifier (argument_list "(DAT_000c458c,pcVar11)" ( identifier , identifier ))) ;)) (labeled_statement "LAB_0004fb6e:\n            local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_0004fc7f:\n      local_564 = local_578 & local_564;" statement_identifier : (expression_statement "local_564 = local_578 & local_564;" (assignment_expression "local_564 = local_578 & local_564" identifier = (binary_expression "local_578 & local_564" identifier & identifier)) ;)) (if_statement "if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(local_564 != 0)" ( (binary_expression "local_564 != 0" identifier != number_literal) )) (compound_statement "{\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }" { (expression_statement "local_560 = local_4d0;" (assignment_expression "local_560 = local_4d0" identifier = identifier) ;) (if_statement "if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" if (parenthesized_expression "((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0))" ( (binary_expression "(local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)" (parenthesized_expression "(local_4d0 == (BIO *)0x0)" ( (binary_expression "local_4d0 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)" ( (comma_expression "local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0" (assignment_expression "local_560 = (BIO *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(BIO *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) , (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" else (compound_statement "{\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" { (expression_statement "iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);" (assignment_expression "iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560)" identifier = (call_expression "X509_REQ_verify(x_00,(EVP_PKEY *)local_560)" identifier (argument_list "(x_00,(EVP_PKEY *)local_560)" ( identifier , (cast_expression "(EVP_PKEY *)local_560" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (compound_statement "{\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }" { (if_statement "if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }" { (expression_statement "BIO_printf(DAT_000c458c,"verify failure\n");" (call_expression "BIO_printf(DAT_000c458c,"verify failure\n")" identifier (argument_list "(DAT_000c458c,"verify failure\n")" ( identifier , (string_literal ""verify failure\n"" " string_content escape_sequence ") ))) ;) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) }) (else_clause "else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" else (compound_statement "{\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" { (expression_statement "BIO_printf(DAT_000c458c,"verify OK\n");" (call_expression "BIO_printf(DAT_000c458c,"verify OK\n")" identifier (argument_list "(DAT_000c458c,"verify OK\n")" ( identifier , (string_literal ""verify OK\n"" " string_content escape_sequence ") ))) ;) }))) (goto_statement "goto LAB_0004fce0;" goto statement_identifier ;) })) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (labeled_statement "LAB_0004fce0:\n      puVar6 = local_4b4;" statement_identifier : (expression_statement "puVar6 = local_4b4;" (assignment_expression "puVar6 = local_4b4" identifier = identifier) ;)) (if_statement "if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }" if (parenthesized_expression "(((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0))" ( (binary_expression "((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)" (parenthesized_expression "((local_580 & (local_594 ^ 1)) != 0)" ( (binary_expression "(local_580 & (local_594 ^ 1)) != 0" (parenthesized_expression "(local_580 & (local_594 ^ 1))" ( (binary_expression "local_580 & (local_594 ^ 1)" identifier & (parenthesized_expression "(local_594 ^ 1)" ( (binary_expression "local_594 ^ 1" identifier ^ number_literal) ))) )) != number_literal) )) && (parenthesized_expression "((local_584 == 0 && local_56c == 0) && local_520 == 0)" ( (binary_expression "(local_584 == 0 && local_56c == 0) && local_520 == 0" (parenthesized_expression "(local_584 == 0 && local_56c == 0)" ( (binary_expression "local_584 == 0 && local_56c == 0" (binary_expression "local_584 == 0" identifier == number_literal) && (binary_expression "local_56c == 0" identifier == number_literal)) )) && (binary_expression "local_520 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }" { (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" if (parenthesized_expression "((local_518 == (char *)0x0) || (local_50c == (char *)0x0))" ( (binary_expression "(local_518 == (char *)0x0) || (local_50c == (char *)0x0)" (parenthesized_expression "(local_518 == (char *)0x0)" ( (binary_expression "local_518 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_50c == (char *)0x0)" ( (binary_expression "local_50c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        iVar10 = 0x77;\n      }" { (expression_statement "iVar10 = 0x77;" (assignment_expression "iVar10 = 0x77" identifier = number_literal) ;) }) (else_clause "else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" else (compound_statement "{\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" { (expression_statement "iVar10 = strcmp(local_518,local_50c);" (assignment_expression "iVar10 = strcmp(local_518,local_50c)" identifier = (call_expression "strcmp(local_518,local_50c)" identifier (argument_list "(local_518,local_50c)" ( identifier , identifier )))) ;) (expression_statement "iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;" (assignment_expression "iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77" identifier = (binary_expression "(-(uint)(iVar10 == 0) & 0xffffffea) + 0x77" (parenthesized_expression "(-(uint)(iVar10 == 0) & 0xffffffea)" ( (binary_expression "-(uint)(iVar10 == 0) & 0xffffffea" (unary_expression "-(uint)(iVar10 == 0)" - (call_expression "(uint)(iVar10 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);" (assignment_expression "local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6)" identifier = (cast_expression "(BIO *)FUN_00075fa0(local_50c,iVar10,puVar6)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fa0(local_50c,iVar10,puVar6)" identifier (argument_list "(local_50c,iVar10,puVar6)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(local_560 == (BIO *)0x0)" ( (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (if_statement "if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }" if (parenthesized_expression "(local_56c != 0)" ( (binary_expression "local_56c != 0" identifier != number_literal) )) (compound_statement "{\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }" { (expression_statement "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (assignment_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (if_statement "if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "(pEVar24 == (EVP_PKEY *)0x0)" ( (binary_expression "pEVar24 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }" { (expression_statement "BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);" (call_expression "BIO_printf(DAT_000c458c,"Error getting public key\n",0,0)" identifier (argument_list "(DAT_000c458c,"Error getting public key\n",0,0)" ( identifier , (string_literal ""Error getting public key\n"" " string_content escape_sequence ") , number_literal , number_literal ))) ;) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_564 = local_56c;" (assignment_expression "local_564 = local_56c" identifier = identifier) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "PEM_write_bio_PUBKEY(local_560,pEVar24);" (call_expression "PEM_write_bio_PUBKEY(local_560,pEVar24)" identifier (argument_list "(local_560,pEVar24)" ( identifier , identifier ))) ;) })) (expression_statement "uVar19 = local_4a8;" (assignment_expression "uVar19 = local_4a8" identifier = identifier) ;) (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (if_statement "if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }" if (parenthesized_expression "(local_594 == 0)" ( (binary_expression "local_594 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }" { (if_statement "if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }" if (parenthesized_expression "(local_584 == 0)" ( (binary_expression "local_584 == 0" identifier == number_literal) )) (compound_statement "{\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }" { (expression_statement "local_598 = 1;" (assignment_expression "local_598 = 1" identifier = number_literal) ;) (if_statement "if (local_520 == 0) goto LAB_0004fe2d;" if (parenthesized_expression "(local_520 == 0)" ( (binary_expression "local_520 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fe2d;" goto statement_identifier ;)) (expression_statement "local_598 = local_520;" (assignment_expression "local_598 = local_520" identifier = identifier) ;) (if_statement "if (local_53c == 0) goto LAB_00050366;" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050366;" goto statement_identifier ;)) (expression_statement "local_598 = local_53c;" (assignment_expression "local_598 = local_53c" identifier = identifier) ;) (labeled_statement "LAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)X509_get0_pubkey(x);" (assignment_expression "local_570 = (EVP_PKEY *)X509_get0_pubkey(x)" identifier = (cast_expression "(EVP_PKEY *)X509_get0_pubkey(x)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_pubkey(x)" identifier (argument_list "(x)" ( identifier ))))) ;)) (labeled_statement "LAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;" statement_identifier : (expression_statement "puVar6 = PTR_stdout_000bdfa8;" (assignment_expression "puVar6 = PTR_stdout_000bdfa8" identifier = identifier) ;)) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }" { (expression_statement "fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);" (call_expression "fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8)" identifier (argument_list "("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8)" ( (string_literal ""Modulus=unavailable\n"" " string_content escape_sequence ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_000bdfa8" * (cast_expression "(FILE **)PTR_stdout_000bdfa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "local_564 = local_598;" (assignment_expression "local_564 = local_598" identifier = identifier) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);" (call_expression "fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8)" identifier (argument_list "("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8)" ( (string_literal ""Modulus="" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_000bdfa8" * (cast_expression "(FILE **)PTR_stdout_000bdfa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "iVar10 = EVP_PKEY_base_id(local_570);" (assignment_expression "iVar10 = EVP_PKEY_base_id(local_570)" identifier = (call_expression "EVP_PKEY_base_id(local_570)" identifier (argument_list "(local_570)" ( identifier )))) ;) (if_statement "if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" if (parenthesized_expression "(iVar10 == 6)" ( (binary_expression "iVar10 == 6" identifier == number_literal) )) (compound_statement "{\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }" { (expression_statement "uVar35 = EVP_PKEY_get0_RSA(local_570);" (assignment_expression "uVar35 = EVP_PKEY_get0_RSA(local_570)" identifier = (call_expression "EVP_PKEY_get0_RSA(local_570)" identifier (argument_list "(local_570)" ( identifier )))) ;) (expression_statement "RSA_get0_key(uVar35,&local_4a0,0,0);" (call_expression "RSA_get0_key(uVar35,&local_4a0,0,0)" identifier (argument_list "(uVar35,&local_4a0,0,0)" ( identifier , (pointer_expression "&local_4a0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "BN_print(local_560,(BIGNUM *)local_4a0.flags);" (call_expression "BN_print(local_560,(BIGNUM *)local_4a0.flags)" identifier (argument_list "(local_560,(BIGNUM *)local_4a0.flags)" ( identifier , (cast_expression "(BIGNUM *)local_4a0.flags" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_4a0.flags" identifier . field_identifier)) ))) ;) }) (else_clause "else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" else (compound_statement "{\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" { (expression_statement "fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);" (call_expression "fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6)" identifier (argument_list "("Wrong Algorithm type",1,0x14,*(FILE **)puVar6)" ( (string_literal ""Wrong Algorithm type"" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)puVar6" * (cast_expression "(FILE **)puVar6" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) }))) (expression_statement "fputc(10,*(FILE **)puVar6);" (call_expression "fputc(10,*(FILE **)puVar6)" identifier (argument_list "(10,*(FILE **)puVar6)" ( number_literal , (pointer_expression "*(FILE **)puVar6" * (cast_expression "(FILE **)puVar6" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (goto_statement "goto LAB_0004fe2d;" goto statement_identifier ;) })) (expression_statement "local_598 = local_584;" (assignment_expression "local_598 = local_584" identifier = identifier) ;) (if_statement "if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }" { (expression_statement "local_598 = local_53c;" (assignment_expression "local_598 = local_53c" identifier = identifier) ;) (labeled_statement "LAB_0004ffc7:\n          uVar35 = FUN_00073120();" statement_identifier : (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pXVar23 = X509_get_subject_name(x);" (assignment_expression "pXVar23 = X509_get_subject_name(x)" identifier = (call_expression "X509_get_subject_name(x)" identifier (argument_list "(x)" ( identifier )))) ;) (expression_statement "FUN_00073b90(local_560,"subject=",pXVar23,uVar35);" (call_expression "FUN_00073b90(local_560,"subject=",pXVar23,uVar35)" identifier (argument_list "(local_560,"subject=",pXVar23,uVar35)" ( identifier , (string_literal ""subject="" " string_content ") , identifier , identifier ))) ;) (if_statement "if (local_520 == 0) goto LAB_0004fff8;" if (parenthesized_expression "(local_520 == 0)" ( (binary_expression "local_520 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fff8;" goto statement_identifier ;)) (goto_statement "goto LAB_0004fdbe;" goto statement_identifier ;) })) (labeled_statement "LAB_000502e6:\n        uVar35 = FUN_00073120();" statement_identifier : (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" identifier = (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier )))) ;) (expression_statement "FUN_00073b90(local_560,"subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(local_560,"subject=",uVar25,uVar35)" identifier (argument_list "(local_560,"subject=",uVar25,uVar35)" ( identifier , (string_literal ""subject="" " string_content ") , identifier , identifier ))) ;) (if_statement "if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }" { (labeled_statement "LAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (assignment_expression "local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;)) (goto_statement "goto LAB_0004fdce;" goto statement_identifier ;) })) (if_statement "if (local_580 == 0) goto LAB_0004fe3b;" if (parenthesized_expression "(local_580 == 0)" ( (binary_expression "local_580 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fe3b;" goto statement_identifier ;)) (labeled_statement "LAB_0005031e:\n        local_564 = 0;" statement_identifier : (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (compound_statement "{\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }" { (expression_statement "uVar22 = FUN_00073120();" (assignment_expression "uVar22 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);" (assignment_expression "local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19)" identifier = (call_expression "X509_REQ_print_ex(local_560,x_00,uVar22,uVar19)" identifier (argument_list "(local_560,x_00,uVar22,uVar19)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }" if (parenthesized_expression "(local_598 == 0)" ( (binary_expression "local_598 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }" { (expression_statement "pcVar11 = "Error printing certificate request\n";" (assignment_expression "pcVar11 = "Error printing certificate request\n"" identifier = (string_literal ""Error printing certificate request\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00050628;" goto statement_identifier ;) })) (if_statement "if (local_584 != 0) goto LAB_000502e6;" if (parenthesized_expression "(local_584 != 0)" ( (binary_expression "local_584 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000502e6;" goto statement_identifier ;)) (if_statement "if (local_520 != 0) goto LAB_00050366;" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00050366;" goto statement_identifier ;)) (labeled_statement "LAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;" statement_identifier : (if_statement "if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;" if (parenthesized_expression "(local_53c != 0 || local_580 != 0)" ( (binary_expression "local_53c != 0 || local_580 != 0" (binary_expression "local_53c != 0" identifier != number_literal) || (binary_expression "local_580 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0004fff8;" goto statement_identifier ;))) (labeled_statement "LAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" statement_identifier : (if_statement "if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" if (parenthesized_expression "(local_4b4 == (undefined *)0x4)" ( (binary_expression "local_4b4 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }" { (expression_statement "iVar10 = i2d_X509_REQ_bio(local_560,x_00);" (assignment_expression "iVar10 = i2d_X509_REQ_bio(local_560,x_00)" identifier = (call_expression "i2d_X509_REQ_bio(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar35 = extraout_EDX_02;" (assignment_expression "uVar35 = extraout_EDX_02" identifier = identifier) ;) }) (else_clause "else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" else (if_statement "if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }" { (expression_statement "iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);" (assignment_expression "iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00)" identifier = (call_expression "PEM_write_bio_X509_REQ_NEW(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar35 = extraout_EDX_00;" (assignment_expression "uVar35 = extraout_EDX_00" identifier = identifier) ;) }) (else_clause "else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" else (compound_statement "{\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" { (expression_statement "iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);" (assignment_expression "iVar10 = PEM_write_bio_X509_REQ(local_560,x_00)" identifier = (call_expression "PEM_write_bio_X509_REQ(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar35 = extraout_EDX_01;" (assignment_expression "uVar35 = extraout_EDX_01" identifier = identifier) ;) })))))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar10 != 0) goto LAB_0004e57b;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (expression_statement "pcVar11 = "unable to write X509 request\n";" (assignment_expression "pcVar11 = "unable to write X509 request\n"" identifier = (string_literal ""unable to write X509 request\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" else (compound_statement "{\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" { (expression_statement "uVar22 = FUN_00073120();" (assignment_expression "uVar22 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_598 = X509_print_ex(local_560,x,uVar22,uVar19);" (assignment_expression "local_598 = X509_print_ex(local_560,x,uVar22,uVar19)" identifier = (call_expression "X509_print_ex(local_560,x,uVar22,uVar19)" identifier (argument_list "(local_560,x,uVar22,uVar19)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }" if (parenthesized_expression "(local_598 == 0)" ( (binary_expression "local_598 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }" { (expression_statement "pcVar11 = "Error printing certificate\n";" (assignment_expression "pcVar11 = "Error printing certificate\n"" identifier = (string_literal ""Error printing certificate\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11,0,0);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,0,0)" identifier (argument_list "(DAT_000c458c,pcVar11,0,0)" ( identifier , identifier , number_literal , number_literal ))) ;)) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (local_584 != 0) goto LAB_0004ffc7;" if (parenthesized_expression "(local_584 != 0)" ( (binary_expression "local_584 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004ffc7;" goto statement_identifier ;)) (if_statement "if (local_520 != 0) goto LAB_0004fdbe;" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fdbe;" goto statement_identifier ;)) (labeled_statement "LAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;" statement_identifier : (if_statement "if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;" if (parenthesized_expression "((local_53c & (local_580 ^ 1)) == 0)" ( (binary_expression "(local_53c & (local_580 ^ 1)) == 0" (parenthesized_expression "(local_53c & (local_580 ^ 1))" ( (binary_expression "local_53c & (local_580 ^ 1)" identifier & (parenthesized_expression "(local_580 ^ 1)" ( (binary_expression "local_580 ^ 1" identifier ^ number_literal) ))) )) == number_literal) )) (goto_statement "goto LAB_0005031e;" goto statement_identifier ;))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (x == (X509 *)0x0) goto LAB_0004e57b;" if (parenthesized_expression "(x == (X509 *)0x0)" ( (binary_expression "x == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (if_statement "if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" if (parenthesized_expression "(local_4b4 == (undefined *)0x4)" ( (binary_expression "local_4b4 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar10 = i2d_X509_bio(local_560,x);\n        }" { (expression_statement "iVar10 = i2d_X509_bio(local_560,x);" (assignment_expression "iVar10 = i2d_X509_bio(local_560,x)" identifier = (call_expression "i2d_X509_bio(local_560,x)" identifier (argument_list "(local_560,x)" ( identifier , identifier )))) ;) }) (else_clause "else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" else (compound_statement "{\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" { (expression_statement "iVar10 = PEM_write_bio_X509(local_560,x);" (assignment_expression "iVar10 = PEM_write_bio_X509(local_560,x)" identifier = (call_expression "PEM_write_bio_X509(local_560,x)" identifier (argument_list "(local_560,x)" ( identifier , identifier )))) ;) }))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar10 != 0) goto LAB_0004e57b;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (expression_statement "pcVar11 = "unable to write X509 certificate\n";" (assignment_expression "pcVar11 = "unable to write X509 certificate\n"" identifier = (string_literal ""unable to write X509 certificate\n"" " string_content escape_sequence ")) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) }))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35)" identifier (argument_list "(DAT_000c458c,pcVar11,uVar35,uVar35)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_564 = local_598;" (assignment_expression "local_564 = local_598" identifier = identifier) ;) })))) }) (else_clause "else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" else (compound_statement "{\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" { (expression_statement "local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");" (assignment_expression "local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" identifier = (cast_expression "(BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" identifier (argument_list "(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" ( identifier , identifier , number_literal , identifier , identifier , (string_literal ""Private Key"" " string_content ") ))))) ;) (expression_statement "local_4d0 = local_548;" (assignment_expression "local_4d0 = local_548" identifier = identifier) ;) (if_statement "if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }" if (parenthesized_expression "(local_548 != (BIO *)0x0)" ( (binary_expression "local_548 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }" { (expression_statement "FUN_00072430(DAT_000c4a98,&DAT_00091821);" (call_expression "FUN_00072430(DAT_000c4a98,&DAT_00091821)" identifier (argument_list "(DAT_000c4a98,&DAT_00091821)" ( identifier , (pointer_expression "&DAT_00091821" & identifier) ))) ;) (goto_statement "goto LAB_0004f1d1;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;" statement_identifier : (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (while_statement "while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }" while (parenthesized_expression "(iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0)" ( (comma_expression "iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0" (assignment_expression "iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1)" identifier = (call_expression "X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1)" identifier (argument_list "(x_00,iVar10,local_4ec,local_420,-1)" ( identifier , identifier , identifier , identifier , number_literal )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) )) (compound_statement "{\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }" { (labeled_statement "LAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);" statement_identifier : (do_statement "do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);" do (compound_statement "{\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    }" { (expression_statement "local_588 = local_588 + 1;" (assignment_expression "local_588 = local_588 + 1" identifier = (binary_expression "local_588 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = OPENSSL_sk_num(local_548);" (assignment_expression "iVar10 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) ;) (if_statement "if (iVar10 <= local_588) goto LAB_00050951;" if (parenthesized_expression "(iVar10 <= local_588)" ( (binary_expression "iVar10 <= local_588" identifier <= identifier) )) (goto_statement "goto LAB_00050951;" goto statement_identifier ;)) (expression_statement "iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);" (assignment_expression "iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10)" identifier = (call_expression "OPENSSL_sk_value(local_548,local_588,iVar10,iVar10)" identifier (argument_list "(local_548,local_588,iVar10,iVar10)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));" (assignment_expression "iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4))" identifier = (call_expression "OBJ_txt2nid(*(char **)(iVar10 + 4))" identifier (argument_list "(*(char **)(iVar10 + 4))" ( (pointer_expression "*(char **)(iVar10 + 4)" * (cast_expression "(char **)(iVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) )))) ;) }) while (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) ;)) (expression_statement "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);" (assignment_expression "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10)" identifier = (call_expression "FUN_0004de90("_default","Name",iVar10,iVar10)" identifier (argument_list "("_default","Name",iVar10,iVar10)" ( (string_literal ""_default"" " string_content ") , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }" { (labeled_statement "LAB_00050d30:\n      puVar26 = &DAT_000c458c;" statement_identifier : (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" identifier = (pointer_expression "&DAT_000c458c" & identifier)) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" identifier (argument_list "(DAT_000c4a98,(char *)section,pcVar11)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12)" identifier = (call_expression "FUN_0004de90("_value","Name",pcVar12,pcVar12)" identifier (argument_list "("_value","Name",pcVar12,pcVar12)" ( (string_literal ""_value"" " string_content ") , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" identifier (argument_list "(DAT_000c4a98,(char *)section,pcVar11)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" identifier = (call_expression "FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" identifier (argument_list "(&DAT_00087c81,"Name",pcVar12,pcVar12)" ( (pointer_expression "&DAT_00087c81" & identifier) , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" identifier (argument_list "(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&local_4a4" & identifier) )))) ;) (expression_statement "uVar35 = extraout_ECX_00;" (assignment_expression "uVar35 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4a4 = -1;" (assignment_expression "local_4a4 = -1" identifier = number_literal) ;) (expression_statement "uVar35 = extraout_ECX_01;" (assignment_expression "uVar35 = extraout_ECX_01" identifier = identifier) ;) })) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35)" identifier = (call_expression "FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35)" identifier (argument_list "(&DAT_00087c86,"Name",uVar35,uVar35)" ( (pointer_expression "&DAT_00087c86" & identifier) , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" identifier (argument_list "(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&local_4a0.flags" & (field_expression "local_4a0.flags" identifier . field_identifier)) )))) ;) (if_statement "if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4a0.flags = -1;" (assignment_expression "local_4a0.flags = -1" (field_expression "local_4a0.flags" identifier . field_identifier) = number_literal) ;) })) (expression_statement "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;" (assignment_expression "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" identifier = (call_expression "FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" identifier (argument_list "(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" ( identifier , (field_expression "local_4a0.flags" identifier . field_identifier) , identifier , (string_literal ""Attribute value"" " string_content ") , (string_literal ""Attribute default"" " string_content ") )))) ;) (if_statement "if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }" if (parenthesized_expression "(uVar27 < 2)" ( (binary_expression "uVar27 < 2" identifier < number_literal) )) (compound_statement "{\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }" { (if_statement "if (uVar27 == 0) goto LAB_00050d30;" if (parenthesized_expression "(uVar27 == 0)" ( (binary_expression "uVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (goto_statement "goto LAB_00050afd;" goto statement_identifier ;) })) })) (expression_statement "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);" (assignment_expression "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" identifier = (cast_expression "(undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" identifier (argument_list "(DAT_000c458c,"Error adding attribute\n",0,0)" ( identifier , (string_literal ""Error adding attribute\n"" " string_content escape_sequence ") , number_literal , number_literal ))))) ;) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (labeled_statement "LAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);" (call_expression "BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26)" identifier (argument_list "(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26)" ( identifier , (string_literal ""problems making Certificate Request\n"" " string_content escape_sequence ") , identifier , identifier ))) ;)) (labeled_statement "LAB_0004f82c:\n  local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);" statement_identifier : (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;)) (labeled_statement "LAB_0004e57b:\n  NCONF_free(DAT_000c4a98);" statement_identifier : (expression_statement "NCONF_free(DAT_000c4a98);" (call_expression "NCONF_free(DAT_000c4a98)" identifier (argument_list "(DAT_000c4a98)" ( identifier ))) ;)) (expression_statement "NCONF_free(DAT_000c4a94);" (call_expression "NCONF_free(DAT_000c4a94)" identifier (argument_list "(DAT_000c4a94)" ( identifier ))) ;) (expression_statement "BIO_free(local_550);" (call_expression "BIO_free(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "BIO_free(local_548);" (call_expression "BIO_free(local_548)" identifier (argument_list "(local_548)" ( identifier ))) ;) (expression_statement "BIO_free_all(local_560);" (call_expression "BIO_free_all(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (expression_statement "EVP_PKEY_free((EVP_PKEY *)local_4d0);" (call_expression "EVP_PKEY_free((EVP_PKEY *)local_4d0)" identifier (argument_list "((EVP_PKEY *)local_4d0)" ( (cast_expression "(EVP_PKEY *)local_4d0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);" (call_expression "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570)" identifier (argument_list "((EVP_PKEY_CTX *)local_570)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "OPENSSL_sk_free(local_55c);" (call_expression "OPENSSL_sk_free(local_55c)" identifier (argument_list "(local_55c)" ( identifier ))) ;) (expression_statement "OPENSSL_sk_free(local_558);" (call_expression "OPENSSL_sk_free(local_558)" identifier (argument_list "(local_558)" ( identifier ))) ;) (expression_statement "OPENSSL_LH_doall(local_54c,FUN_0004d6e0);" (call_expression "OPENSSL_LH_doall(local_54c,FUN_0004d6e0)" identifier (argument_list "(local_54c,FUN_0004d6e0)" ( identifier , identifier ))) ;) (expression_statement "OPENSSL_LH_free(local_54c);" (call_expression "OPENSSL_LH_free(local_54c)" identifier (argument_list "(local_54c)" ( identifier ))) ;) (expression_statement "ENGINE_free(local_544);" (call_expression "ENGINE_free(local_544)" identifier (argument_list "(local_544)" ( identifier ))) ;) (expression_statement "uVar35 = 0x3cc;" (assignment_expression "uVar35 = 0x3cc" identifier = number_literal) ;) (expression_statement "CRYPTO_free(local_4c8);" (call_expression "CRYPTO_free(local_4c8)" identifier (argument_list "(local_4c8)" ( identifier ))) ;) (expression_statement "X509_REQ_free(x_00);" (call_expression "X509_REQ_free(x_00)" identifier (argument_list "(x_00)" ( identifier ))) ;) (expression_statement "X509_free(x);" (call_expression "X509_free(x)" identifier (argument_list "(x)" ( identifier ))) ;) (expression_statement "ASN1_INTEGER_free(local_554);" (call_expression "ASN1_INTEGER_free(local_554)" identifier (argument_list "(local_554)" ( identifier ))) ;) (expression_statement "FUN_00074230(local_540,pcVar34,uVar35);" (call_expression "FUN_00074230(local_540,pcVar34,uVar35)" identifier (argument_list "(local_540,pcVar34,uVar35)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }" if (parenthesized_expression "(local_4c4 != local_538)" ( (binary_expression "local_4c4 != local_538" identifier != identifier) )) (compound_statement "{\n    CRYPTO_free(local_4c4);\n  }" { (expression_statement "CRYPTO_free(local_4c4);" (call_expression "CRYPTO_free(local_4c4)" identifier (argument_list "(local_4c4)" ( identifier ))) ;) })) (if_statement "if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }" if (parenthesized_expression "(local_4c0 != local_534)" ( (binary_expression "local_4c0 != local_534" identifier != identifier) )) (compound_statement "{\n    CRYPTO_free(local_4c0);\n  }" { (expression_statement "CRYPTO_free(local_4c0);" (call_expression "CRYPTO_free(local_4c0)" identifier (argument_list "(local_4c0)" ( identifier ))) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }" { comment (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_564;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nint req_main(int argc,char **argv)\n\n{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  EVP_PKEY *pEVar7;\n  bool bVar8;\n  char cVar9;\n  EVP_CIPHER *pEVar10;\n  char **ppcVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  BIO *pBVar15;\n  ushort **ppuVar16;\n  ASN1_INTEGER *pAVar17;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar18;\n  byte *pbVar19;\n  int iVar20;\n  ulong uVar21;\n  undefined1 *result;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar22;\n  ulong uVar23;\n  X509_NAME *pXVar24;\n  EVP_PKEY *pEVar25;\n  X509_NAME *pXVar26;\n  BIO **ppBVar27;\n  char *value;\n  char *pcVar28;\n  uint uVar29;\n  stack_st_CONF_VALUE *extraout_ECX;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar30;\n  int iVar31;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  byte bVar35;\n  undefined8 uVar36;\n  undefined4 uVar37;\n  stack_st_CONF_VALUE *psVar38;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  int local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  stack_st_OPENSSL_STRING *local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  ENGINE *local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  char *local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  char *local_51c;\n  char *local_518;\n  char *local_514;\n  EVP_MD *local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  ulong local_4ec;\n  EVP_PKEY *pkey;\n  EVP_MD *md_alg;\n  char *keyalgstr;\n  char *passin;\n  char *passout;\n  int pkey_type;\n  int informat;\n  int outformat;\n  int keyform;\n  long newkey;\n  ulong reqflag;\n  long n_min;\n  X509V3_CTX ctx;\n  char buf [100];\n  char buf_1 [1024];\n  \n  bVar35 = 0;\n  bVar34 = false;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  pkey = (EVP_PKEY *)0x0;\n  md_alg = (EVP_MD *)0x0;\n  local_560 = (BIO *)default_config_file;\n  keyalgstr = (char *)0x0;\n  passin = (char *)0x0;\n  passout = (char *)0x0;\n  pkey_type = -1;\n  informat = 0x8005;\n  outformat = 0x8005;\n  keyform = 0x8005;\n  newkey = -1;\n  reqflag = 0;\n  pEVar10 = EVP_des_ede3_cbc();\n  result = req_options;\n  ppcVar11 = (char **)opt_init(argc,argv,(OPTIONS *)req_options);\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = (char *)0x0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = (char *)0x0;\n  local_50c = (char *)0x0;\n  local_52c = (char *)0x0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = (EVP_MD *)0x0;\n  local_54c = 0;\n  local_558 = (stack_st_OPENSSL_STRING *)0x0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = (ENGINE *)0x0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar12 = opt_next();\n  if (iVar12 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar12 = opt_num_rest();\n  if (iVar12 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf((BIO *)bio_err,"Ignoring -days; not generating a certificate\n");\n  }\n  pEVar7 = pkey;\n  bVar8 = (bool)(local_52c == (char *)0x0 & (byte)local_53c);\n  bVar32 = bVar34;\n  if (bVar8 != false) {\n    bVar34 = bVar8;\n    bVar32 = true;\n  }\n  pcVar13 = (char *)&passin;\n  iVar12 = app_passwd(local_534,(char *)local_548,(char **)pcVar13,&passout);\n  if (iVar12 == 0) {\n    pcVar14 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar13 = (char *)local_560;\n    BIO_printf((BIO *)bio_err,"Using configuration from %s\n",local_560);\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);\n    }\n  }\n  if (((BIO *)default_config_file != local_560) &&\n     (iVar12 = app_load_modules(req_conf), iVar12 == 0)) goto LAB_0004eb16;\n  if (req_conf != (CONF *)0x0) {\n    pcVar13 = "oid_file";\n    pcVar14 = NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file");\n    if (pcVar14 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      pBVar15 = BIO_new_file(pcVar14,"r");\n      if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }\n    }\n  }\n  iVar12 = add_oid_section(req_conf);\n  if (iVar12 != 0) {\n    if (md_alg == (EVP_MD *)0x0) {\n      pcVar13 = "default_md";\n      pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");\n      if (pcVar14 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar13 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n      iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (addext_conf != (CONF *)0x0) {\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);\n      iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((passin == (char *)0x0) &&\n       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((passout == (char *)0x0) &&\n       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar13 = "string_mask";\n    psVar18 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask");\n    if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);\n      if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar13 = "utf8";\n    pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","utf8");\n    bVar8 = false;\n    bVar33 = pbVar19 == (byte *)0x0;\n    if (bVar33) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar12 = 4;\n    pbVar30 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar12 != 0x15) {\n    if (iVar12 < 0x16) {\n      if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar12) {\n      if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar12 != 0x24) goto LAB_0004e430;\n      pcVar13 = opt_arg();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar9 = *pcVar13;\n      if (cVar9 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar12 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar12 < 0x1b) {\n      if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1d) {\n      local_51c = opt_arg();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar12) {\n      if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1b) {\n      pcVar13 = opt_arg();\n      iVar12 = set_nameopt(pcVar13);\n      if (iVar12 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar12 != 0x1c) goto LAB_0004e430;\n    pcVar13 = opt_arg();\n    iVar12 = set_cert_ex(&reqflag,pcVar13);\n    if (iVar12 == 0) goto LAB_0004e51a;\n    iVar12 = opt_next();\n    if (iVar12 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar16 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar13 = pcVar13 + 1;\n  cVar9 = *pcVar13;\n  if (cVar9 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar14 = strchr(pcVar13,0x3d);\n  if (pcVar14 == (char *)0x0) goto LAB_0004e51a;\n  pcVar28 = CRYPTO_strdup(pcVar13,"../apps/req.c",0xbd);\n  if (pcVar28 == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar13 = pcVar28 + ((int)pcVar14 - (int)pcVar13);\n  if (pcVar28 < pcVar13) {\n    ppuVar16 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar13 = pcVar13 + -1;\n      if (pcVar28 == pcVar13) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar13 == pcVar28) {\nLAB_0004f4ba:\n    CRYPTO_free(pcVar28);\n    goto LAB_0004e51a;\n  }\n  *pcVar13 = '\0';\n  pBVar15 = (BIO *)OPENSSL_LH_insert(local_54c,pcVar28);\n  if ((pBVar15 == (BIO *)0x0) &&\n     (iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0)) {\n    result = opt_arg();\n    iVar12 = BIO_printf(local_550,"%s\n",result);\n    if (iVar12 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar15;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar14 = "%s: Use -help for summary.\n";\n  pcVar13 = (char *)ppcVar11;\nLAB_0004e52c:\n  BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar12 = iVar12 + -1;\n    bVar8 = *pbVar19 < *pbVar30;\n    bVar33 = *pbVar19 == *pbVar30;\n    pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n    pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n    if (!bVar33) break;\ncode_r0x0004f105:\n    if (iVar12 == 0) break;\n  }\n  if ((!bVar8 && !bVar33) == bVar8) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar13 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n    iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)\n    ;\n    if (iVar12 == 0) {\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == (char *)0x0) {\nLAB_0004f1d1:\n    if ((pkey == (EVP_PKEY *)0x0) && (bVar34 != false)) {\n      app_RAND_load_conf(req_conf,"req");\n      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);\n      if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key");\n    pkey = (EVP_PKEY *)local_548;\n    if (local_548 != (BIO *)0x0) {\n      app_RAND_load_conf(req_conf,"req");\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar12 = X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1), iVar12 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar12 = OPENSSL_sk_num(local_548);\n      if (iVar12 <= local_588) goto LAB_00050951;\n      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);\n      pcVar14 = *(char **)(iVar12 + 4);\n      iVar20 = OBJ_txt2nid(pcVar14);\n    } while (iVar20 == 0);\n    iVar31 = join(pcVar13,100,pcVar14,"_default","Name");\n    if (iVar31 == 0) {\nLAB_00050d30:\n      ppBVar27 = &bio_err;\n      goto LAB_0004f815;\n    }\n    pcVar28 = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (pcVar28 == (char *)0x0) {\n      ERR_clear_error();\n      pcVar28 = "";\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_value","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    value = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (value == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_min","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      n_min = -1;\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_max","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    psVar18 = section;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      ctx.flags = -1;\n    }\n    uVar29 = build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18);\n    if (uVar29 < 2) {\n      if (uVar29 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,"Error adding attribute\n",0,0);\n  ERR_print_errors((BIO *)bio_err);\nLAB_0004f815:\n  BIO_printf((BIO *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors((BIO *)bio_err);\nLAB_0004e57b:\n  NCONF_free((CONF *)req_conf);\n  NCONF_free((CONF *)addext_conf);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)pkey);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,exts_cleanup);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free((ENGINE *)local_544);\n  CRYPTO_free(keyalgstr);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  release_engine(local_540);\n  if (passin != local_538) {\n    CRYPTO_free(passin);\n  }\n  if (passout != local_534) {\n    CRYPTO_free(passout);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_564;\n}\n\n" comment comment (function_definition "int req_main(int argc,char **argv)\n\n{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  EVP_PKEY *pEVar7;\n  bool bVar8;\n  char cVar9;\n  EVP_CIPHER *pEVar10;\n  char **ppcVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  BIO *pBVar15;\n  ushort **ppuVar16;\n  ASN1_INTEGER *pAVar17;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar18;\n  byte *pbVar19;\n  int iVar20;\n  ulong uVar21;\n  undefined1 *result;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar22;\n  ulong uVar23;\n  X509_NAME *pXVar24;\n  EVP_PKEY *pEVar25;\n  X509_NAME *pXVar26;\n  BIO **ppBVar27;\n  char *value;\n  char *pcVar28;\n  uint uVar29;\n  stack_st_CONF_VALUE *extraout_ECX;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar30;\n  int iVar31;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  byte bVar35;\n  undefined8 uVar36;\n  undefined4 uVar37;\n  stack_st_CONF_VALUE *psVar38;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  int local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  stack_st_OPENSSL_STRING *local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  ENGINE *local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  char *local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  char *local_51c;\n  char *local_518;\n  char *local_514;\n  EVP_MD *local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  ulong local_4ec;\n  EVP_PKEY *pkey;\n  EVP_MD *md_alg;\n  char *keyalgstr;\n  char *passin;\n  char *passout;\n  int pkey_type;\n  int informat;\n  int outformat;\n  int keyform;\n  long newkey;\n  ulong reqflag;\n  long n_min;\n  X509V3_CTX ctx;\n  char buf [100];\n  char buf_1 [1024];\n  \n  bVar35 = 0;\n  bVar34 = false;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  pkey = (EVP_PKEY *)0x0;\n  md_alg = (EVP_MD *)0x0;\n  local_560 = (BIO *)default_config_file;\n  keyalgstr = (char *)0x0;\n  passin = (char *)0x0;\n  passout = (char *)0x0;\n  pkey_type = -1;\n  informat = 0x8005;\n  outformat = 0x8005;\n  keyform = 0x8005;\n  newkey = -1;\n  reqflag = 0;\n  pEVar10 = EVP_des_ede3_cbc();\n  result = req_options;\n  ppcVar11 = (char **)opt_init(argc,argv,(OPTIONS *)req_options);\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = (char *)0x0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = (char *)0x0;\n  local_50c = (char *)0x0;\n  local_52c = (char *)0x0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = (EVP_MD *)0x0;\n  local_54c = 0;\n  local_558 = (stack_st_OPENSSL_STRING *)0x0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = (ENGINE *)0x0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar12 = opt_next();\n  if (iVar12 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar12 = opt_num_rest();\n  if (iVar12 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf((BIO *)bio_err,"Ignoring -days; not generating a certificate\n");\n  }\n  pEVar7 = pkey;\n  bVar8 = (bool)(local_52c == (char *)0x0 & (byte)local_53c);\n  bVar32 = bVar34;\n  if (bVar8 != false) {\n    bVar34 = bVar8;\n    bVar32 = true;\n  }\n  pcVar13 = (char *)&passin;\n  iVar12 = app_passwd(local_534,(char *)local_548,(char **)pcVar13,&passout);\n  if (iVar12 == 0) {\n    pcVar14 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar13 = (char *)local_560;\n    BIO_printf((BIO *)bio_err,"Using configuration from %s\n",local_560);\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);\n    }\n  }\n  if (((BIO *)default_config_file != local_560) &&\n     (iVar12 = app_load_modules(req_conf), iVar12 == 0)) goto LAB_0004eb16;\n  if (req_conf != (CONF *)0x0) {\n    pcVar13 = "oid_file";\n    pcVar14 = NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file");\n    if (pcVar14 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      pBVar15 = BIO_new_file(pcVar14,"r");\n      if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }\n    }\n  }\n  iVar12 = add_oid_section(req_conf);\n  if (iVar12 != 0) {\n    if (md_alg == (EVP_MD *)0x0) {\n      pcVar13 = "default_md";\n      pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");\n      if (pcVar14 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar13 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n      iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (addext_conf != (CONF *)0x0) {\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);\n      iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((passin == (char *)0x0) &&\n       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((passout == (char *)0x0) &&\n       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar13 = "string_mask";\n    psVar18 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask");\n    if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);\n      if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar13 = "utf8";\n    pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","utf8");\n    bVar8 = false;\n    bVar33 = pbVar19 == (byte *)0x0;\n    if (bVar33) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar12 = 4;\n    pbVar30 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar12 != 0x15) {\n    if (iVar12 < 0x16) {\n      if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar12) {\n      if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar12 != 0x24) goto LAB_0004e430;\n      pcVar13 = opt_arg();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar9 = *pcVar13;\n      if (cVar9 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar12 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar12 < 0x1b) {\n      if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1d) {\n      local_51c = opt_arg();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar12) {\n      if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1b) {\n      pcVar13 = opt_arg();\n      iVar12 = set_nameopt(pcVar13);\n      if (iVar12 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar12 != 0x1c) goto LAB_0004e430;\n    pcVar13 = opt_arg();\n    iVar12 = set_cert_ex(&reqflag,pcVar13);\n    if (iVar12 == 0) goto LAB_0004e51a;\n    iVar12 = opt_next();\n    if (iVar12 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar16 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar13 = pcVar13 + 1;\n  cVar9 = *pcVar13;\n  if (cVar9 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar14 = strchr(pcVar13,0x3d);\n  if (pcVar14 == (char *)0x0) goto LAB_0004e51a;\n  pcVar28 = CRYPTO_strdup(pcVar13,"../apps/req.c",0xbd);\n  if (pcVar28 == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar13 = pcVar28 + ((int)pcVar14 - (int)pcVar13);\n  if (pcVar28 < pcVar13) {\n    ppuVar16 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar13 = pcVar13 + -1;\n      if (pcVar28 == pcVar13) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar13 == pcVar28) {\nLAB_0004f4ba:\n    CRYPTO_free(pcVar28);\n    goto LAB_0004e51a;\n  }\n  *pcVar13 = '\0';\n  pBVar15 = (BIO *)OPENSSL_LH_insert(local_54c,pcVar28);\n  if ((pBVar15 == (BIO *)0x0) &&\n     (iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0)) {\n    result = opt_arg();\n    iVar12 = BIO_printf(local_550,"%s\n",result);\n    if (iVar12 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar15;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar14 = "%s: Use -help for summary.\n";\n  pcVar13 = (char *)ppcVar11;\nLAB_0004e52c:\n  BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar12 = iVar12 + -1;\n    bVar8 = *pbVar19 < *pbVar30;\n    bVar33 = *pbVar19 == *pbVar30;\n    pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n    pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n    if (!bVar33) break;\ncode_r0x0004f105:\n    if (iVar12 == 0) break;\n  }\n  if ((!bVar8 && !bVar33) == bVar8) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar13 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n    iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)\n    ;\n    if (iVar12 == 0) {\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == (char *)0x0) {\nLAB_0004f1d1:\n    if ((pkey == (EVP_PKEY *)0x0) && (bVar34 != false)) {\n      app_RAND_load_conf(req_conf,"req");\n      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);\n      if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key");\n    pkey = (EVP_PKEY *)local_548;\n    if (local_548 != (BIO *)0x0) {\n      app_RAND_load_conf(req_conf,"req");\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar12 = X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1), iVar12 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar12 = OPENSSL_sk_num(local_548);\n      if (iVar12 <= local_588) goto LAB_00050951;\n      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);\n      pcVar14 = *(char **)(iVar12 + 4);\n      iVar20 = OBJ_txt2nid(pcVar14);\n    } while (iVar20 == 0);\n    iVar31 = join(pcVar13,100,pcVar14,"_default","Name");\n    if (iVar31 == 0) {\nLAB_00050d30:\n      ppBVar27 = &bio_err;\n      goto LAB_0004f815;\n    }\n    pcVar28 = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (pcVar28 == (char *)0x0) {\n      ERR_clear_error();\n      pcVar28 = "";\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_value","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    value = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (value == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_min","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      n_min = -1;\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_max","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    psVar18 = section;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      ctx.flags = -1;\n    }\n    uVar29 = build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18);\n    if (uVar29 < 2) {\n      if (uVar29 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,"Error adding attribute\n",0,0);\n  ERR_print_errors((BIO *)bio_err);\nLAB_0004f815:\n  BIO_printf((BIO *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors((BIO *)bio_err);\nLAB_0004e57b:\n  NCONF_free((CONF *)req_conf);\n  NCONF_free((CONF *)addext_conf);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)pkey);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,exts_cleanup);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free((ENGINE *)local_544);\n  CRYPTO_free(keyalgstr);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  release_engine(local_540);\n  if (passin != local_538) {\n    CRYPTO_free(passin);\n  }\n  if (passout != local_534) {\n    CRYPTO_free(passout);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_564;\n}" primitive_type (function_declarator "req_main(int argc,char **argv)" identifier (parameter_list "(int argc,char **argv)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  EVP_PKEY *pEVar7;\n  bool bVar8;\n  char cVar9;\n  EVP_CIPHER *pEVar10;\n  char **ppcVar11;\n  int iVar12;\n  char *pcVar13;\n  char *pcVar14;\n  BIO *pBVar15;\n  ushort **ppuVar16;\n  ASN1_INTEGER *pAVar17;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar18;\n  byte *pbVar19;\n  int iVar20;\n  ulong uVar21;\n  undefined1 *result;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar22;\n  ulong uVar23;\n  X509_NAME *pXVar24;\n  EVP_PKEY *pEVar25;\n  X509_NAME *pXVar26;\n  BIO **ppBVar27;\n  char *value;\n  char *pcVar28;\n  uint uVar29;\n  stack_st_CONF_VALUE *extraout_ECX;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar30;\n  int iVar31;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  byte bVar35;\n  undefined8 uVar36;\n  undefined4 uVar37;\n  stack_st_CONF_VALUE *psVar38;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  int local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  stack_st_OPENSSL_STRING *local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  ENGINE *local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  char *local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  char *local_51c;\n  char *local_518;\n  char *local_514;\n  EVP_MD *local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  ulong local_4ec;\n  EVP_PKEY *pkey;\n  EVP_MD *md_alg;\n  char *keyalgstr;\n  char *passin;\n  char *passout;\n  int pkey_type;\n  int informat;\n  int outformat;\n  int keyform;\n  long newkey;\n  ulong reqflag;\n  long n_min;\n  X509V3_CTX ctx;\n  char buf [100];\n  char buf_1 [1024];\n  \n  bVar35 = 0;\n  bVar34 = false;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  pkey = (EVP_PKEY *)0x0;\n  md_alg = (EVP_MD *)0x0;\n  local_560 = (BIO *)default_config_file;\n  keyalgstr = (char *)0x0;\n  passin = (char *)0x0;\n  passout = (char *)0x0;\n  pkey_type = -1;\n  informat = 0x8005;\n  outformat = 0x8005;\n  keyform = 0x8005;\n  newkey = -1;\n  reqflag = 0;\n  pEVar10 = EVP_des_ede3_cbc();\n  result = req_options;\n  ppcVar11 = (char **)opt_init(argc,argv,(OPTIONS *)req_options);\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = (char *)0x0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = (char *)0x0;\n  local_50c = (char *)0x0;\n  local_52c = (char *)0x0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = (EVP_MD *)0x0;\n  local_54c = 0;\n  local_558 = (stack_st_OPENSSL_STRING *)0x0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = (ENGINE *)0x0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar12 = opt_next();\n  if (iVar12 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar12 = opt_num_rest();\n  if (iVar12 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf((BIO *)bio_err,"Ignoring -days; not generating a certificate\n");\n  }\n  pEVar7 = pkey;\n  bVar8 = (bool)(local_52c == (char *)0x0 & (byte)local_53c);\n  bVar32 = bVar34;\n  if (bVar8 != false) {\n    bVar34 = bVar8;\n    bVar32 = true;\n  }\n  pcVar13 = (char *)&passin;\n  iVar12 = app_passwd(local_534,(char *)local_548,(char **)pcVar13,&passout);\n  if (iVar12 == 0) {\n    pcVar14 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar13 = (char *)local_560;\n    BIO_printf((BIO *)bio_err,"Using configuration from %s\n",local_560);\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);\n    }\n  }\n  if (((BIO *)default_config_file != local_560) &&\n     (iVar12 = app_load_modules(req_conf), iVar12 == 0)) goto LAB_0004eb16;\n  if (req_conf != (CONF *)0x0) {\n    pcVar13 = "oid_file";\n    pcVar14 = NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file");\n    if (pcVar14 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      pBVar15 = BIO_new_file(pcVar14,"r");\n      if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }\n    }\n  }\n  iVar12 = add_oid_section(req_conf);\n  if (iVar12 != 0) {\n    if (md_alg == (EVP_MD *)0x0) {\n      pcVar13 = "default_md";\n      pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");\n      if (pcVar14 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar13 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n      iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (addext_conf != (CONF *)0x0) {\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);\n      iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((passin == (char *)0x0) &&\n       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((passout == (char *)0x0) &&\n       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar13 = "string_mask";\n    psVar18 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask");\n    if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);\n      if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar13 = "utf8";\n    pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","utf8");\n    bVar8 = false;\n    bVar33 = pbVar19 == (byte *)0x0;\n    if (bVar33) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar12 = 4;\n    pbVar30 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar12 != 0x15) {\n    if (iVar12 < 0x16) {\n      if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar12) {\n      if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar12 != 0x24) goto LAB_0004e430;\n      pcVar13 = opt_arg();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar9 = *pcVar13;\n      if (cVar9 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar12 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar12 < 0x1b) {\n      if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1d) {\n      local_51c = opt_arg();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar12) {\n      if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1b) {\n      pcVar13 = opt_arg();\n      iVar12 = set_nameopt(pcVar13);\n      if (iVar12 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar12 != 0x1c) goto LAB_0004e430;\n    pcVar13 = opt_arg();\n    iVar12 = set_cert_ex(&reqflag,pcVar13);\n    if (iVar12 == 0) goto LAB_0004e51a;\n    iVar12 = opt_next();\n    if (iVar12 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar16 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar13 = pcVar13 + 1;\n  cVar9 = *pcVar13;\n  if (cVar9 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar14 = strchr(pcVar13,0x3d);\n  if (pcVar14 == (char *)0x0) goto LAB_0004e51a;\n  pcVar28 = CRYPTO_strdup(pcVar13,"../apps/req.c",0xbd);\n  if (pcVar28 == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar13 = pcVar28 + ((int)pcVar14 - (int)pcVar13);\n  if (pcVar28 < pcVar13) {\n    ppuVar16 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar13 = pcVar13 + -1;\n      if (pcVar28 == pcVar13) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar13 == pcVar28) {\nLAB_0004f4ba:\n    CRYPTO_free(pcVar28);\n    goto LAB_0004e51a;\n  }\n  *pcVar13 = '\0';\n  pBVar15 = (BIO *)OPENSSL_LH_insert(local_54c,pcVar28);\n  if ((pBVar15 == (BIO *)0x0) &&\n     (iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0)) {\n    result = opt_arg();\n    iVar12 = BIO_printf(local_550,"%s\n",result);\n    if (iVar12 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar15;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar14 = "%s: Use -help for summary.\n";\n  pcVar13 = (char *)ppcVar11;\nLAB_0004e52c:\n  BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar12 = iVar12 + -1;\n    bVar8 = *pbVar19 < *pbVar30;\n    bVar33 = *pbVar19 == *pbVar30;\n    pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n    pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n    if (!bVar33) break;\ncode_r0x0004f105:\n    if (iVar12 == 0) break;\n  }\n  if ((!bVar8 && !bVar33) == bVar8) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar13 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n    iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)\n    ;\n    if (iVar12 == 0) {\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == (char *)0x0) {\nLAB_0004f1d1:\n    if ((pkey == (EVP_PKEY *)0x0) && (bVar34 != false)) {\n      app_RAND_load_conf(req_conf,"req");\n      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);\n      if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key");\n    pkey = (EVP_PKEY *)local_548;\n    if (local_548 != (BIO *)0x0) {\n      app_RAND_load_conf(req_conf,"req");\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar12 = X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1), iVar12 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar12 = OPENSSL_sk_num(local_548);\n      if (iVar12 <= local_588) goto LAB_00050951;\n      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);\n      pcVar14 = *(char **)(iVar12 + 4);\n      iVar20 = OBJ_txt2nid(pcVar14);\n    } while (iVar20 == 0);\n    iVar31 = join(pcVar13,100,pcVar14,"_default","Name");\n    if (iVar31 == 0) {\nLAB_00050d30:\n      ppBVar27 = &bio_err;\n      goto LAB_0004f815;\n    }\n    pcVar28 = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (pcVar28 == (char *)0x0) {\n      ERR_clear_error();\n      pcVar28 = "";\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_value","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    value = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (value == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_min","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      n_min = -1;\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_max","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    psVar18 = section;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      ctx.flags = -1;\n    }\n    uVar29 = build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18);\n    if (uVar29 < 2) {\n      if (uVar29 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,"Error adding attribute\n",0,0);\n  ERR_print_errors((BIO *)bio_err);\nLAB_0004f815:\n  BIO_printf((BIO *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors((BIO *)bio_err);\nLAB_0004e57b:\n  NCONF_free((CONF *)req_conf);\n  NCONF_free((CONF *)addext_conf);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)pkey);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,exts_cleanup);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free((ENGINE *)local_544);\n  CRYPTO_free(keyalgstr);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  release_engine(local_540);\n  if (passin != local_538) {\n    CRYPTO_free(passin);\n  }\n  if (passout != local_534) {\n    CRYPTO_free(passout);\n  }\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_564;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "EVP_PKEY *pEVar7;" type_identifier (pointer_declarator "*pEVar7" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "EVP_CIPHER *pEVar10;" type_identifier (pointer_declarator "*pEVar10" * identifier) ;) (declaration "char **ppcVar11;" primitive_type (pointer_declarator "**ppcVar11" * (pointer_declarator "*ppcVar11" * identifier)) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "BIO *pBVar15;" type_identifier (pointer_declarator "*pBVar15" * identifier) ;) (declaration "ushort **ppuVar16;" type_identifier (pointer_declarator "**ppuVar16" * (pointer_declarator "*ppuVar16" * identifier)) ;) (declaration "ASN1_INTEGER *pAVar17;" type_identifier (pointer_declarator "*pAVar17" * identifier) ;) (declaration "BIO_METHOD *type;" type_identifier (pointer_declarator "*type" * identifier) ;) (declaration "stack_st_CONF_VALUE *psVar18;" type_identifier (pointer_declarator "*psVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "undefined1 *result;" type_identifier (pointer_declarator "*result" * identifier) ;) (declaration "stack_st_CONF_VALUE *section;" type_identifier (pointer_declarator "*section" * identifier) ;) (declaration "stack_st_CONF_VALUE *psVar22;" type_identifier (pointer_declarator "*psVar22" * identifier) ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "X509_NAME *pXVar24;" type_identifier (pointer_declarator "*pXVar24" * identifier) ;) (declaration "EVP_PKEY *pEVar25;" type_identifier (pointer_declarator "*pEVar25" * identifier) ;) (declaration "X509_NAME *pXVar26;" type_identifier (pointer_declarator "*pXVar26" * identifier) ;) (declaration "BIO **ppBVar27;" type_identifier (pointer_declarator "**ppBVar27" * (pointer_declarator "*ppBVar27" * identifier)) ;) (declaration "char *value;" primitive_type (pointer_declarator "*value" * identifier) ;) (declaration "char *pcVar28;" primitive_type (pointer_declarator "*pcVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "stack_st_CONF_VALUE *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_02;" type_identifier identifier ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "X509 *x;" type_identifier (pointer_declarator "*x" * identifier) ;) (declaration "X509_REQ *x_00;" type_identifier (pointer_declarator "*x_00" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "bool bVar34;" primitive_type identifier ;) (declaration "byte bVar35;" type_identifier identifier ;) (declaration "undefined8 uVar36;" type_identifier identifier ;) (declaration "undefined4 uVar37;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE *psVar38;" type_identifier (pointer_declarator "*psVar38" * identifier) ;) (declaration "uint local_598;" type_identifier identifier ;) (declaration "uint local_594;" type_identifier identifier ;) (declaration "int local_588;" primitive_type identifier ;) (declaration "uint local_584;" type_identifier identifier ;) (declaration "uint local_580;" type_identifier identifier ;) (declaration "int local_57c;" primitive_type identifier ;) (declaration "uint local_578;" type_identifier identifier ;) (declaration "EVP_PKEY *local_570;" type_identifier (pointer_declarator "*local_570" * identifier) ;) (declaration "uint local_56c;" type_identifier identifier ;) (declaration "uint local_564;" type_identifier identifier ;) (declaration "BIO *local_560;" type_identifier (pointer_declarator "*local_560" * identifier) ;) (declaration "int local_55c;" primitive_type identifier ;) (declaration "stack_st_OPENSSL_STRING *local_558;" type_identifier (pointer_declarator "*local_558" * identifier) ;) (declaration "ASN1_INTEGER *local_554;" type_identifier (pointer_declarator "*local_554" * identifier) ;) (declaration "BIO *local_550;" type_identifier (pointer_declarator "*local_550" * identifier) ;) (declaration "int local_54c;" primitive_type identifier ;) (declaration "BIO *local_548;" type_identifier (pointer_declarator "*local_548" * identifier) ;) (declaration "ENGINE *local_544;" type_identifier (pointer_declarator "*local_544" * identifier) ;) (declaration "ENGINE *local_540;" type_identifier (pointer_declarator "*local_540" * identifier) ;) (declaration "uint local_53c;" type_identifier identifier ;) (declaration "char *local_538;" primitive_type (pointer_declarator "*local_538" * identifier) ;) (declaration "char *local_534;" primitive_type (pointer_declarator "*local_534" * identifier) ;) (declaration "int local_530;" primitive_type identifier ;) (declaration "char *local_52c;" primitive_type (pointer_declarator "*local_52c" * identifier) ;) (declaration "char **local_528;" primitive_type (pointer_declarator "**local_528" * (pointer_declarator "*local_528" * identifier)) ;) (declaration "stack_st_CONF_VALUE *local_524;" type_identifier (pointer_declarator "*local_524" * identifier) ;) (declaration "uint local_520;" type_identifier identifier ;) (declaration "char *local_51c;" primitive_type (pointer_declarator "*local_51c" * identifier) ;) (declaration "char *local_518;" primitive_type (pointer_declarator "*local_518" * identifier) ;) (declaration "char *local_514;" primitive_type (pointer_declarator "*local_514" * identifier) ;) (declaration "EVP_MD *local_510;" type_identifier (pointer_declarator "*local_510" * identifier) ;) (declaration "char *local_50c;" primitive_type (pointer_declarator "*local_50c" * identifier) ;) (declaration "EVP_CIPHER *local_500;" type_identifier (pointer_declarator "*local_500" * identifier) ;) (declaration "ulong local_4ec;" type_identifier identifier ;) (declaration "EVP_PKEY *pkey;" type_identifier (pointer_declarator "*pkey" * identifier) ;) (declaration "EVP_MD *md_alg;" type_identifier (pointer_declarator "*md_alg" * identifier) ;) (declaration "char *keyalgstr;" primitive_type (pointer_declarator "*keyalgstr" * identifier) ;) (declaration "char *passin;" primitive_type (pointer_declarator "*passin" * identifier) ;) (declaration "char *passout;" primitive_type (pointer_declarator "*passout" * identifier) ;) (declaration "int pkey_type;" primitive_type identifier ;) (declaration "int informat;" primitive_type identifier ;) (declaration "int outformat;" primitive_type identifier ;) (declaration "int keyform;" primitive_type identifier ;) (declaration "long newkey;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong reqflag;" type_identifier identifier ;) (declaration "long n_min;" (sized_type_specifier "long" long) identifier ;) (declaration "X509V3_CTX ctx;" type_identifier identifier ;) (declaration "char buf [100];" primitive_type (array_declarator "buf [100]" identifier [ number_literal ]) ;) (declaration "char buf_1 [1024];" primitive_type (array_declarator "buf_1 [1024]" identifier [ number_literal ]) ;) (expression_statement "bVar35 = 0;" (assignment_expression "bVar35 = 0" identifier = number_literal) ;) (expression_statement "bVar34 = false;" (assignment_expression "bVar34 = false" identifier = false) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pkey = (EVP_PKEY *)0x0;" (assignment_expression "pkey = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "md_alg = (EVP_MD *)0x0;" (assignment_expression "md_alg = (EVP_MD *)0x0" identifier = (cast_expression "(EVP_MD *)0x0" ( (type_descriptor "EVP_MD *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)default_config_file;" (assignment_expression "local_560 = (BIO *)default_config_file" identifier = (cast_expression "(BIO *)default_config_file" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "keyalgstr = (char *)0x0;" (assignment_expression "keyalgstr = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "passin = (char *)0x0;" (assignment_expression "passin = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "passout = (char *)0x0;" (assignment_expression "passout = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pkey_type = -1;" (assignment_expression "pkey_type = -1" identifier = number_literal) ;) (expression_statement "informat = 0x8005;" (assignment_expression "informat = 0x8005" identifier = number_literal) ;) (expression_statement "outformat = 0x8005;" (assignment_expression "outformat = 0x8005" identifier = number_literal) ;) (expression_statement "keyform = 0x8005;" (assignment_expression "keyform = 0x8005" identifier = number_literal) ;) (expression_statement "newkey = -1;" (assignment_expression "newkey = -1" identifier = number_literal) ;) (expression_statement "reqflag = 0;" (assignment_expression "reqflag = 0" identifier = number_literal) ;) (expression_statement "pEVar10 = EVP_des_ede3_cbc();" (assignment_expression "pEVar10 = EVP_des_ede3_cbc()" identifier = (call_expression "EVP_des_ede3_cbc()" identifier (argument_list "()" ( )))) ;) (expression_statement "result = req_options;" (assignment_expression "result = req_options" identifier = identifier) ;) (expression_statement "ppcVar11 = (char **)opt_init(argc,argv,(OPTIONS *)req_options);" (assignment_expression "ppcVar11 = (char **)opt_init(argc,argv,(OPTIONS *)req_options)" identifier = (cast_expression "(char **)opt_init(argc,argv,(OPTIONS *)req_options)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "opt_init(argc,argv,(OPTIONS *)req_options)" identifier (argument_list "(argc,argv,(OPTIONS *)req_options)" ( identifier , identifier , (cast_expression "(OPTIONS *)req_options" ( (type_descriptor "OPTIONS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "local_588 = 0x1001;" (assignment_expression "local_588 = 0x1001" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_56c = 0;" (assignment_expression "local_56c = 0" identifier = number_literal) ;) (expression_statement "local_584 = 0;" (assignment_expression "local_584 = 0" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "local_594 = 0;" (assignment_expression "local_594 = 0" identifier = number_literal) ;) (expression_statement "local_580 = 0;" (assignment_expression "local_580 = 0" identifier = number_literal) ;) (expression_statement "local_578 = 0;" (assignment_expression "local_578 = 0" identifier = number_literal) ;) (expression_statement "local_57c = 0;" (assignment_expression "local_57c = 0" identifier = number_literal) ;) (expression_statement "local_520 = 0;" (assignment_expression "local_520 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_530 = 0;" (assignment_expression "local_530 = 0" identifier = number_literal) ;) (expression_statement "local_53c = 0;" (assignment_expression "local_53c = 0" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_518 = (char *)0x0;" (assignment_expression "local_518 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_51c = (char *)0x0;" (assignment_expression "local_51c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_514 = (char *)0x0;" (assignment_expression "local_514 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50c = (char *)0x0;" (assignment_expression "local_50c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_52c = (char *)0x0;" (assignment_expression "local_52c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_528 = (char **)0x0;" (assignment_expression "local_528 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_550 = (BIO *)0x0;" (assignment_expression "local_550 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_510 = (EVP_MD *)0x0;" (assignment_expression "local_510 = (EVP_MD *)0x0" identifier = (cast_expression "(EVP_MD *)0x0" ( (type_descriptor "EVP_MD *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_54c = 0;" (assignment_expression "local_54c = 0" identifier = number_literal) ;) (expression_statement "local_558 = (stack_st_OPENSSL_STRING *)0x0;" (assignment_expression "local_558 = (stack_st_OPENSSL_STRING *)0x0" identifier = (cast_expression "(stack_st_OPENSSL_STRING *)0x0" ( (type_descriptor "stack_st_OPENSSL_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_55c = 0;" (assignment_expression "local_55c = 0" identifier = number_literal) ;) (expression_statement "local_544 = (ENGINE *)0x0;" (assignment_expression "local_544 = (ENGINE *)0x0" identifier = (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_540 = (ENGINE *)0x0;" (assignment_expression "local_540 = (ENGINE *)0x0" identifier = (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_554 = (ASN1_INTEGER *)0x0;" (assignment_expression "local_554 = (ASN1_INTEGER *)0x0" identifier = (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e430:\n  iVar12 = opt_next();" statement_identifier : (expression_statement "iVar12 = opt_next();" (assignment_expression "iVar12 = opt_next()" identifier = (call_expression "opt_next()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar12 != 0) goto LAB_0004e43d;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e43d;" goto statement_identifier ;)) (labeled_statement "LAB_0004e6f0:\n  iVar12 = opt_num_rest();" statement_identifier : (expression_statement "iVar12 = opt_num_rest();" (assignment_expression "iVar12 = opt_num_rest()" identifier = (call_expression "opt_num_rest()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar12 != 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_564 = local_53c ^ 1;" (assignment_expression "local_564 = local_53c ^ 1" identifier = (binary_expression "local_53c ^ 1" identifier ^ number_literal)) ;) (if_statement "if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf((BIO *)bio_err,"Ignoring -days; not generating a certificate\n");\n  }" if (parenthesized_expression "((local_530 != 0) && (local_564 != 0))" ( (binary_expression "(local_530 != 0) && (local_564 != 0)" (parenthesized_expression "(local_530 != 0)" ( (binary_expression "local_530 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_564 != 0)" ( (binary_expression "local_564 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    BIO_printf((BIO *)bio_err,"Ignoring -days; not generating a certificate\n");\n  }" { (expression_statement "BIO_printf((BIO *)bio_err,"Ignoring -days; not generating a certificate\n");" (call_expression "BIO_printf((BIO *)bio_err,"Ignoring -days; not generating a certificate\n")" identifier (argument_list "((BIO *)bio_err,"Ignoring -days; not generating a certificate\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Ignoring -days; not generating a certificate\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "pEVar7 = pkey;" (assignment_expression "pEVar7 = pkey" identifier = identifier) ;) (expression_statement "bVar8 = (bool)(local_52c == (char *)0x0 & (byte)local_53c);" (assignment_expression "bVar8 = (bool)(local_52c == (char *)0x0 & (byte)local_53c)" identifier = (cast_expression "(bool)(local_52c == (char *)0x0 & (byte)local_53c)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(local_52c == (char *)0x0 & (byte)local_53c)" ( (binary_expression "local_52c == (char *)0x0 & (byte)local_53c" (binary_expression "local_52c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) & (cast_expression "(byte)local_53c" ( (type_descriptor "byte" type_identifier) ) identifier)) )))) ;) (expression_statement "bVar32 = bVar34;" (assignment_expression "bVar32 = bVar34" identifier = identifier) ;) (if_statement "if (bVar8 != false) {\n    bVar34 = bVar8;\n    bVar32 = true;\n  }" if (parenthesized_expression "(bVar8 != false)" ( (binary_expression "bVar8 != false" identifier != false) )) (compound_statement "{\n    bVar34 = bVar8;\n    bVar32 = true;\n  }" { (expression_statement "bVar34 = bVar8;" (assignment_expression "bVar34 = bVar8" identifier = identifier) ;) (expression_statement "bVar32 = true;" (assignment_expression "bVar32 = true" identifier = true) ;) })) (expression_statement "pcVar13 = (char *)&passin;" (assignment_expression "pcVar13 = (char *)&passin" identifier = (cast_expression "(char *)&passin" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&passin" & identifier))) ;) (expression_statement "iVar12 = app_passwd(local_534,(char *)local_548,(char **)pcVar13,&passout);" (assignment_expression "iVar12 = app_passwd(local_534,(char *)local_548,(char **)pcVar13,&passout)" identifier = (call_expression "app_passwd(local_534,(char *)local_548,(char **)pcVar13,&passout)" identifier (argument_list "(local_534,(char *)local_548,(char **)pcVar13,&passout)" ( identifier , (cast_expression "(char *)local_548" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char **)pcVar13" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , (pointer_expression "&passout" & identifier) )))) ;) (if_statement "if (iVar12 == 0) {\n    pcVar14 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar14 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }" { (expression_statement "pcVar14 = "Error getting passwords\n";" (assignment_expression "pcVar14 = "Error getting passwords\n"" identifier = (string_literal ""Error getting passwords\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) (if_statement "if (bVar2) {\n    pcVar13 = (char *)local_560;\n    BIO_printf((BIO *)bio_err,"Using configuration from %s\n",local_560);\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);\n    }\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    pcVar13 = (char *)local_560;\n    BIO_printf((BIO *)bio_err,"Using configuration from %s\n",local_560);\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);\n      goto LAB_0004e7d1;\n    }\n  }" { (expression_statement "pcVar13 = (char *)local_560;" (assignment_expression "pcVar13 = (char *)local_560" identifier = (cast_expression "(char *)local_560" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "BIO_printf((BIO *)bio_err,"Using configuration from %s\n",local_560);" (call_expression "BIO_printf((BIO *)bio_err,"Using configuration from %s\n",local_560)" identifier (argument_list "((BIO *)bio_err,"Using configuration from %s\n",local_560)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Using configuration from %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "req_conf = app_load_config((char *)local_560);" (assignment_expression "req_conf = app_load_config((char *)local_560)" identifier = (call_expression "app_load_config((char *)local_560)" identifier (argument_list "((char *)local_560)" ( (cast_expression "(char *)local_560" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_550 != (BIO *)0x0) {\n      BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);\n      goto LAB_0004e7d1;\n    }" if (parenthesized_expression "(local_550 != (BIO *)0x0)" ( (binary_expression "local_550 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);\n      goto LAB_0004e7d1;\n    }" { (expression_statement "BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13);" (call_expression "BIO_printf((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13)" identifier (argument_list "((BIO *)bio_err,"Using additional configuration from command line\n",pcVar13)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Using additional configuration from command line\n"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_0004e7d1;" goto statement_identifier ;) })) }) (else_clause "else {\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);\n    }\n  }" else (compound_statement "{\n    req_conf = app_load_config((char *)local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);\n    }\n  }" { (expression_statement "req_conf = app_load_config((char *)local_560);" (assignment_expression "req_conf = app_load_config((char *)local_560)" identifier = (call_expression "app_load_config((char *)local_560)" identifier (argument_list "((char *)local_560)" ( (cast_expression "(char *)local_560" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);\n    }" if (parenthesized_expression "(local_550 != (BIO *)0x0)" ( (binary_expression "local_550 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);\n    }" { (labeled_statement "LAB_0004e7d1:\n      addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);" statement_identifier : (expression_statement "addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0);" (assignment_expression "addext_conf = app_load_config_bio((BIO *)local_550,(char *)0x0)" identifier = (call_expression "app_load_config_bio((BIO *)local_550,(char *)0x0)" identifier (argument_list "((BIO *)local_550,(char *)0x0)" ( (cast_expression "(BIO *)local_550" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) })) }))) (if_statement "if (((BIO *)default_config_file != local_560) &&\n     (iVar12 = app_load_modules(req_conf), iVar12 == 0)) goto LAB_0004eb16;" if (parenthesized_expression "(((BIO *)default_config_file != local_560) &&\n     (iVar12 = app_load_modules(req_conf), iVar12 == 0))" ( (binary_expression "((BIO *)default_config_file != local_560) &&\n     (iVar12 = app_load_modules(req_conf), iVar12 == 0)" (parenthesized_expression "((BIO *)default_config_file != local_560)" ( (binary_expression "(BIO *)default_config_file != local_560" (cast_expression "(BIO *)default_config_file" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) && (parenthesized_expression "(iVar12 = app_load_modules(req_conf), iVar12 == 0)" ( (comma_expression "iVar12 = app_load_modules(req_conf), iVar12 == 0" (assignment_expression "iVar12 = app_load_modules(req_conf)" identifier = (call_expression "app_load_modules(req_conf)" identifier (argument_list "(req_conf)" ( identifier )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;)) (if_statement "if (req_conf != (CONF *)0x0) {\n    pcVar13 = "oid_file";\n    pcVar14 = NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file");\n    if (pcVar14 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      pBVar15 = BIO_new_file(pcVar14,"r");\n      if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }\n    }\n  }" if (parenthesized_expression "(req_conf != (CONF *)0x0)" ( (binary_expression "req_conf != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar13 = "oid_file";\n    pcVar14 = NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file");\n    if (pcVar14 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      pBVar15 = BIO_new_file(pcVar14,"r");\n      if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }\n    }\n  }" { (expression_statement "pcVar13 = "oid_file";" (assignment_expression "pcVar13 = "oid_file"" identifier = (string_literal ""oid_file"" " string_content ")) ;) (expression_statement "pcVar14 = NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file");" (assignment_expression "pcVar14 = NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file")" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,(char *)0x0,"oid_file")" identifier (argument_list "((CONF *)req_conf,(char *)0x0,"oid_file")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal ""oid_file"" " string_content ") )))) ;) (if_statement "if (pcVar14 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      pBVar15 = BIO_new_file(pcVar14,"r");\n      if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }\n    }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      pBVar15 = BIO_new_file(pcVar14,"r");\n      if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }\n    }" else (compound_statement "{\n      pBVar15 = BIO_new_file(pcVar14,"r");\n      if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }\n    }" { (expression_statement "pBVar15 = BIO_new_file(pcVar14,"r");" (assignment_expression "pBVar15 = BIO_new_file(pcVar14,"r")" identifier = (call_expression "BIO_new_file(pcVar14,"r")" identifier (argument_list "(pcVar14,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (pBVar15 != (BIO *)0x0) {\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }" if (parenthesized_expression "(pBVar15 != (BIO *)0x0)" ( (binary_expression "pBVar15 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        OBJ_create_objects(pBVar15);\n        BIO_free(pBVar15);\n      }" { (expression_statement "OBJ_create_objects(pBVar15);" (call_expression "OBJ_create_objects(pBVar15)" identifier (argument_list "(pBVar15)" ( identifier ))) ;) (expression_statement "BIO_free(pBVar15);" (call_expression "BIO_free(pBVar15)" identifier (argument_list "(pBVar15)" ( identifier ))) ;) })) }))) })) (expression_statement "iVar12 = add_oid_section(req_conf);" (assignment_expression "iVar12 = add_oid_section(req_conf)" identifier = (call_expression "add_oid_section(req_conf)" identifier (argument_list "(req_conf)" ( identifier )))) ;) (if_statement "if (iVar12 != 0) {\n    if (md_alg == (EVP_MD *)0x0) {\n      pcVar13 = "default_md";\n      pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");\n      if (pcVar14 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar13 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n      iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (addext_conf != (CONF *)0x0) {\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);\n      iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((passin == (char *)0x0) &&\n       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((passout == (char *)0x0) &&\n       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar13 = "string_mask";\n    psVar18 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask");\n    if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);\n      if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar13 = "utf8";\n    pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","utf8");\n    bVar8 = false;\n    bVar33 = pbVar19 == (byte *)0x0;\n    if (bVar33) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar12 = 4;\n    pbVar30 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    if (md_alg == (EVP_MD *)0x0) {\n      pcVar13 = "default_md";\n      pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");\n      if (pcVar14 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar13 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n      iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (addext_conf != (CONF *)0x0) {\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);\n      iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((passin == (char *)0x0) &&\n       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((passout == (char *)0x0) &&\n       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar13 = "string_mask";\n    psVar18 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask");\n    if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);\n      if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar13 = "utf8";\n    pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","utf8");\n    bVar8 = false;\n    bVar33 = pbVar19 == (byte *)0x0;\n    if (bVar33) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar12 = 4;\n    pbVar30 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }" { (if_statement "if (md_alg == (EVP_MD *)0x0) {\n      pcVar13 = "default_md";\n      pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");\n      if (pcVar14 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }\n    }" if (parenthesized_expression "(md_alg == (EVP_MD *)0x0)" ( (binary_expression "md_alg == (EVP_MD *)0x0" identifier == (cast_expression "(EVP_MD *)0x0" ( (type_descriptor "EVP_MD *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar13 = "default_md";\n      pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");\n      if (pcVar14 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }\n    }" { (expression_statement "pcVar13 = "default_md";" (assignment_expression "pcVar13 = "default_md"" identifier = (string_literal ""default_md"" " string_content ")) ;) (expression_statement "pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md");" (assignment_expression "pcVar14 = NCONF_get_string((CONF *)req_conf,"req","default_md")" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,"req","default_md")" identifier (argument_list "((CONF *)req_conf,"req","default_md")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""default_md"" " string_content ") )))) ;) (if_statement "if (pcVar14 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ERR_clear_error();\n      }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }" else (compound_statement "{\n        iVar12 = opt_md(pcVar14,&md_alg);\n        if (iVar12 == 0) goto LAB_0004e51a;\n        local_510 = md_alg;\n      }" { (expression_statement "iVar12 = opt_md(pcVar14,&md_alg);" (assignment_expression "iVar12 = opt_md(pcVar14,&md_alg)" identifier = (call_expression "opt_md(pcVar14,&md_alg)" identifier (argument_list "(pcVar14,&md_alg)" ( identifier , (pointer_expression "&md_alg" & identifier) )))) ;) (if_statement "if (iVar12 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_510 = md_alg;" (assignment_expression "local_510 = md_alg" identifier = identifier) ;) }))) })) (if_statement "if (local_528 == (char **)0x0) {\n      pcVar13 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n      iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" if (parenthesized_expression "(local_528 == (char **)0x0)" ( (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      pcVar13 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }" { (expression_statement "pcVar13 = "x509_extensions";" (assignment_expression "pcVar13 = "x509_extensions"" identifier = (string_literal ""x509_extensions"" " string_content ")) ;) (expression_statement "local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions");" (assignment_expression "local_528 = (char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions")" identifier = (cast_expression "(char **)NCONF_get_string((CONF *)req_conf,"req","x509_extensions")" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "NCONF_get_string((CONF *)req_conf,"req","x509_extensions")" identifier (argument_list "((CONF *)req_conf,"req","x509_extensions")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""x509_extensions"" " string_content ") ))))) ;) (if_statement "if (local_528 != (char **)0x0) goto LAB_0004e89e;" if (parenthesized_expression "(local_528 != (char **)0x0)" ( (binary_expression "local_528 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0004e89e;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n      iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" else (compound_statement "{\nLAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n      iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" { (labeled_statement "LAB_0004e89e:\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" statement_identifier : (expression_statement "X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);" (call_expression "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf)" identifier (argument_list "((X509V3_CTX *)&ctx,(CONF *)req_conf)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0);" (assignment_expression "iVar12 = X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf\n                         ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0)" identifier (argument_list "((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,(X509 *)0x0)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar12 == 0) {\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar14 = "Error Loading extension section %s\n";\n        pcVar13 = (char *)local_528;\n        goto LAB_0004e52c;\n      }" { (expression_statement "pcVar14 = "Error Loading extension section %s\n";" (assignment_expression "pcVar14 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar13 = (char *)local_528;" (assignment_expression "pcVar13 = (char *)local_528" identifier = (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) }))) (if_statement "if (addext_conf != (CONF *)0x0) {\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);\n      iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }" if (parenthesized_expression "(addext_conf != (CONF *)0x0)" ( (binary_expression "addext_conf != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);\n      iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);\n      if (iVar12 == 0) {\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }" { (expression_statement "X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf);" (call_expression "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)addext_conf)" identifier (argument_list "((X509V3_CTX *)&ctx,(CONF *)addext_conf)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(CONF *)addext_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0);" (assignment_expression "iVar12 = X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0)" identifier (argument_list "((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",(X509 *)0x0)" ( (cast_expression "(CONF *)addext_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (string_literal ""default"" " string_content ") , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar12 == 0) {\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar14 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }" { (expression_statement "pcVar14 = "Error Loading command line extensions\n";" (assignment_expression "pcVar14 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) })) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((passin == (char *)0x0) &&\n       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "((passin == (char *)0x0) &&\n       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0))" ( (binary_expression "(passin == (char *)0x0) &&\n       (local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0)" (parenthesized_expression "(passin == (char *)0x0)" ( (binary_expression "passin == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0)" ( (comma_expression "local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password"), passin = local_538,\n       local_538 == (char *)0x0" (assignment_expression "local_538 = NCONF_get_string((CONF *)req_conf,"req","input_password")" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,"req","input_password")" identifier (argument_list "((CONF *)req_conf,"req","input_password")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""input_password"" " string_content ") )))) , (comma_expression "passin = local_538,\n       local_538 == (char *)0x0" (assignment_expression "passin = local_538" identifier = identifier) , (binary_expression "local_538 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((passout == (char *)0x0) &&\n       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "((passout == (char *)0x0) &&\n       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0))" ( (binary_expression "(passout == (char *)0x0) &&\n       (local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0)" (parenthesized_expression "(passout == (char *)0x0)" ( (binary_expression "passout == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0)" ( (comma_expression "local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password"), passout = local_534,\n       local_534 == (char *)0x0" (assignment_expression "local_534 = NCONF_get_string((CONF *)req_conf,"req","output_password")" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,"req","output_password")" identifier (argument_list "((CONF *)req_conf,"req","output_password")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""output_password"" " string_content ") )))) , (comma_expression "passout = local_534,\n       local_534 == (char *)0x0" (assignment_expression "passout = local_534" identifier = identifier) , (binary_expression "local_534 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar13 = "string_mask";" (assignment_expression "pcVar13 = "string_mask"" identifier = (string_literal ""string_mask"" " string_content ")) ;) (expression_statement "psVar18 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask");" (assignment_expression "psVar18 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","string_mask")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string((CONF *)req_conf,"req","string_mask")" identifier (argument_list "((CONF *)req_conf,"req","string_mask")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""string_mask"" " string_content ") ))))) ;) (if_statement "if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);\n      if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" if (parenthesized_expression "(psVar18 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar18 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);\n      if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" else (compound_statement "{\n      iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);\n      if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" { (expression_statement "iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18);" (assignment_expression "iVar12 = ASN1_STRING_set_default_mask_asc((char *)psVar18)" identifier = (call_expression "ASN1_STRING_set_default_mask_asc((char *)psVar18)" identifier (argument_list "((char *)psVar18)" ( (cast_expression "(char *)psVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar12 == 0) {\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar13 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }" { (expression_statement "pcVar13 = "Invalid global string mask setting %s\n";" (assignment_expression "pcVar13 = "Invalid global string mask setting %s\n"" identifier = (string_literal ""Invalid global string mask setting %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004fba6;" goto statement_identifier ;) })) }))) (if_statement "if (local_588 == 0x1000) goto LAB_0004f5da;" if (parenthesized_expression "(local_588 == 0x1000)" ( (binary_expression "local_588 == 0x1000" identifier == number_literal) )) (goto_statement "goto LAB_0004f5da;" goto statement_identifier ;)) (expression_statement "pcVar13 = "utf8";" (assignment_expression "pcVar13 = "utf8"" identifier = (string_literal ""utf8"" " string_content ")) ;) (expression_statement "pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","utf8");" (assignment_expression "pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","utf8")" identifier = (cast_expression "(byte *)NCONF_get_string((CONF *)req_conf,"req","utf8")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string((CONF *)req_conf,"req","utf8")" identifier (argument_list "((CONF *)req_conf,"req","utf8")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""utf8"" " string_content ") ))))) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "bVar33 = pbVar19 == (byte *)0x0;" (assignment_expression "bVar33 = pbVar19 == (byte *)0x0" identifier = (binary_expression "pbVar19 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar33) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4ec = 0x1001;" (assignment_expression "local_4ec = 0x1001" identifier = number_literal) ;) (goto_statement "goto LAB_0004f11f;" goto statement_identifier ;) })) (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "pbVar30 = &DAT_0007e7a8;" (assignment_expression "pbVar30 = &DAT_0007e7a8" identifier = (pointer_expression "&DAT_0007e7a8" & identifier)) ;) (goto_statement "goto code_r0x0004f105;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;) (labeled_statement "LAB_0004e43d:\n  while (iVar12 != 0x15) {\n    if (iVar12 < 0x16) {\n      if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar12) {\n      if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar12 != 0x24) goto LAB_0004e430;\n      pcVar13 = opt_arg();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar9 = *pcVar13;\n      if (cVar9 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar12 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar12 < 0x1b) {\n      if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1d) {\n      local_51c = opt_arg();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar12) {\n      if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1b) {\n      pcVar13 = opt_arg();\n      iVar12 = set_nameopt(pcVar13);\n      if (iVar12 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar12 != 0x1c) goto LAB_0004e430;\n    pcVar13 = opt_arg();\n    iVar12 = set_cert_ex(&reqflag,pcVar13);\n    if (iVar12 == 0) goto LAB_0004e51a;\n    iVar12 = opt_next();\n    if (iVar12 == 0) goto LAB_0004e6f0;\n  }" statement_identifier : (while_statement "while (iVar12 != 0x15) {\n    if (iVar12 < 0x16) {\n      if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar12) {\n      if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar12 != 0x24) goto LAB_0004e430;\n      pcVar13 = opt_arg();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar9 = *pcVar13;\n      if (cVar9 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar12 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar12 < 0x1b) {\n      if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1d) {\n      local_51c = opt_arg();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar12) {\n      if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1b) {\n      pcVar13 = opt_arg();\n      iVar12 = set_nameopt(pcVar13);\n      if (iVar12 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar12 != 0x1c) goto LAB_0004e430;\n    pcVar13 = opt_arg();\n    iVar12 = set_cert_ex(&reqflag,pcVar13);\n    if (iVar12 == 0) goto LAB_0004e51a;\n    iVar12 = opt_next();\n    if (iVar12 == 0) goto LAB_0004e6f0;\n  }" while (parenthesized_expression "(iVar12 != 0x15)" ( (binary_expression "iVar12 != 0x15" identifier != number_literal) )) (compound_statement "{\n    if (iVar12 < 0x16) {\n      if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar12) {\n      if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar12 != 0x24) goto LAB_0004e430;\n      pcVar13 = opt_arg();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar9 = *pcVar13;\n      if (cVar9 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar12 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar12 < 0x1b) {\n      if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1d) {\n      local_51c = opt_arg();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar12) {\n      if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar12 == 0x1b) {\n      pcVar13 = opt_arg();\n      iVar12 = set_nameopt(pcVar13);\n      if (iVar12 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar12 != 0x1c) goto LAB_0004e430;\n    pcVar13 = opt_arg();\n    iVar12 = set_cert_ex(&reqflag,pcVar13);\n    if (iVar12 == 0) goto LAB_0004e51a;\n    iVar12 = opt_next();\n    if (iVar12 == 0) goto LAB_0004e6f0;\n  }" { (if_statement "if (iVar12 < 0x16) {\n      if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar12 < 0x16)" ( (binary_expression "iVar12 < 0x16" identifier < number_literal) )) (compound_statement "{\n      if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar12 == 10) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }\n      else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }" if (parenthesized_expression "(iVar12 == 10)" ( (binary_expression "iVar12 == 10" identifier == number_literal) )) (compound_statement "{\n        pcVar13 = opt_arg();\n        result = (undefined1 *)&keyform;\n        pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);\n      }" { (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "result = (undefined1 *)&keyform;" (assignment_expression "result = (undefined1 *)&keyform" identifier = (cast_expression "(undefined1 *)&keyform" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&keyform" & identifier))) ;) (expression_statement "pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result);" (assignment_expression "pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result)" identifier = (cast_expression "(ASN1_INTEGER *)opt_format(pcVar13,0x7be,(int *)result)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "opt_format(pcVar13,0x7be,(int *)result)" identifier (argument_list "(pcVar13,0x7be,(int *)result)" ( identifier , number_literal , (cast_expression "(int *)result" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) }) (else_clause "else if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }" else (if_statement "if (iVar12 < 0xb) {\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }\n      else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }" if (parenthesized_expression "(iVar12 < 0xb)" ( (binary_expression "iVar12 < 0xb" identifier < number_literal) )) (compound_statement "{\n        if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n      }" { (if_statement "if (iVar12 == 4) {\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar12 == 4)" ( (binary_expression "iVar12 == 4" identifier == number_literal) )) (compound_statement "{\n          pcVar13 = opt_arg();\n          local_540 = setup_engine(pcVar13,0);\n          goto LAB_0004e430;\n        }" { (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_540 = setup_engine(pcVar13,0);" (assignment_expression "local_540 = setup_engine(pcVar13,0)" identifier = (call_expression "setup_engine(pcVar13,0)" identifier (argument_list "(pcVar13,0)" ( identifier , number_literal )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (4 < iVar12) {\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }" if (parenthesized_expression "(4 < iVar12)" ( (binary_expression "4 < iVar12" number_literal < identifier) )) (compound_statement "{\n          if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar13 = opt_arg();\n          local_544 = (ENGINE *)ENGINE_by_id(pcVar13);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          result = *argv;\n          pcVar13 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);\n          goto LAB_0004e51a;\n        }" { (if_statement "if (iVar12 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar12 == 7)" ( (binary_expression "iVar12 == 7" identifier == number_literal) )) (compound_statement "{\n            local_56c = 1;\n            goto LAB_0004e430;\n          }" { (expression_statement "local_56c = 1;" (assignment_expression "local_56c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (7 < iVar12) {\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(7 < iVar12)" ( (binary_expression "7 < iVar12" number_literal < identifier) )) (compound_statement "{\n            if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar12 == 8) {\n              bVar34 = true;\n            }\n            else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }" if (parenthesized_expression "(iVar12 == 8)" ( (binary_expression "iVar12 == 8" identifier == number_literal) )) (compound_statement "{\n              bVar34 = true;\n            }" { (expression_statement "bVar34 = true;" (assignment_expression "bVar34 = true" identifier = true) ;) }) (else_clause "else if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }" else (if_statement "if (iVar12 == 9) {\n              local_560 = (BIO *)opt_arg();\n            }" if (parenthesized_expression "(iVar12 == 9)" ( (binary_expression "iVar12 == 9" identifier == number_literal) )) (compound_statement "{\n              local_560 = (BIO *)opt_arg();\n            }" { (expression_statement "local_560 = (BIO *)opt_arg();" (assignment_expression "local_560 = (BIO *)opt_arg()" identifier = (cast_expression "(BIO *)opt_arg()" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "opt_arg()" identifier (argument_list "()" ( ))))) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 != 5) {\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar12 != 5)" ( (binary_expression "iVar12 != 5" identifier != number_literal) )) (compound_statement "{\n            if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar12 == 6) {\n              local_514 = opt_arg();\n            }" if (parenthesized_expression "(iVar12 == 6)" ( (binary_expression "iVar12 == 6" identifier == number_literal) )) (compound_statement "{\n              local_514 = opt_arg();\n            }" { (expression_statement "local_514 = opt_arg();" (assignment_expression "local_514 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) })) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_544 = (ENGINE *)ENGINE_by_id(pcVar13);" (assignment_expression "local_544 = (ENGINE *)ENGINE_by_id(pcVar13)" identifier = (cast_expression "(ENGINE *)ENGINE_by_id(pcVar13)" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ENGINE_by_id(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))))) ;) (if_statement "if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;" if (parenthesized_expression "(local_544 != (ENGINE *)0x0)" ( (binary_expression "local_544 != (ENGINE *)0x0" identifier != (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "result = *argv;" (assignment_expression "result = *argv" identifier = (pointer_expression "*argv" * identifier)) ;) (expression_statement "pcVar13 = "Can\'t find keygen engine %s\n";" (assignment_expression "pcVar13 = "Can\'t find keygen engine %s\n"" identifier = (string_literal ""Can\'t find keygen engine %s\n"" " string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0004e4a9:\n          BIO_printf((BIO *)bio_err,pcVar13,result);" statement_identifier : (expression_statement "BIO_printf((BIO *)bio_err,pcVar13,result);" (call_expression "BIO_printf((BIO *)bio_err,pcVar13,result)" identifier (argument_list "((BIO *)bio_err,pcVar13,result)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }" if (parenthesized_expression "(iVar12 == 1)" ( (binary_expression "iVar12 == 1" identifier == number_literal) )) (compound_statement "{\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          opt_help((OPTIONS *)req_options);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "opt_help((OPTIONS *)req_options);" (call_expression "opt_help((OPTIONS *)req_options)" identifier (argument_list "((OPTIONS *)req_options)" ( (cast_expression "(OPTIONS *)req_options" ( (type_descriptor "OPTIONS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (iVar12 < 2) {\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }" if (parenthesized_expression "(iVar12 < 2)" ( (binary_expression "iVar12 < 2" identifier < number_literal) )) (compound_statement "{\n          if (iVar12 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }" { (if_statement "if (iVar12 != -1) goto LAB_0004e430;" if (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 2) {\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }\n        else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }" if (parenthesized_expression "(iVar12 == 2)" ( (binary_expression "iVar12 == 2" identifier == number_literal) )) (compound_statement "{\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&informat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }" { (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "result = (undefined1 *)&informat;" (assignment_expression "result = (undefined1 *)&informat" identifier = (cast_expression "(undefined1 *)&informat" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&informat" & identifier))) ;) (expression_statement "pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);" (assignment_expression "pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result)" identifier = (cast_expression "(ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "opt_format(pcVar13,2,(int *)result)" identifier (argument_list "(pcVar13,2,(int *)result)" ( identifier , number_literal , (cast_expression "(int *)result" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) }) (else_clause "else {\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }" else (compound_statement "{\n          if (iVar12 != 3) goto LAB_0004e430;\n          pcVar13 = opt_arg();\n          result = (undefined1 *)&outformat;\n          pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);\n        }" { (if_statement "if (iVar12 != 3) goto LAB_0004e430;" if (parenthesized_expression "(iVar12 != 3)" ( (binary_expression "iVar12 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "result = (undefined1 *)&outformat;" (assignment_expression "result = (undefined1 *)&outformat" identifier = (cast_expression "(undefined1 *)&outformat" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&outformat" & identifier))) ;) (expression_statement "pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result);" (assignment_expression "pAVar17 = (ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result)" identifier = (cast_expression "(ASN1_INTEGER *)opt_format(pcVar13,2,(int *)result)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "opt_format(pcVar13,2,(int *)result)" identifier (argument_list "(pcVar13,2,(int *)result)" ( identifier , number_literal , (cast_expression "(int *)result" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) }))) }) (else_clause "else {\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }" else (compound_statement "{\n        if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }\n        if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }\n      }" { (if_statement "if (iVar12 == 0xf) {\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar12 == 0xf)" ( (binary_expression "iVar12 == 0xf" identifier == number_literal) )) (compound_statement "{\n          local_548 = (BIO *)opt_arg();\n          goto LAB_0004e430;\n        }" { (expression_statement "local_548 = (BIO *)opt_arg();" (assignment_expression "local_548 = (BIO *)opt_arg()" identifier = (cast_expression "(BIO *)opt_arg()" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "opt_arg()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 < 0x10) {\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar12 < 0x10)" ( (binary_expression "iVar12 < 0x10" identifier < number_literal) )) (compound_statement "{\n          if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }\n          goto LAB_0004e430;\n        }" { (if_statement "if (iVar12 == 0xc) {\n            local_50c = opt_arg();\n          }\n          else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }" if (parenthesized_expression "(iVar12 == 0xc)" ( (binary_expression "iVar12 == 0xc" identifier == number_literal) )) (compound_statement "{\n            local_50c = opt_arg();\n          }" { (expression_statement "local_50c = opt_arg();" (assignment_expression "local_50c = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }" else (if_statement "if (iVar12 < 0xc) {\n            local_52c = opt_arg();\n          }\n          else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }" if (parenthesized_expression "(iVar12 < 0xc)" ( (binary_expression "iVar12 < 0xc" identifier < number_literal) )) (compound_statement "{\n            local_52c = opt_arg();\n          }" { (expression_statement "local_52c = opt_arg();" (assignment_expression "local_52c = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }" else (if_statement "if (iVar12 == 0xd) {\n            local_518 = opt_arg();\n          }\n          else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }" if (parenthesized_expression "(iVar12 == 0xd)" ( (binary_expression "iVar12 == 0xd" identifier == number_literal) )) (compound_statement "{\n            local_518 = opt_arg();\n          }" { (expression_statement "local_518 = opt_arg();" (assignment_expression "local_518 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }" else (if_statement "if (iVar12 == 0xe) {\n            local_534 = opt_arg();\n          }" if (parenthesized_expression "(iVar12 == 0xe)" ( (binary_expression "iVar12 == 0xe" identifier == number_literal) )) (compound_statement "{\n            local_534 = opt_arg();\n          }" { (expression_statement "local_534 = opt_arg();" (assignment_expression "local_534 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) })))))))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x12) {\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }\n        else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }" if (parenthesized_expression "(iVar12 == 0x12)" ( (binary_expression "iVar12 == 0x12" identifier == number_literal) )) (compound_statement "{\n          if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);\n        }" { (if_statement "if ((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)) goto LAB_0004e51a;" if (parenthesized_expression "((local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0))" ( (binary_expression "(local_558 == (stack_st_OPENSSL_STRING *)0x0) &&\n             (local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)" (parenthesized_expression "(local_558 == (stack_st_OPENSSL_STRING *)0x0)" ( (binary_expression "local_558 == (stack_st_OPENSSL_STRING *)0x0" identifier == (cast_expression "(stack_st_OPENSSL_STRING *)0x0" ( (type_descriptor "stack_st_OPENSSL_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0)" ( (comma_expression "local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(),\n             local_558 == (stack_st_OPENSSL_STRING *)0x0" (assignment_expression "local_558 = (stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null()" identifier = (cast_expression "(stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null()" ( (type_descriptor "stack_st_OPENSSL_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_new_null()" identifier (argument_list "()" ( ))))) , (binary_expression "local_558 == (stack_st_OPENSSL_STRING *)0x0" identifier == (cast_expression "(stack_st_OPENSSL_STRING *)0x0" ( (type_descriptor "stack_st_OPENSSL_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13);" (assignment_expression "pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13)" identifier = (cast_expression "(ASN1_INTEGER *)OPENSSL_sk_push(local_558,pcVar13)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_push(local_558,pcVar13)" identifier (argument_list "(local_558,pcVar13)" ( identifier , identifier ))))) ;) }) (else_clause "else {\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }" else (compound_statement "{\n          if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar12 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          pcVar13 = opt_arg();\n          pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);\n        }" { (if_statement "if (0x12 < iVar12) {\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(0x12 < iVar12)" ( (binary_expression "0x12 < iVar12" number_literal < identifier) )) (compound_statement "{\n            if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar12 == 0x13) {\n              batch = 1;\n            }\n            else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }" if (parenthesized_expression "(iVar12 == 0x13)" ( (binary_expression "iVar12 == 0x13" identifier == number_literal) )) (compound_statement "{\n              batch = 1;\n            }" { (expression_statement "batch = 1;" (assignment_expression "batch = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar12 == 0x14) {\n              bVar5 = true;\n            }" else (if_statement "if (iVar12 == 0x14) {\n              bVar5 = true;\n            }" if (parenthesized_expression "(iVar12 == 0x14)" ( (binary_expression "iVar12 == 0x14" identifier == number_literal) )) (compound_statement "{\n              bVar5 = true;\n            }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x10) {\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar12 == 0x10)" ( (binary_expression "iVar12 == 0x10" identifier == number_literal) )) (compound_statement "{\n            local_570 = (EVP_PKEY *)opt_arg();\n            bVar34 = true;\n            goto LAB_0004e430;\n          }" { (expression_statement "local_570 = (EVP_PKEY *)opt_arg();" (assignment_expression "local_570 = (EVP_PKEY *)opt_arg()" identifier = (cast_expression "(EVP_PKEY *)opt_arg()" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "opt_arg()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar34 = true;" (assignment_expression "bVar34 = true" identifier = true) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 != 0x11) goto LAB_0004e430;" if (parenthesized_expression "(iVar12 != 0x11)" ( (binary_expression "iVar12 != 0x11" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (if_statement "if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;" if (parenthesized_expression "((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))" ( (binary_expression "(local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0)" (parenthesized_expression "(local_55c == 0)" ( (binary_expression "local_55c == 0" identifier == number_literal) )) && (parenthesized_expression "(local_55c = OPENSSL_sk_new_null(), local_55c == 0)" ( (comma_expression "local_55c = OPENSSL_sk_new_null(), local_55c == 0" (assignment_expression "local_55c = OPENSSL_sk_new_null()" identifier = (call_expression "OPENSSL_sk_new_null()" identifier (argument_list "()" ( )))) , (binary_expression "local_55c == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13);" (assignment_expression "pAVar17 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13)" identifier = (cast_expression "(ASN1_INTEGER *)OPENSSL_sk_push(local_55c,pcVar13)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_push(local_55c,pcVar13)" identifier (argument_list "(local_55c,pcVar13)" ( identifier , identifier ))))) ;) }))) }))))) (labeled_statement "joined_r0x0004ee90:\n      if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;" statement_identifier : (if_statement "if (pAVar17 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;" if (parenthesized_expression "(pAVar17 == (ASN1_INTEGER *)0x0)" ( (binary_expression "pAVar17 == (ASN1_INTEGER *)0x0" identifier == (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar12 == 0x20)" ( (binary_expression "iVar12 == 0x20" identifier == number_literal) )) (compound_statement "{\n      local_53c = 1;\n      goto LAB_0004e430;\n    }" { (expression_statement "local_53c = 1;" (assignment_expression "local_53c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x20 < iVar12) {\n      if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar12 != 0x24) goto LAB_0004e430;\n      pcVar13 = opt_arg();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar9 = *pcVar13;\n      if (cVar9 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }" if (parenthesized_expression "(0x20 < iVar12)" ( (binary_expression "0x20 < iVar12" number_literal < identifier) )) (compound_statement "{\n      if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar12 != 0x24) goto LAB_0004e430;\n      pcVar13 = opt_arg();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar9 = *pcVar13;\n      if (cVar9 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }" { (if_statement "if (iVar12 == 0x25) {\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar12 == 0x25)" ( (binary_expression "iVar12 == 0x25" identifier == number_literal) )) (compound_statement "{\n        local_528 = (char **)opt_arg();\n        goto LAB_0004e430;\n      }" { (expression_statement "local_528 = (char **)opt_arg();" (assignment_expression "local_528 = (char **)opt_arg()" identifier = (cast_expression "(char **)opt_arg()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "opt_arg()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x25 < iVar12) {\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(0x25 < iVar12)" ( (binary_expression "0x25 < iVar12" number_literal < identifier) )) (compound_statement "{\n        if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }" { (if_statement "if (iVar12 == 0x28) {\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar12 == 0x28)" ( (binary_expression "iVar12 == 0x28" identifier == number_literal) )) (compound_statement "{\n          pcVar13 = opt_unknown();\n          iVar12 = opt_md(pcVar13,&md_alg);\n          if (iVar12 == 0) goto LAB_0004e51a;\n          local_510 = md_alg;\n          goto LAB_0004e430;\n        }" { (expression_statement "pcVar13 = opt_unknown();" (assignment_expression "pcVar13 = opt_unknown()" identifier = (call_expression "opt_unknown()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar12 = opt_md(pcVar13,&md_alg);" (assignment_expression "iVar12 = opt_md(pcVar13,&md_alg)" identifier = (call_expression "opt_md(pcVar13,&md_alg)" identifier (argument_list "(pcVar13,&md_alg)" ( identifier , (pointer_expression "&md_alg" & identifier) )))) ;) (if_statement "if (iVar12 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_510 = md_alg;" (assignment_expression "local_510 = md_alg" identifier = identifier) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x28 < iVar12) {\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }" if (parenthesized_expression "(0x28 < iVar12)" ( (binary_expression "0x28 < iVar12" number_literal < identifier) )) (compound_statement "{\n          if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }" { (if_statement "if ((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)) goto LAB_0004e430;" if (parenthesized_expression "((1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0))" ( (binary_expression "(1 < iVar12 - 0x5ddU) || (iVar12 = opt_rand(iVar12), iVar12 != 0)" (parenthesized_expression "(1 < iVar12 - 0x5ddU)" ( (binary_expression "1 < iVar12 - 0x5ddU" number_literal < (binary_expression "iVar12 - 0x5ddU" identifier - number_literal)) )) || (parenthesized_expression "(iVar12 = opt_rand(iVar12), iVar12 != 0)" ( (comma_expression "iVar12 = opt_rand(iVar12), iVar12 != 0" (assignment_expression "iVar12 = opt_rand(iVar12)" identifier = (call_expression "opt_rand(iVar12)" identifier (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }\n        else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }" if (parenthesized_expression "(iVar12 == 0x26)" ( (binary_expression "iVar12 == 0x26" identifier == number_literal) )) (compound_statement "{\n          local_524 = (stack_st_CONF_VALUE *)opt_arg();\n        }" { (expression_statement "local_524 = (stack_st_CONF_VALUE *)opt_arg();" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)opt_arg()" identifier = (cast_expression "(stack_st_CONF_VALUE *)opt_arg()" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "opt_arg()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }" else (if_statement "if (iVar12 == 0x27) {\n          bVar34 = true;\n          bVar4 = true;\n        }" if (parenthesized_expression "(iVar12 == 0x27)" ( (binary_expression "iVar12 == 0x27" identifier == number_literal) )) (compound_statement "{\n          bVar34 = true;\n          bVar4 = true;\n        }" { (expression_statement "bVar34 = true;" (assignment_expression "bVar34 = true" identifier = true) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x22) {\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar12 == 0x22)" ( (binary_expression "iVar12 == 0x22" identifier == number_literal) )) (compound_statement "{\n        pcVar13 = opt_arg();\n        result = (undefined1 *)0xa;\n        local_530 = strtol(pcVar13,(char **)0x0,10);\n        goto LAB_0004e430;\n      }" { (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "result = (undefined1 *)0xa;" (assignment_expression "result = (undefined1 *)0xa" identifier = (cast_expression "(undefined1 *)0xa" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_530 = strtol(pcVar13,(char **)0x0,10);" (assignment_expression "local_530 = strtol(pcVar13,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar13,(char **)0x0,10)" identifier (argument_list "(pcVar13,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar12 < 0x22)" ( (binary_expression "iVar12 < 0x22" identifier < number_literal) )) (compound_statement "{\n        local_57c = 1;\n        goto LAB_0004e430;\n      }" { (expression_statement "local_57c = 1;" (assignment_expression "local_57c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }" if (parenthesized_expression "(iVar12 == 0x23)" ( (binary_expression "iVar12 == 0x23" identifier == number_literal) )) (compound_statement "{\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar13 = opt_arg();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);\n        pAVar17 = local_554;\n        goto joined_r0x0004ee90;\n      }" { (if_statement "if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }" if (parenthesized_expression "(local_554 != (ASN1_INTEGER *)0x0)" ( (binary_expression "local_554 != (ASN1_INTEGER *)0x0" identifier != (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar13 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }" { (expression_statement "pcVar13 = "Serial number supplied twice\n";" (assignment_expression "pcVar13 = "Serial number supplied twice\n"" identifier = (string_literal ""Serial number supplied twice\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e4a9;" goto statement_identifier ;) })) (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13);" (assignment_expression "local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13)" identifier = (call_expression "s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar13)" identifier (argument_list "((X509V3_EXT_METHOD *)0x0,pcVar13)" ( (cast_expression "(X509V3_EXT_METHOD *)0x0" ( (type_descriptor "X509V3_EXT_METHOD *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "pAVar17 = local_554;" (assignment_expression "pAVar17 = local_554" identifier = identifier) ;) (goto_statement "goto joined_r0x0004ee90;" goto statement_identifier ;) })) (if_statement "if (iVar12 != 0x24) goto LAB_0004e430;" if (parenthesized_expression "(iVar12 != 0x24)" ( (binary_expression "iVar12 != 0x24" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }" if (parenthesized_expression "(local_54c == 0)" ( (binary_expression "local_54c == 0" identifier == number_literal) )) (compound_statement "{\n        local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }" { (expression_statement "local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp);" (assignment_expression "local_54c = OPENSSL_LH_new(ext_name_hash,ext_name_cmp)" identifier = (call_expression "OPENSSL_LH_new(ext_name_hash,ext_name_cmp)" identifier (argument_list "(ext_name_hash,ext_name_cmp)" ( identifier , identifier )))) ;) (expression_statement "type = BIO_s_mem();" (assignment_expression "type = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_550 = BIO_new(type);" (assignment_expression "local_550 = BIO_new(type)" identifier = (call_expression "BIO_new(type)" identifier (argument_list "(type)" ( identifier )))) ;) (if_statement "if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "((local_54c == 0) || (local_550 == (BIO *)0x0))" ( (binary_expression "(local_54c == 0) || (local_550 == (BIO *)0x0)" (parenthesized_expression "(local_54c == 0)" ( (binary_expression "local_54c == 0" identifier == number_literal) )) || (parenthesized_expression "(local_550 == (BIO *)0x0)" ( (binary_expression "local_550 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) })) (expression_statement "cVar9 = *pcVar13;" (assignment_expression "cVar9 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (if_statement "if (cVar9 != '\0') goto LAB_0004ea31;" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ea31;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ea4d;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar12 == 0x1a)" ( (binary_expression "iVar12 == 0x1a" identifier == number_literal) )) (compound_statement "{\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }" { (expression_statement "local_588 = 0x1000;" (assignment_expression "local_588 = 0x1000" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 < 0x1b) {\n      if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar12 < 0x1b)" ( (binary_expression "iVar12 < 0x1b" identifier < number_literal) )) (compound_statement "{\n      if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar12 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar12 == 0x17)" ( (binary_expression "iVar12 == 0x17" identifier == number_literal) )) (compound_statement "{\n        bVar3 = true;\n      }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }) (else_clause "else if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar12 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar12 < 0x17)" ( (binary_expression "iVar12 < 0x17" identifier < number_literal) )) (compound_statement "{\n        local_578 = 1;\n      }" { (expression_statement "local_578 = 1;" (assignment_expression "local_578 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar12 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar12 == 0x18)" ( (binary_expression "iVar12 == 0x18" identifier == number_literal) )) (compound_statement "{\n        local_580 = 1;\n      }" { (expression_statement "local_580 = 1;" (assignment_expression "local_580 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar12 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar12 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar12 == 0x19)" ( (binary_expression "iVar12 == 0x19" identifier == number_literal) )) (compound_statement "{\n        bVar2 = true;\n      }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })))))))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x1d) {\n      local_51c = opt_arg();\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar12 == 0x1d)" ( (binary_expression "iVar12 == 0x1d" identifier == number_literal) )) (compound_statement "{\n      local_51c = opt_arg();\n      goto LAB_0004e430;\n    }" { (expression_statement "local_51c = opt_arg();" (assignment_expression "local_51c = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x1d < iVar12) {\n      if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(0x1d < iVar12)" ( (binary_expression "0x1d < iVar12" number_literal < identifier) )) (compound_statement "{\n      if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar12 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }" if (parenthesized_expression "(iVar12 == 0x1e)" ( (binary_expression "iVar12 == 0x1e" identifier == number_literal) )) (compound_statement "{\n        local_584 = 1;\n      }" { (expression_statement "local_584 = 1;" (assignment_expression "local_584 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }" else (if_statement "if (iVar12 == 0x1f) {\n        local_594 = 1;\n      }" if (parenthesized_expression "(iVar12 == 0x1f)" ( (binary_expression "iVar12 == 0x1f" identifier == number_literal) )) (compound_statement "{\n        local_594 = 1;\n      }" { (expression_statement "local_594 = 1;" (assignment_expression "local_594 = 1" identifier = number_literal) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar12 == 0x1b) {\n      pcVar13 = opt_arg();\n      iVar12 = set_nameopt(pcVar13);\n      if (iVar12 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }" if (parenthesized_expression "(iVar12 == 0x1b)" ( (binary_expression "iVar12 == 0x1b" identifier == number_literal) )) (compound_statement "{\n      pcVar13 = opt_arg();\n      iVar12 = set_nameopt(pcVar13);\n      if (iVar12 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }" { (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar12 = set_nameopt(pcVar13);" (assignment_expression "iVar12 = set_nameopt(pcVar13)" identifier = (call_expression "set_nameopt(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) (if_statement "if (iVar12 != 0) goto LAB_0004e430;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar12 != 0x1c) goto LAB_0004e430;" if (parenthesized_expression "(iVar12 != 0x1c)" ( (binary_expression "iVar12 != 0x1c" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "pcVar13 = opt_arg();" (assignment_expression "pcVar13 = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar12 = set_cert_ex(&reqflag,pcVar13);" (assignment_expression "iVar12 = set_cert_ex(&reqflag,pcVar13)" identifier = (call_expression "set_cert_ex(&reqflag,pcVar13)" identifier (argument_list "(&reqflag,pcVar13)" ( (pointer_expression "&reqflag" & identifier) , identifier )))) ;) (if_statement "if (iVar12 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "iVar12 = opt_next();" (assignment_expression "iVar12 = opt_next()" identifier = (call_expression "opt_next()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 == 0) goto LAB_0004e6f0;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e6f0;" goto statement_identifier ;)) }))) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) (labeled_statement "LAB_0004ea31:\n  ppuVar16 = __ctype_b_loc();" statement_identifier : (expression_statement "ppuVar16 = __ctype_b_loc();" (assignment_expression "ppuVar16 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;" if (parenthesized_expression "((*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar16 + cVar9 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar16 + cVar9 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar16 + cVar9 * 2 + 1)" ( (binary_expression "(int)*ppuVar16 + cVar9 * 2 + 1" (binary_expression "(int)*ppuVar16 + cVar9 * 2" (cast_expression "(int)*ppuVar16" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar16" * identifier)) + (binary_expression "cVar9 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ea4d;" goto statement_identifier ;)) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "cVar9 = *pcVar13;" (assignment_expression "cVar9 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (if_statement "if (cVar9 == '\0') goto LAB_0004e51a;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ea31;" goto statement_identifier ;) (labeled_statement "LAB_0004ea4d:\n  pcVar14 = strchr(pcVar13,0x3d);" statement_identifier : (expression_statement "pcVar14 = strchr(pcVar13,0x3d);" (assignment_expression "pcVar14 = strchr(pcVar13,0x3d)" identifier = (call_expression "strchr(pcVar13,0x3d)" identifier (argument_list "(pcVar13,0x3d)" ( identifier , number_literal )))) ;)) (if_statement "if (pcVar14 == (char *)0x0) goto LAB_0004e51a;" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "pcVar28 = CRYPTO_strdup(pcVar13,"../apps/req.c",0xbd);" (assignment_expression "pcVar28 = CRYPTO_strdup(pcVar13,"../apps/req.c",0xbd)" identifier = (call_expression "CRYPTO_strdup(pcVar13,"../apps/req.c",0xbd)" identifier (argument_list "(pcVar13,"../apps/req.c",0xbd)" ( identifier , (string_literal ""../apps/req.c"" " string_content ") , number_literal )))) ;) (if_statement "if (pcVar28 == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }" if (parenthesized_expression "(pcVar28 == (char *)0x0)" ( (binary_expression "pcVar28 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }" { (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004f60c;" goto statement_identifier ;) })) (expression_statement "pcVar13 = pcVar28 + ((int)pcVar14 - (int)pcVar13);" (assignment_expression "pcVar13 = pcVar28 + ((int)pcVar14 - (int)pcVar13)" identifier = (binary_expression "pcVar28 + ((int)pcVar14 - (int)pcVar13)" identifier + (parenthesized_expression "((int)pcVar14 - (int)pcVar13)" ( (binary_expression "(int)pcVar14 - (int)pcVar13" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (pcVar28 < pcVar13) {\n    ppuVar16 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar13 = pcVar13 + -1;\n      if (pcVar28 == pcVar13) goto LAB_0004f4ba;\n    }\n  }" if (parenthesized_expression "(pcVar28 < pcVar13)" ( (binary_expression "pcVar28 < pcVar13" identifier < identifier) )) (compound_statement "{\n    ppuVar16 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar13 = pcVar13 + -1;\n      if (pcVar28 == pcVar13) goto LAB_0004f4ba;\n    }\n  }" { (expression_statement "ppuVar16 = __ctype_b_loc();" (assignment_expression "ppuVar16 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (while_statement "while ((*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar13 = pcVar13 + -1;\n      if (pcVar28 == pcVar13) goto LAB_0004f4ba;\n    }" while (parenthesized_expression "((*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar16 + pcVar13[-1] * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar16 + pcVar13[-1] * 2 + 1)" ( (binary_expression "(int)*ppuVar16 + pcVar13[-1] * 2 + 1" (binary_expression "(int)*ppuVar16 + pcVar13[-1] * 2" (cast_expression "(int)*ppuVar16" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar16" * identifier)) + (binary_expression "pcVar13[-1] * 2" (subscript_expression "pcVar13[-1]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      pcVar13 = pcVar13 + -1;\n      if (pcVar28 == pcVar13) goto LAB_0004f4ba;\n    }" { (expression_statement "pcVar13 = pcVar13 + -1;" (assignment_expression "pcVar13 = pcVar13 + -1" identifier = (binary_expression "pcVar13 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar28 == pcVar13) goto LAB_0004f4ba;" if (parenthesized_expression "(pcVar28 == pcVar13)" ( (binary_expression "pcVar28 == pcVar13" identifier == identifier) )) (goto_statement "goto LAB_0004f4ba;" goto statement_identifier ;)) })) })) (if_statement "if (pcVar13 == pcVar28) {\nLAB_0004f4ba:\n    CRYPTO_free(pcVar28);\n    goto LAB_0004e51a;\n  }" if (parenthesized_expression "(pcVar13 == pcVar28)" ( (binary_expression "pcVar13 == pcVar28" identifier == identifier) )) (compound_statement "{\nLAB_0004f4ba:\n    CRYPTO_free(pcVar28);\n    goto LAB_0004e51a;\n  }" { (labeled_statement "LAB_0004f4ba:\n    CRYPTO_free(pcVar28);" statement_identifier : (expression_statement "CRYPTO_free(pcVar28);" (call_expression "CRYPTO_free(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pBVar15 = (BIO *)OPENSSL_LH_insert(local_54c,pcVar28);" (assignment_expression "pBVar15 = (BIO *)OPENSSL_LH_insert(local_54c,pcVar28)" identifier = (cast_expression "(BIO *)OPENSSL_LH_insert(local_54c,pcVar28)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_LH_insert(local_54c,pcVar28)" identifier (argument_list "(local_54c,pcVar28)" ( identifier , identifier ))))) ;) (if_statement "if ((pBVar15 == (BIO *)0x0) &&\n     (iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0)) {\n    result = opt_arg();\n    iVar12 = BIO_printf(local_550,"%s\n",result);\n    if (iVar12 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }" if (parenthesized_expression "((pBVar15 == (BIO *)0x0) &&\n     (iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0))" ( (binary_expression "(pBVar15 == (BIO *)0x0) &&\n     (iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0)" (parenthesized_expression "(pBVar15 == (BIO *)0x0)" ( (binary_expression "pBVar15 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0)" ( (comma_expression "iVar12 = OPENSSL_LH_error(local_54c), pBVar15 = (BIO *)pcVar28, iVar12 == 0" (assignment_expression "iVar12 = OPENSSL_LH_error(local_54c)" identifier = (call_expression "OPENSSL_LH_error(local_54c)" identifier (argument_list "(local_54c)" ( identifier )))) , (comma_expression "pBVar15 = (BIO *)pcVar28, iVar12 == 0" (assignment_expression "pBVar15 = (BIO *)pcVar28" identifier = (cast_expression "(BIO *)pcVar28" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "iVar12 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n    result = opt_arg();\n    iVar12 = BIO_printf(local_550,"%s\n",result);\n    if (iVar12 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }" { (expression_statement "result = opt_arg();" (assignment_expression "result = opt_arg()" identifier = (call_expression "opt_arg()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar12 = BIO_printf(local_550,"%s\n",result);" (assignment_expression "iVar12 = BIO_printf(local_550,"%s\n",result)" identifier = (call_expression "BIO_printf(local_550,"%s\n",result)" identifier (argument_list "(local_550,"%s\n",result)" ( identifier , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier )))) ;) (if_statement "if (iVar12 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (compound_statement "{\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (expression_statement "local_560 = pBVar15;" (assignment_expression "local_560 = pBVar15" identifier = identifier) ;) (expression_statement "CRYPTO_free(local_560);" (call_expression "CRYPTO_free(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (labeled_statement "LAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;" statement_identifier : (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (labeled_statement "LAB_0004e51a:\n  pcVar14 = "%s: Use -help for summary.\n";" statement_identifier : (expression_statement "pcVar14 = "%s: Use -help for summary.\n";" (assignment_expression "pcVar14 = "%s: Use -help for summary.\n"" identifier = (string_literal ""%s: Use -help for summary.\n"" " string_content escape_sequence ")) ;)) (expression_statement "pcVar13 = (char *)ppcVar11;" (assignment_expression "pcVar13 = (char *)ppcVar11" identifier = (cast_expression "(char *)ppcVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0004e52c:\n  BIO_printf((BIO *)bio_err,pcVar14,pcVar13);" statement_identifier : (expression_statement "BIO_printf((BIO *)bio_err,pcVar14,pcVar13);" (call_expression "BIO_printf((BIO *)bio_err,pcVar14,pcVar13)" identifier (argument_list "((BIO *)bio_err,pcVar14,pcVar13)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;)) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e54e:\n  local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar12 = iVar12 + -1;\n    bVar8 = *pbVar19 < *pbVar30;\n    bVar33 = *pbVar19 == *pbVar30;\n    pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n    pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n    if (!bVar33) break;\ncode_r0x0004f105:\n    if (iVar12 == 0) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar12 = iVar12 + -1;\n    bVar8 = *pbVar19 < *pbVar30;\n    bVar33 = *pbVar19 == *pbVar30;\n    pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n    pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n    if (!bVar33) break;\ncode_r0x0004f105:\n    if (iVar12 == 0) break;\n  }" { (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar19 < *pbVar30;" (assignment_expression "bVar8 = *pbVar19 < *pbVar30" identifier = (binary_expression "*pbVar19 < *pbVar30" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar33 = *pbVar19 == *pbVar30;" (assignment_expression "bVar33 = *pbVar19 == *pbVar30" identifier = (binary_expression "*pbVar19 == *pbVar30" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if (!bVar33) break;" if (parenthesized_expression "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x0004f105:\n    if (iVar12 == 0) break;" statement_identifier : (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) })) (if_statement "if ((!bVar8 && !bVar33) == bVar8) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }" if (parenthesized_expression "((!bVar8 && !bVar33) == bVar8)" ( (binary_expression "(!bVar8 && !bVar33) == bVar8" (parenthesized_expression "(!bVar8 && !bVar33)" ( (binary_expression "!bVar8 && !bVar33" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }" { (labeled_statement "LAB_0004f5da:\n    local_4ec = 0x1000;" statement_identifier : (expression_statement "local_4ec = 0x1000;" (assignment_expression "local_4ec = 0x1000" identifier = number_literal) ;)) }) (else_clause "else {\n    local_4ec = 0x1001;\n  }" else (compound_statement "{\n    local_4ec = 0x1001;\n  }" { (expression_statement "local_4ec = 0x1001;" (assignment_expression "local_4ec = 0x1001" identifier = number_literal) ;) }))) (labeled_statement "LAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar13 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n    iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)\n    ;\n    if (iVar12 == 0) {\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }\n  }" statement_identifier : (if_statement "if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar13 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n    iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)\n    ;\n    if (iVar12 == 0) {\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }\n  }" if (parenthesized_expression "(local_524 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar13 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }" { (expression_statement "pcVar13 = "req_extensions";" (assignment_expression "pcVar13 = "req_extensions"" identifier = (string_literal ""req_extensions"" " string_content ")) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions");" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","req_extensions")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string((CONF *)req_conf,"req","req_extensions")" identifier (argument_list "((CONF *)req_conf,"req","req_extensions")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""req_extensions"" " string_content ") ))))) ;) (if_statement "if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;" if (parenthesized_expression "(local_524 != (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 != (stack_st_CONF_VALUE *)0x0" identifier != (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f12b;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0004f12b:\n    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n    iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)\n    ;\n    if (iVar12 == 0) {\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }\n  }" else (compound_statement "{\nLAB_0004f12b:\n    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n    iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)\n    ;\n    if (iVar12 == 0) {\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }\n  }" { (labeled_statement "LAB_0004f12b:\n    X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" statement_identifier : (expression_statement "X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);" (call_expression "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf)" identifier (argument_list "((X509V3_CTX *)&ctx,(CONF *)req_conf)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)\n    ;" (assignment_expression "iVar12 = X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)" identifier (argument_list "((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,(X509 *)0x0)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(char *)local_524" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar12 == 0) {\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar13 = "Error Loading request extension section %s\n";\n      psVar18 = local_524;\nLAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);\n      goto LAB_0004e54e;\n    }" { (expression_statement "pcVar13 = "Error Loading request extension section %s\n";" (assignment_expression "pcVar13 = "Error Loading request extension section %s\n"" identifier = (string_literal ""Error Loading request extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "psVar18 = local_524;" (assignment_expression "psVar18 = local_524" identifier = identifier) ;) (labeled_statement "LAB_0004fba6:\n      BIO_printf((BIO *)bio_err,pcVar13,psVar18);" statement_identifier : (expression_statement "BIO_printf((BIO *)bio_err,pcVar13,psVar18);" (call_expression "BIO_printf((BIO *)bio_err,pcVar13,psVar18)" identifier (argument_list "((BIO *)bio_err,pcVar13,psVar18)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;)) (goto_statement "goto LAB_0004e54e;" goto statement_identifier ;) })) })))) (if_statement "if (local_514 == (char *)0x0) {\nLAB_0004f1d1:\n    if ((pkey == (EVP_PKEY *)0x0) && (bVar34 != false)) {\n      app_RAND_load_conf(req_conf,"req");\n      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);\n      if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key");\n    pkey = (EVP_PKEY *)local_548;\n    if (local_548 != (BIO *)0x0) {\n      app_RAND_load_conf(req_conf,"req");\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" if (parenthesized_expression "(local_514 == (char *)0x0)" ( (binary_expression "local_514 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004f1d1:\n    if ((pkey == (EVP_PKEY *)0x0) && (bVar34 != false)) {\n      app_RAND_load_conf(req_conf,"req");\n      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);\n      if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }\n  }" { (labeled_statement "LAB_0004f1d1:\n    if ((pkey == (EVP_PKEY *)0x0) && (bVar34 != false)) {\n      app_RAND_load_conf(req_conf,"req");\n      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);\n      if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }" statement_identifier : (if_statement "if ((pkey == (EVP_PKEY *)0x0) && (bVar34 != false)) {\n      app_RAND_load_conf(req_conf,"req");\n      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);\n      if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }" if (parenthesized_expression "((pkey == (EVP_PKEY *)0x0) && (bVar34 != false))" ( (binary_expression "(pkey == (EVP_PKEY *)0x0) && (bVar34 != false)" (parenthesized_expression "(pkey == (EVP_PKEY *)0x0)" ( (binary_expression "pkey == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar34 != false)" ( (binary_expression "bVar34 != false" identifier != false) ))) )) (compound_statement "{\n      app_RAND_load_conf(req_conf,"req");\n      iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);\n      if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }" { (expression_statement "app_RAND_load_conf(req_conf,"req");" (call_expression "app_RAND_load_conf(req_conf,"req")" identifier (argument_list "(req_conf,"req")" ( identifier , (string_literal ""req"" " string_content ") ))) ;) (expression_statement "iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey);" (assignment_expression "iVar12 = NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey)" identifier = (call_expression "NCONF_get_number_e((CONF *)req_conf,"req","default_bits",&newkey)" identifier (argument_list "((CONF *)req_conf,"req","default_bits",&newkey)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""default_bits"" " string_content ") , (pointer_expression "&newkey" & identifier) )))) ;) (if_statement "if (iVar12 == 0) {\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        newkey = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }" { (expression_statement "newkey = 0x800;" (assignment_expression "newkey = 0x800" identifier = number_literal) ;) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }" { (labeled_statement "LAB_000500d7:\n          local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544);" (assignment_expression "local_570 = (EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544)" identifier = (cast_expression "(EVP_PKEY *)\n                      set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "set_keygen_ctx((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544)" identifier (argument_list "((char *)0x0,&pkey_type,&newkey,&keyalgstr,local_544)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&pkey_type" & identifier) , (pointer_expression "&newkey" & identifier) , (pointer_expression "&keyalgstr" & identifier) , identifier ))))) ;)) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004f2bc;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f245:\n        local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544);" (assignment_expression "local_570 = (EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544)" identifier = (cast_expression "(EVP_PKEY *)\n                    set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "set_keygen_ctx((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544)" identifier (argument_list "((char *)local_570,&pkey_type,&newkey,&keyalgstr,local_544)" ( (cast_expression "(char *)local_570" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&pkey_type" & identifier) , (pointer_expression "&newkey" & identifier) , (pointer_expression "&keyalgstr" & identifier) , identifier ))))) ;)) (if_statement "if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;" if (parenthesized_expression "(local_570 != (EVP_PKEY *)0x0)" ( (binary_expression "local_570 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f275;" goto statement_identifier ;)) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000501da:\n        x = (X509 *)0x0;" statement_identifier : (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" else (compound_statement "{\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" { (if_statement "if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;" if (parenthesized_expression "(local_570 != (EVP_PKEY *)0x0)" ( (binary_expression "local_570 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f245;" goto statement_identifier ;)) (labeled_statement "LAB_0004f275:\n        if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }" statement_identifier : (if_statement "if (newkey < 0x200) {\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }\n        else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }" if (parenthesized_expression "(newkey < 0x200)" ( (binary_expression "newkey < 0x200" identifier < number_literal) )) (compound_statement "{\n          if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;\n          BIO_printf((BIO *)bio_err,"private key length is too short,\n");\n          BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);\n        }" { (if_statement "if ((pkey_type != 0x74) && (pkey_type != 6)) goto LAB_0004f2b0;" if (parenthesized_expression "((pkey_type != 0x74) && (pkey_type != 6))" ( (binary_expression "(pkey_type != 0x74) && (pkey_type != 6)" (parenthesized_expression "(pkey_type != 0x74)" ( (binary_expression "pkey_type != 0x74" identifier != number_literal) )) && (parenthesized_expression "(pkey_type != 6)" ( (binary_expression "pkey_type != 6" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004f2b0;" goto statement_identifier ;)) (expression_statement "BIO_printf((BIO *)bio_err,"private key length is too short,\n");" (call_expression "BIO_printf((BIO *)bio_err,"private key length is too short,\n")" identifier (argument_list "((BIO *)bio_err,"private key length is too short,\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""private key length is too short,\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey);" (call_expression "BIO_printf((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey)" identifier (argument_list "((BIO *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,newkey)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""it needs to be at least %d bits, not %ld\n"" " string_content escape_sequence ") , number_literal , identifier ))) ;) }) (else_clause "else {\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }" else (compound_statement "{\n          if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }\n          if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar12 = 0;\n          if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);\n          iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);\n          if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts((BIO *)bio_err,"Error Generating Key\n");\n        }" { (if_statement "if ((0x4000 < newkey) && (pkey_type == 6)) {\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }" if (parenthesized_expression "((0x4000 < newkey) && (pkey_type == 6))" ( (binary_expression "(0x4000 < newkey) && (pkey_type == 6)" (parenthesized_expression "(0x4000 < newkey)" ( (binary_expression "0x4000 < newkey" number_literal < identifier) )) && (parenthesized_expression "(pkey_type == 6)" ( (binary_expression "pkey_type == 6" identifier == number_literal) ))) )) (compound_statement "{\n            pcVar13 = (char *)0x4000;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);\n          }" { (expression_statement "pcVar13 = (char *)0x4000;" (assignment_expression "pcVar13 = (char *)0x4000" identifier = (cast_expression "(char *)0x4000" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey);" (call_expression "BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey)" identifier (argument_list "((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,newkey)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal , identifier ))) ;) })) (if_statement "if ((pkey_type == 0x74) && (10000 < newkey)) {\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }" if (parenthesized_expression "((pkey_type == 0x74) && (10000 < newkey))" ( (binary_expression "(pkey_type == 0x74) && (10000 < newkey)" (parenthesized_expression "(pkey_type == 0x74)" ( (binary_expression "pkey_type == 0x74" identifier == number_literal) )) && (parenthesized_expression "(10000 < newkey)" ( (binary_expression "10000 < newkey" number_literal < identifier) ))) )) (compound_statement "{\n            pcVar13 = (char *)0x2710;\n            BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);\n          }" { (expression_statement "pcVar13 = (char *)0x2710;" (assignment_expression "pcVar13 = (char *)0x2710" identifier = (cast_expression "(char *)0x2710" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey);" (call_expression "BIO_printf((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey)" identifier (argument_list "((BIO *)bio_err,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,newkey)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal , identifier ))) ;) })) (labeled_statement "LAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;" statement_identifier : (if_statement "if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000500d7;" goto statement_identifier ;))) (labeled_statement "LAB_0004f2bc:\n          iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (if_statement "if (local_55c != 0) {\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }" if (parenthesized_expression "(local_55c != 0)" ( (binary_expression "local_55c != 0" identifier != number_literal) )) (compound_statement "{\n            for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }\n          }" { (for_statement "for (; iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20; iVar12 = iVar12 + 1) {\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }" for ( ; (comma_expression "iVar20 = OPENSSL_sk_num(local_55c), iVar12 < iVar20" (assignment_expression "iVar20 = OPENSSL_sk_num(local_55c)" identifier = (call_expression "OPENSSL_sk_num(local_55c)" identifier (argument_list "(local_55c)" ( identifier )))) , (binary_expression "iVar12 < iVar20" identifier < identifier)) ; (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ) (compound_statement "{\n              pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);\n              iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);\n              if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }\n            }" { (expression_statement "pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12);" (assignment_expression "pcVar14 = (char *)OPENSSL_sk_value(local_55c,iVar12)" identifier = (cast_expression "(char *)OPENSSL_sk_value(local_55c,iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(local_55c,iVar12)" identifier (argument_list "(local_55c,iVar12)" ( identifier , identifier ))))) ;) (expression_statement "iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14);" (assignment_expression "iVar20 = pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14)" identifier = (call_expression "pkey_ctrl_string((EVP_PKEY_CTX *)local_570,pcVar14)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,pcVar14)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (iVar20 < 1) {\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }" if (parenthesized_expression "(iVar20 < 1)" ( (binary_expression "iVar20 < 1" identifier < number_literal) )) (compound_statement "{\n                BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);\n                ERR_print_errors((BIO *)bio_err);\n                goto LAB_0004ff7c;\n              }" { (expression_statement "BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14);" (call_expression "BIO_printf((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14)" identifier (argument_list "((BIO *)bio_err,"parameter error \"%s\"\n",pcVar14)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""parameter error \"%s\"\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier ))) ;) (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (goto_statement "goto LAB_0004ff7c;" goto statement_identifier ;) })) })) })) (if_statement "if (pkey_type == 0x198) {\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }\n          else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }" if (parenthesized_expression "(pkey_type == 0x198)" ( (binary_expression "pkey_type == 0x198" identifier == number_literal) )) (compound_statement "{\n            BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);\n          }" { (expression_statement "BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13);" (call_expression "BIO_printf((BIO *)bio_err,"Generating an EC private key\n",pcVar13)" identifier (argument_list "((BIO *)bio_err,"Generating an EC private key\n",pcVar13)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Generating an EC private key\n"" " string_content escape_sequence ") , identifier ))) ;) }) (else_clause "else {\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }" else (compound_statement "{\n            BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);\n          }" { (expression_statement "BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr);" (call_expression "BIO_printf((BIO *)bio_err,"Generating a %s private key\n",keyalgstr)" identifier (argument_list "((BIO *)bio_err,"Generating a %s private key\n",keyalgstr)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Generating a %s private key\n"" " string_content escape_sequence ") , identifier ))) ;) }))) (expression_statement "EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb);" (call_expression "EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,genpkey_cb)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,genpkey_cb)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err);" (call_expression "EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,bio_err)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,bio_err)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey);" (assignment_expression "iVar12 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey)" identifier = (call_expression "EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&pkey)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(EVP_PKEY **)&pkey" ( (type_descriptor "EVP_PKEY **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pkey" & identifier)) )))) ;) (if_statement "if (0 < iVar12) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (compound_statement "{\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }\n            BIO_printf((BIO *)bio_err,pcVar14,pcVar13);\n            local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");\n            bVar34 = pbVar19 == (byte *)0x0;\n            if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }\n            pEVar10 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar10 = local_500;\n            }\n            iVar12 = 0;\n            while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf((BIO *)bio_err,"-----\n");\n            goto LAB_0004f6c0;\n          }" { (expression_statement "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);" (call_expression "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570)" identifier (argument_list "((EVP_PKEY_CTX *)local_570)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (local_518 == (char *)0x0) {\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }" if (parenthesized_expression "(local_518 == (char *)0x0)" ( (binary_expression "local_518 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar13 = "default_keyfile";\n              local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar14 = "writing new private key to stdout\n";\n            }" { (expression_statement "pcVar13 = "default_keyfile";" (assignment_expression "pcVar13 = "default_keyfile"" identifier = (string_literal ""default_keyfile"" " string_content ")) ;) (expression_statement "local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile");" (assignment_expression "local_518 = NCONF_get_string((CONF *)req_conf,"req","default_keyfile")" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,"req","default_keyfile")" identifier (argument_list "((CONF *)req_conf,"req","default_keyfile")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""default_keyfile"" " string_content ") )))) ;) (if_statement "if (local_518 != (char *)0x0) goto LAB_0004f392;" if (parenthesized_expression "(local_518 != (char *)0x0)" ( (binary_expression "local_518 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f392;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar14 = "writing new private key to stdout\n";" (assignment_expression "pcVar14 = "writing new private key to stdout\n"" identifier = (string_literal ""writing new private key to stdout\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }" else (compound_statement "{\nLAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";\n              pcVar13 = local_518;\n            }" { (labeled_statement "LAB_0004f392:\n              pcVar14 = "writing new private key to \'%s\'\n";" statement_identifier : (expression_statement "pcVar14 = "writing new private key to \'%s\'\n";" (assignment_expression "pcVar14 = "writing new private key to \'%s\'\n"" identifier = (string_literal ""writing new private key to \'%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ")) ;)) (expression_statement "pcVar13 = local_518;" (assignment_expression "pcVar13 = local_518" identifier = identifier) ;) }))) (expression_statement "BIO_printf((BIO *)bio_err,pcVar14,pcVar13);" (call_expression "BIO_printf((BIO *)bio_err,pcVar14,pcVar13)" identifier (argument_list "((BIO *)bio_err,pcVar14,pcVar13)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;) (expression_statement "local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))\n            ;" (assignment_expression "local_560 = (BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))" identifier = (cast_expression "(BIO *)bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bio_open_owner(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))" identifier (argument_list "(local_518,outformat,(uint)(pEVar7 == (EVP_PKEY *)0x0))" ( identifier , identifier , (call_expression "(uint)(pEVar7 == (EVP_PKEY *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar7 == (EVP_PKEY *)0x0)" ( (binary_expression "pEVar7 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) ))))) ;) (if_statement "if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }" if (parenthesized_expression "(local_560 == (BIO *)0x0)" ( (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key");" (assignment_expression "pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key")" identifier = (cast_expression "(byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string((CONF *)req_conf,"req","encrypt_rsa_key")" identifier (argument_list "((CONF *)req_conf,"req","encrypt_rsa_key")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""encrypt_rsa_key"" " string_content ") ))))) ;) (expression_statement "bVar34 = pbVar19 == (byte *)0x0;" (assignment_expression "bVar34 = pbVar19 == (byte *)0x0" identifier = (binary_expression "pbVar19 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar34) {\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }\n            else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }" if (parenthesized_expression "(bVar34)" ( identifier )) (compound_statement "{\n              ERR_clear_error();\n              pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");\n              bVar34 = pbVar19 == (byte *)0x0;\n              if (!bVar34) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar10;\n            }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key");" (assignment_expression "pbVar19 = (byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key")" identifier = (cast_expression "(byte *)NCONF_get_string((CONF *)req_conf,"req","encrypt_key")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string((CONF *)req_conf,"req","encrypt_key")" identifier (argument_list "((CONF *)req_conf,"req","encrypt_key")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""encrypt_key"" " string_content ") ))))) ;) (expression_statement "bVar34 = pbVar19 == (byte *)0x0;" (assignment_expression "bVar34 = pbVar19 == (byte *)0x0" identifier = (binary_expression "pbVar19 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar34) goto LAB_0004f40c;" if (parenthesized_expression "(!bVar34)" ( (unary_expression "!bVar34" ! identifier) )) (goto_statement "goto LAB_0004f40c;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_500 = pEVar10;" (assignment_expression "local_500 = pEVar10" identifier = identifier) ;) }) (else_clause "else {\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }" else (compound_statement "{\nLAB_0004f40c:\n              bVar32 = false;\n              iVar12 = 3;\n              pbVar30 = &DAT_0007e9a6;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }\n            }" { (labeled_statement "LAB_0004f40c:\n              bVar32 = false;" statement_identifier : (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;)) (expression_statement "iVar12 = 3;" (assignment_expression "iVar12 = 3" identifier = number_literal) ;) (expression_statement "pbVar30 = &DAT_0007e9a6;" (assignment_expression "pbVar30 = &DAT_0007e9a6" identifier = (pointer_expression "&DAT_0007e9a6" & identifier)) ;) (do_statement "do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);" do (compound_statement "{\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                bVar32 = *pbVar19 < *pbVar30;\n                bVar34 = *pbVar19 == *pbVar30;\n                pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar32 = *pbVar19 < *pbVar30;" (assignment_expression "bVar32 = *pbVar19 < *pbVar30" identifier = (binary_expression "*pbVar19 < *pbVar30" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar34 = *pbVar19 == *pbVar30;" (assignment_expression "bVar34 = *pbVar19 == *pbVar30" identifier = (binary_expression "*pbVar19 == *pbVar30" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar34)" ( identifier )) ;) (expression_statement "local_500 = (EVP_CIPHER *)0x0;" (assignment_expression "local_500 = (EVP_CIPHER *)0x0" identifier = (cast_expression "(EVP_CIPHER *)0x0" ( (type_descriptor "EVP_CIPHER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((!bVar32 && !bVar34) != bVar32) {\n                local_500 = pEVar10;\n              }" if (parenthesized_expression "((!bVar32 && !bVar34) != bVar32)" ( (binary_expression "(!bVar32 && !bVar34) != bVar32" (parenthesized_expression "(!bVar32 && !bVar34)" ( (binary_expression "!bVar32 && !bVar34" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar34" ! identifier)) )) != identifier) )) (compound_statement "{\n                local_500 = pEVar10;\n              }" { (expression_statement "local_500 = pEVar10;" (assignment_expression "local_500 = pEVar10" identifier = identifier) ;) })) }))) (expression_statement "pEVar10 = (EVP_CIPHER *)0x0;" (assignment_expression "pEVar10 = (EVP_CIPHER *)0x0" identifier = (cast_expression "(EVP_CIPHER *)0x0" ( (type_descriptor "EVP_CIPHER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (!bVar3) {\n              pEVar10 = local_500;\n            }" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (compound_statement "{\n              pEVar10 = local_500;\n            }" { (expression_statement "pEVar10 = local_500;" (assignment_expression "pEVar10 = local_500" identifier = identifier) ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (while_statement "while (iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0) {\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }" while (parenthesized_expression "(iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0)" ( (comma_expression "iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout), iVar20 == 0" (assignment_expression "iVar20 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout)" identifier (argument_list "(local_560,(EVP_PKEY *)pkey,pEVar10,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,passout)" ( identifier , (cast_expression "(EVP_PKEY *)pkey" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) , (binary_expression "iVar20 == 0" identifier == number_literal)) )) (compound_statement "{\n              uVar21 = ERR_peek_error();\n              if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar12 = iVar12 + 1;\n            }" { (expression_statement "uVar21 = ERR_peek_error();" (assignment_expression "uVar21 = ERR_peek_error()" identifier = (call_expression "ERR_peek_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }" if (parenthesized_expression "(((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3))" ( (binary_expression "((uVar21 & 0xfff) != 0x6d) || (iVar12 == 3)" (parenthesized_expression "((uVar21 & 0xfff) != 0x6d)" ( (binary_expression "(uVar21 & 0xfff) != 0x6d" (parenthesized_expression "(uVar21 & 0xfff)" ( (binary_expression "uVar21 & 0xfff" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar12 == 3)" ( (binary_expression "iVar12 == 3" identifier == number_literal) ))) )) (compound_statement "{\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }" { (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) })) (expression_statement "BIO_free(local_560);" (call_expression "BIO_free(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,"-----\n");" (call_expression "BIO_printf((BIO *)bio_err,"-----\n")" identifier (argument_list "((BIO *)bio_err,"-----\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-----\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_0004f6c0;" goto statement_identifier ;) })) (expression_statement "BIO_puts((BIO *)bio_err,"Error Generating Key\n");" (call_expression "BIO_puts((BIO *)bio_err,"Error Generating Key\n")" identifier (argument_list "((BIO *)bio_err,"Error Generating Key\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Error Generating Key\n"" " string_content escape_sequence ") ))) ;) })))) (labeled_statement "LAB_0004ff7c:\n        local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }" else (compound_statement "{\n      if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)bio_open_default(local_52c,'r',informat);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar34 = local_51c != (char *)0x0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      iVar12 = outformat;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }\n      local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }\n      uVar21 = reqflag;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);\n      local_564 = local_598;\n    }" { (if_statement "if (bVar32) {\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\nLAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pEVar7 = pkey;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");\n        if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }\n        pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }\n        psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);\n        if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar37 = 0;\n        psVar38 = psVar22;\n        iVar12 = X509_REQ_set_version(x_00,0);\n        if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }\n        if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n        if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }\n        goto LAB_0004f82c;\n      }" { (labeled_statement "LAB_0004f6c0:\n        if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" statement_identifier : (if_statement "if (pkey == (EVP_PKEY *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "(pkey == (EVP_PKEY *)0x0)" ( (binary_expression "pkey == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf((BIO *)bio_err,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000505b7:\n          x = (X509 *)0x0;" statement_identifier : (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "BIO_printf((BIO *)bio_err,"you need to specify a private key\n");" (call_expression "BIO_printf((BIO *)bio_err,"you need to specify a private key\n")" identifier (argument_list "((BIO *)bio_err,"you need to specify a private key\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""you need to specify a private key\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) }))) (expression_statement "x_00 = X509_REQ_new();" (assignment_expression "x_00 = X509_REQ_new()" identifier = (call_expression "X509_REQ_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "pEVar7 = pkey;" (assignment_expression "pEVar7 = pkey" identifier = identifier) ;) (if_statement "if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }" if (parenthesized_expression "(x_00 == (X509_REQ *)0x0)" ( (binary_expression "x_00 == (X509_REQ *)0x0" identifier == (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000501da;" goto statement_identifier ;) })) (expression_statement "pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt");" (assignment_expression "pcVar13 = NCONF_get_string((CONF *)req_conf,"req","prompt")" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,"req","prompt")" identifier (argument_list "((CONF *)req_conf,"req","prompt")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""prompt"" " string_content ") )))) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n          ERR_clear_error();\n          bVar34 = false;\n        }\n        else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ERR_clear_error();\n          bVar34 = false;\n        }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar34 = false;" (assignment_expression "bVar34 = false" identifier = false) ;) }) (else_clause "else {\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }" else (compound_statement "{\n          iVar12 = strcmp(pcVar13,"no");\n          bVar34 = iVar12 == 0;\n        }" { (expression_statement "iVar12 = strcmp(pcVar13,"no");" (assignment_expression "iVar12 = strcmp(pcVar13,"no")" identifier = (call_expression "strcmp(pcVar13,"no")" identifier (argument_list "(pcVar13,"no")" ( identifier , (string_literal ""no"" " string_content ") )))) ;) (expression_statement "bVar34 = iVar12 == 0;" (assignment_expression "bVar34 = iVar12 == 0" identifier = (binary_expression "iVar12 == 0" identifier == number_literal)) ;) }))) (expression_statement "pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name");" (assignment_expression "pcVar13 = NCONF_get_string((CONF *)req_conf,"req","distinguished_name")" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,"req","distinguished_name")" identifier (argument_list "((CONF *)req_conf,"req","distinguished_name")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""distinguished_name"" " string_content ") )))) ;) (if_statement "if ((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }" if (parenthesized_expression "((stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "(stack_st_CONF_VALUE *)pcVar13 == (stack_st_CONF_VALUE *)0x0" (cast_expression "(stack_st_CONF_VALUE *)pcVar13" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar14 = "unable to find \'%s\' in config\n";\n          pcVar13 = "distinguished_name";\n          psVar18 = extraout_ECX;\nLAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);\n          goto LAB_0004f815;\n        }" { (expression_statement "pcVar14 = "unable to find \'%s\' in config\n";" (assignment_expression "pcVar14 = "unable to find \'%s\' in config\n"" identifier = (string_literal ""unable to find \'%s\' in config\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "pcVar13 = "distinguished_name";" (assignment_expression "pcVar13 = "distinguished_name"" identifier = (string_literal ""distinguished_name"" " string_content ")) ;) (expression_statement "psVar18 = extraout_ECX;" (assignment_expression "psVar18 = extraout_ECX" identifier = identifier) ;) (labeled_statement "LAB_0005074a:\n          ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);" statement_identifier : (expression_statement "ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18);" (assignment_expression "ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18)" identifier = (cast_expression "(BIO **)BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18)" ( (type_descriptor "BIO **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "BIO_printf((BIO *)bio_err,pcVar14,pcVar13,psVar18)" identifier (argument_list "((BIO *)bio_err,pcVar14,pcVar13,psVar18)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier ))))) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13);" (assignment_expression "psVar18 = NCONF_get_section((CONF *)req_conf,pcVar13)" identifier = (call_expression "NCONF_get_section((CONF *)req_conf,pcVar13)" identifier (argument_list "((CONF *)req_conf,pcVar13)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (psVar18 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }" if (parenthesized_expression "(psVar18 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar18 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar14 = "unable to get \'%s\' section\n";\n          psVar18 = extraout_EDX;\n          goto LAB_0005074a;\n        }" { (expression_statement "pcVar14 = "unable to get \'%s\' section\n";" (assignment_expression "pcVar14 = "unable to get \'%s\' section\n"" identifier = (string_literal ""unable to get \'%s\' section\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "psVar18 = extraout_EDX;" (assignment_expression "psVar18 = extraout_EDX" identifier = identifier) ;) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) (expression_statement "section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes");" (assignment_expression "section = (stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string((CONF *)req_conf,"req","attributes")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string((CONF *)req_conf,"req","attributes")" identifier (argument_list "((CONF *)req_conf,"req","attributes")" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""req"" " string_content ") , (string_literal ""attributes"" " string_content ") ))))) ;) (if_statement "if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" if (parenthesized_expression "(section == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "section == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          psVar22 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }" { (expression_statement "psVar22 = section;" (assignment_expression "psVar22 = section" identifier = identifier) ;) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" else (compound_statement "{\n          psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);\n          local_548 = (BIO *)psVar22;\n          if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" { (expression_statement "psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section);" (assignment_expression "psVar22 = NCONF_get_section((CONF *)req_conf,(char *)section)" identifier = (call_expression "NCONF_get_section((CONF *)req_conf,(char *)section)" identifier (argument_list "((CONF *)req_conf,(char *)section)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_548 = (BIO *)psVar22;" (assignment_expression "local_548 = (BIO *)psVar22" identifier = (cast_expression "(BIO *)psVar22" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (psVar22 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }" if (parenthesized_expression "(psVar22 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar22 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar14 = "unable to get \'%s\' section\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)section;\n            goto LAB_0005074a;\n          }" { (expression_statement "pcVar14 = "unable to get \'%s\' section\n";" (assignment_expression "pcVar14 = "unable to get \'%s\' section\n"" identifier = (string_literal ""unable to get \'%s\' section\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "psVar18 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "psVar18 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (char *)section;" (assignment_expression "pcVar13 = (char *)section" identifier = (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) }))) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "psVar38 = psVar22;" (assignment_expression "psVar38 = psVar22" identifier = identifier) ;) (expression_statement "iVar12 = X509_REQ_set_version(x_00,0);" (assignment_expression "iVar12 = X509_REQ_set_version(x_00,0)" identifier = (call_expression "X509_REQ_set_version(x_00,0)" identifier (argument_list "(x_00,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004f80b:\n          ppBVar27 = &bio_err;\n          goto LAB_0004f815;\n        }" { (labeled_statement "LAB_0004f80b:\n          ppBVar27 = &bio_err;" statement_identifier : (expression_statement "ppBVar27 = &bio_err;" (assignment_expression "ppBVar27 = &bio_err" identifier = (pointer_expression "&bio_err" & identifier)) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (if_statement "if (local_51c == (char *)0x0) {\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }" if (parenthesized_expression "(local_51c == (char *)0x0)" ( (binary_expression "local_51c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }" { (if_statement "if (bVar34) {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }\n          else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" if (parenthesized_expression "(bVar34)" ( identifier )) (compound_statement "{\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }\n            psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n            if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";\n            pcVar13 = (char *)psVar18;\n          }" { (expression_statement "pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);" (assignment_expression "pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38)" identifier (argument_list "(x_00,uVar37,psVar22,psVar38)" ( identifier , identifier , identifier , identifier ))))) ;) (for_statement "for (iVar12 = 0; iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20; iVar12 = iVar12 + 1)\n            {\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }" for ( (assignment_expression "iVar12 = 0" identifier = number_literal) ; (comma_expression "iVar20 = OPENSSL_sk_num(psVar18), iVar12 < iVar20" (assignment_expression "iVar20 = OPENSSL_sk_num(psVar18)" identifier = (call_expression "OPENSSL_sk_num(psVar18)" identifier (argument_list "(psVar18)" ( identifier )))) , (binary_expression "iVar12 < iVar20" identifier < identifier)) ; (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ) (compound_statement "{\n              iVar20 = OPENSSL_sk_value(psVar18,iVar12);\n              pbVar19 = *(byte **)(iVar20 + 4);\n              bVar35 = *pbVar19;\n              pbVar30 = pbVar19;\n              if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }\n              iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);\n              if (iVar20 == 0) goto LAB_0004f80b;\n            }" { (expression_statement "iVar20 = OPENSSL_sk_value(psVar18,iVar12);" (assignment_expression "iVar20 = OPENSSL_sk_value(psVar18,iVar12)" identifier = (call_expression "OPENSSL_sk_value(psVar18,iVar12)" identifier (argument_list "(psVar18,iVar12)" ( identifier , identifier )))) ;) (expression_statement "pbVar19 = *(byte **)(iVar20 + 4);" (assignment_expression "pbVar19 = *(byte **)(iVar20 + 4)" identifier = (pointer_expression "*(byte **)(iVar20 + 4)" * (cast_expression "(byte **)(iVar20 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) ))))) ;) (expression_statement "bVar35 = *pbVar19;" (assignment_expression "bVar35 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar30 = pbVar19;" (assignment_expression "pbVar30 = pbVar19" identifier = identifier) ;) (if_statement "if (bVar35 == 0) {\n                iVar31 = 0;\n              }\n              else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }" if (parenthesized_expression "(bVar35 == 0)" ( (binary_expression "bVar35 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar31 = 0;\n              }" { (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }" else (compound_statement "{\n                do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);\n                iVar31 = 0;\n                if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }\n              }" { (do_statement "do {\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                } while (bVar35 != 0);" do (compound_statement "{\n                  if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }\n                  pbVar30 = (byte *)((int)pbVar30 + 1);\n                  bVar35 = *pbVar30;\n                }" { (if_statement "if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }" if (parenthesized_expression "(((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a))" ( (binary_expression "((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)" (parenthesized_expression "((bVar35 & 0xfd) == 0x2c)" ( (binary_expression "(bVar35 & 0xfd) == 0x2c" (parenthesized_expression "(bVar35 & 0xfd)" ( (binary_expression "bVar35 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar35 == 0x3a)" ( (binary_expression "bVar35 == 0x3a" identifier == number_literal) ))) )) (compound_statement "{\n                    if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }\n                    break;\n                  }" { (if_statement "if (*(byte *)((int)pbVar30 + 1) != 0) {\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }" if (parenthesized_expression "(*(byte *)((int)pbVar30 + 1) != 0)" ( (binary_expression "*(byte *)((int)pbVar30 + 1) != 0" (pointer_expression "*(byte *)((int)pbVar30 + 1)" * (cast_expression "(byte *)((int)pbVar30 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar30 + 1)" ( (binary_expression "(int)pbVar30 + 1" (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                      pbVar19 = (byte *)((int)pbVar30 + 1);\n                    }" { (expression_statement "pbVar19 = (byte *)((int)pbVar30 + 1);" (assignment_expression "pbVar19 = (byte *)((int)pbVar30 + 1)" identifier = (cast_expression "(byte *)((int)pbVar30 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar30 + 1)" ( (binary_expression "(int)pbVar30 + 1" (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar30 = (byte *)((int)pbVar30 + 1);" (assignment_expression "pbVar30 = (byte *)((int)pbVar30 + 1)" identifier = (cast_expression "(byte *)((int)pbVar30 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar30 + 1)" ( (binary_expression "(int)pbVar30 + 1" (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar35 = *pbVar30;" (assignment_expression "bVar35 = *pbVar30" identifier = (pointer_expression "*pbVar30" * identifier)) ;) }) while (parenthesized_expression "(bVar35 != 0)" ( (binary_expression "bVar35 != 0" identifier != number_literal) )) ;) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;) (if_statement "if (*pbVar19 == 0x2b) {\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }" if (parenthesized_expression "(*pbVar19 == 0x2b)" ( (binary_expression "*pbVar19 == 0x2b" (pointer_expression "*pbVar19" * identifier) == number_literal) )) (compound_statement "{\n                  pbVar19 = pbVar19 + 1;\n                  iVar31 = -1;\n                }" { (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar31 = -1;" (assignment_expression "iVar31 = -1" identifier = number_literal) ;) })) }))) (expression_statement "iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31);" (assignment_expression "iVar20 = X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31)" identifier = (call_expression "X509_NAME_add_entry_by_txt\n                                 (pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31)" identifier (argument_list "(pXVar24,(char *)pbVar19,local_4ec,*(uchar **)(iVar20 + 8),-1,-1,\n                                  iVar31)" ( identifier , (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "*(uchar **)(iVar20 + 8)" * (cast_expression "(uchar **)(iVar20 + 8)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar20 == 0) goto LAB_0004f80b;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) })) (expression_statement "psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);" (assignment_expression "psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24)" identifier = (cast_expression "(stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24)" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_entry_count(pXVar24)" identifier (argument_list "(pXVar24)" ( identifier ))))) ;) (if_statement "if (psVar18 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }" if (parenthesized_expression "(psVar18 != (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar18 != (stack_st_CONF_VALUE *)0x0" identifier != (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }" { (if_statement "if (local_53c == 0) {\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (compound_statement "{\n                for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) goto LAB_0004fbe2;\n              }" { (for_statement "for (iVar12 = 0; iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20; iVar12 = iVar12 + 1) {\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }" for ( (assignment_expression "iVar12 = 0" identifier = number_literal) ; (comma_expression "iVar20 = OPENSSL_sk_num(local_548), pcVar13 = (char *)local_548,\n                    iVar12 < iVar20" (assignment_expression "iVar20 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) , (comma_expression "pcVar13 = (char *)local_548,\n                    iVar12 < iVar20" (assignment_expression "pcVar13 = (char *)local_548" identifier = (cast_expression "(char *)local_548" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "iVar12 < iVar20" identifier < identifier))) ; (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ) (compound_statement "{\n                  iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);\n                  iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);\n                  if (iVar20 == 0) goto LAB_0004f80b;\n                }" { (expression_statement "iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20);" (assignment_expression "iVar20 = OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20)" identifier = (call_expression "OPENSSL_sk_value(local_548,iVar12,iVar20,iVar20)" identifier (argument_list "(local_548,iVar12,iVar20,iVar20)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1);" (assignment_expression "iVar20 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1)" identifier = (call_expression "X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1)" identifier (argument_list "(x_00,*(char **)(iVar20 + 4),local_4ec,*(uchar **)(iVar20 + 8),\n                                      -1)" ( identifier , (pointer_expression "*(char **)(iVar20 + 4)" * (cast_expression "(char **)(iVar20 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) , identifier , (pointer_expression "*(uchar **)(iVar20 + 8)" * (cast_expression "(uchar **)(iVar20 + 8)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar20 == 0) goto LAB_0004f80b;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) })) (labeled_statement "LAB_00050951:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);" statement_identifier : (expression_statement "iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);" (assignment_expression "iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7)" identifier (argument_list "(x_00,(EVP_PKEY *)pEVar7)" ( identifier , (cast_expression "(EVP_PKEY *)pEVar7" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar12 != 0) goto LAB_0004fbe2;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fbe2;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" else (compound_statement "{\nLAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);\n                if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" { (labeled_statement "LAB_00051084:\n                iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);" statement_identifier : (expression_statement "iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7);" (assignment_expression "iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7)" identifier (argument_list "(x_00,(EVP_PKEY *)pEVar7)" ( identifier , (cast_expression "(EVP_PKEY *)pEVar7" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar12 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }" { (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004f99b;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;) })) (labeled_statement "LAB_000510a8:\n            pcVar14 = "error, no objects specified in config file\n";" statement_identifier : (expression_statement "pcVar14 = "error, no objects specified in config file\n";" (assignment_expression "pcVar14 = "error, no objects specified in config file\n"" identifier = (string_literal ""error, no objects specified in config file\n"" " string_content escape_sequence ")) ;)) (expression_statement "pcVar13 = (char *)psVar18;" (assignment_expression "pcVar13 = (char *)psVar18" identifier = (cast_expression "(char *)psVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" else (compound_statement "{\n            pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);\n            if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }\n            iVar12 = OPENSSL_sk_num(psVar18);\n            local_52c = (char *)0xffffffff;\n            if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }\n            pcVar14 = "No template, please set one up.\n";\n            psVar18 = (stack_st_CONF_VALUE *)0x0;\n            pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" { (expression_statement "pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38);" (assignment_expression "pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00,uVar37,psVar22,psVar38)" identifier (argument_list "(x_00,uVar37,psVar22,psVar38)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (batch == 0) {\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }" if (parenthesized_expression "(batch == 0)" ( (binary_expression "batch == 0" identifier == number_literal) )) (compound_statement "{\n              BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);\n              BIO_printf((BIO *)bio_err,"into your certificate request.\n");\n              BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");\n              BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");\n              BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf((BIO *)bio_err,"-----\n");\n            }" { (expression_statement "BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24);" (call_expression "BIO_printf((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24)" identifier (argument_list "((BIO *)bio_err,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar24,pXVar24)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""You are about to be asked to enter information that will be incorporated\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,"into your certificate request.\n");" (call_expression "BIO_printf((BIO *)bio_err,"into your certificate request.\n")" identifier (argument_list "((BIO *)bio_err,"into your certificate request.\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""into your certificate request.\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );" (call_expression "BIO_printf((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        )" identifier (argument_list "((BIO *)bio_err,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        )" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""What you are about to enter is what is called a Distinguished Name or a DN.\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n");" (call_expression "BIO_printf((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n")" identifier (argument_list "((BIO *)bio_err,\n                         "There are quite a few fields but you can leave some blank\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""There are quite a few fields but you can leave some blank\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n");" (call_expression "BIO_printf((BIO *)bio_err,"For some fields there will be a default value,\n")" identifier (argument_list "((BIO *)bio_err,"For some fields there will be a default value,\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""For some fields there will be a default value,\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n");" (call_expression "BIO_printf((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n")" identifier (argument_list "((BIO *)bio_err,"If you enter \'.\', the field will be left blank.\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""If you enter \'.\', the field will be left blank.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,"-----\n");" (call_expression "BIO_printf((BIO *)bio_err,"-----\n")" identifier (argument_list "((BIO *)bio_err,"-----\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""-----\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "iVar12 = OPENSSL_sk_num(psVar18);" (assignment_expression "iVar12 = OPENSSL_sk_num(psVar18)" identifier = (call_expression "OPENSSL_sk_num(psVar18)" identifier (argument_list "(psVar18)" ( identifier )))) ;) (expression_statement "local_52c = (char *)0xffffffff;" (assignment_expression "local_52c = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar12 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);\n              ppBVar27 = &bio_err;\n              goto LAB_0004f815;\n            }" { (labeled_statement "LAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);" statement_identifier : (do_statement "do {\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              } while (iVar12 != 0);" do (compound_statement "{\n                do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");\n                if (iVar31 == 0) break;\n                pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");\n                if (iVar31 == 0) break;\n                pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);\n                if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");\n                if (iVar31 == 0) break;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }\n                iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");\n                if (iVar31 == 0) break;\n                psVar22 = (stack_st_CONF_VALUE *)pcVar13;\n                iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);\n                if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }\n                uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);\n                if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);\n              }" { (do_statement "do {\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                } while (iVar20 == 0);" do (compound_statement "{\n                  do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));\n                  bVar35 = *pbVar19;\n                  pbVar30 = pbVar19;\n                  if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }\n                  iVar20 = OBJ_txt2nid((char *)pbVar19);\n                }" { (do_statement "do {\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  } while ((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0));" do (compound_statement "{\n                    local_52c = (char *)((int)local_52c + 1);\n                    iVar12 = OPENSSL_sk_num(psVar18);\n                    if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }\n                    iVar12 = OPENSSL_sk_value(psVar18,local_52c);\n                    pbVar19 = *(byte **)(iVar12 + 4);\n                    iVar20 = check_end((char *)pbVar19,"_min");\n                  }" { (expression_statement "local_52c = (char *)((int)local_52c + 1);" (assignment_expression "local_52c = (char *)((int)local_52c + 1)" identifier = (cast_expression "(char *)((int)local_52c + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_52c + 1)" ( (binary_expression "(int)local_52c + 1" (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar12 = OPENSSL_sk_num(psVar18);" (assignment_expression "iVar12 = OPENSSL_sk_num(psVar18)" identifier = (call_expression "OPENSSL_sk_num(psVar18)" identifier (argument_list "(psVar18)" ( identifier )))) ;) (if_statement "if (iVar12 <= (int)local_52c) {\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }" if (parenthesized_expression "(iVar12 <= (int)local_52c)" ( (binary_expression "iVar12 <= (int)local_52c" identifier <= (cast_expression "(int)local_52c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);\n                      if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar36 = OPENSSL_sk_num(local_548);\n                      uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);\n                      if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar13 = buf;\n                      goto LAB_00050afd;\n                    }" { (expression_statement "psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24);" (assignment_expression "psVar18 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24)" identifier = (cast_expression "(stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar24)" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_entry_count(pXVar24)" identifier (argument_list "(pXVar24)" ( identifier ))))) ;) (if_statement "if (psVar18 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;" if (parenthesized_expression "(psVar18 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar18 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000510a8;" goto statement_identifier ;)) (if_statement "if (local_53c != 0) goto LAB_00051084;" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051084;" goto statement_identifier ;)) (if_statement "if (local_548 == (BIO *)0x0) goto LAB_00050951;" if (parenthesized_expression "(local_548 == (BIO *)0x0)" ( (binary_expression "local_548 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050951;" goto statement_identifier ;)) (expression_statement "uVar36 = OPENSSL_sk_num(local_548);" (assignment_expression "uVar36 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) ;) (expression_statement "uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20);" (assignment_expression "uVar37 = (undefined4)((ulonglong)uVar36 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar36 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar36 >> 0x20)" ( (binary_expression "(ulonglong)uVar36 >> 0x20" (cast_expression "(ulonglong)uVar36" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((0 < (int)uVar36) && (batch == 0)) {\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }" if (parenthesized_expression "((0 < (int)uVar36) && (batch == 0))" ( (binary_expression "(0 < (int)uVar36) && (batch == 0)" (parenthesized_expression "(0 < (int)uVar36)" ( (binary_expression "0 < (int)uVar36" number_literal < (cast_expression "(int)uVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(batch == 0)" ( (binary_expression "batch == 0" identifier == number_literal) ))) )) (compound_statement "{\n                        BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);\n                        BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");\n                      }" { (expression_statement "BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37);" (call_expression "BIO_printf((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37)" identifier (argument_list "((BIO *)bio_err,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,\n                                   uVar37)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""\nPlease enter the following \'extra\' attributes\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n");" (call_expression "BIO_printf((BIO *)bio_err,"to be sent with your certificate request\n")" identifier (argument_list "((BIO *)bio_err,"to be sent with your certificate request\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""to be sent with your certificate request\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "local_588 = -1;" (assignment_expression "local_588 = -1" identifier = number_literal) ;) (expression_statement "pcVar13 = buf;" (assignment_expression "pcVar13 = buf" identifier = identifier) ;) (goto_statement "goto LAB_00050afd;" goto statement_identifier ;) })) (expression_statement "iVar12 = OPENSSL_sk_value(psVar18,local_52c);" (assignment_expression "iVar12 = OPENSSL_sk_value(psVar18,local_52c)" identifier = (call_expression "OPENSSL_sk_value(psVar18,local_52c)" identifier (argument_list "(psVar18,local_52c)" ( identifier , identifier )))) ;) (expression_statement "pbVar19 = *(byte **)(iVar12 + 4);" (assignment_expression "pbVar19 = *(byte **)(iVar12 + 4)" identifier = (pointer_expression "*(byte **)(iVar12 + 4)" * (cast_expression "(byte **)(iVar12 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = check_end((char *)pbVar19,"_min");" (assignment_expression "iVar20 = check_end((char *)pbVar19,"_min")" identifier = (call_expression "check_end((char *)pbVar19,"_min")" identifier (argument_list "((char *)pbVar19,"_min")" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_min"" " string_content ") )))) ;) }) while (parenthesized_expression "((((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0))" ( (binary_expression "(((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)) ||\n                          (iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0)" (parenthesized_expression "(((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0))" ( (binary_expression "((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)) ||\n                           (iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)" (parenthesized_expression "((iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0))" ( (binary_expression "(iVar20 == 0) ||\n                            (iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0)" ( (comma_expression "iVar20 = check_end((char *)pbVar19,"_max"), iVar20 == 0" (assignment_expression "iVar20 = check_end((char *)pbVar19,"_max")" identifier = (call_expression "check_end((char *)pbVar19,"_max")" identifier (argument_list "((char *)pbVar19,"_max")" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_max"" " string_content ") )))) , (binary_expression "iVar20 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0)" ( (comma_expression "iVar20 = check_end((char *)pbVar19,"_default"), iVar20 == 0" (assignment_expression "iVar20 = check_end((char *)pbVar19,"_default")" identifier = (call_expression "check_end((char *)pbVar19,"_default")" identifier (argument_list "((char *)pbVar19,"_default")" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_default"" " string_content ") )))) , (binary_expression "iVar20 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0)" ( (comma_expression "iVar20 = check_end((char *)pbVar19,"_value"), iVar20 == 0" (assignment_expression "iVar20 = check_end((char *)pbVar19,"_value")" identifier = (call_expression "check_end((char *)pbVar19,"_value")" identifier (argument_list "((char *)pbVar19,"_value")" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_value"" " string_content ") )))) , (binary_expression "iVar20 == 0" identifier == number_literal)) ))) )) ;) (expression_statement "bVar35 = *pbVar19;" (assignment_expression "bVar35 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar30 = pbVar19;" (assignment_expression "pbVar30 = pbVar19" identifier = identifier) ;) (if_statement "if (bVar35 == 0) {\n                    local_514 = (char *)0x0;\n                  }\n                  else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }" if (parenthesized_expression "(bVar35 == 0)" ( (binary_expression "bVar35 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_514 = (char *)0x0;\n                  }" { (expression_statement "local_514 = (char *)0x0;" (assignment_expression "local_514 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }" else (compound_statement "{\n                    do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);\n                    local_514 = (char *)0x0;\n                    if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }\n                  }" { (do_statement "do {\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    } while (bVar35 != 0);" do (compound_statement "{\n                      if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }\n                      pbVar30 = (byte *)((int)pbVar30 + 1);\n                      bVar35 = *pbVar30;\n                    }" { (if_statement "if (((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)) {\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }" if (parenthesized_expression "(((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a))" ( (binary_expression "((bVar35 & 0xfd) == 0x2c) || (bVar35 == 0x3a)" (parenthesized_expression "((bVar35 & 0xfd) == 0x2c)" ( (binary_expression "(bVar35 & 0xfd) == 0x2c" (parenthesized_expression "(bVar35 & 0xfd)" ( (binary_expression "bVar35 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar35 == 0x3a)" ( (binary_expression "bVar35 == 0x3a" identifier == number_literal) ))) )) (compound_statement "{\n                        if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }\n                        break;\n                      }" { (if_statement "if (*(byte *)((int)pbVar30 + 1) != 0) {\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }" if (parenthesized_expression "(*(byte *)((int)pbVar30 + 1) != 0)" ( (binary_expression "*(byte *)((int)pbVar30 + 1) != 0" (pointer_expression "*(byte *)((int)pbVar30 + 1)" * (cast_expression "(byte *)((int)pbVar30 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar30 + 1)" ( (binary_expression "(int)pbVar30 + 1" (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                          pbVar19 = (byte *)((int)pbVar30 + 1);\n                        }" { (expression_statement "pbVar19 = (byte *)((int)pbVar30 + 1);" (assignment_expression "pbVar19 = (byte *)((int)pbVar30 + 1)" identifier = (cast_expression "(byte *)((int)pbVar30 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar30 + 1)" ( (binary_expression "(int)pbVar30 + 1" (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar30 = (byte *)((int)pbVar30 + 1);" (assignment_expression "pbVar30 = (byte *)((int)pbVar30 + 1)" identifier = (cast_expression "(byte *)((int)pbVar30 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar30 + 1)" ( (binary_expression "(int)pbVar30 + 1" (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar35 = *pbVar30;" (assignment_expression "bVar35 = *pbVar30" identifier = (pointer_expression "*pbVar30" * identifier)) ;) }) while (parenthesized_expression "(bVar35 != 0)" ( (binary_expression "bVar35 != 0" identifier != number_literal) )) ;) (expression_statement "local_514 = (char *)0x0;" (assignment_expression "local_514 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pbVar19 == 0x2b) {\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }" if (parenthesized_expression "(*pbVar19 == 0x2b)" ( (binary_expression "*pbVar19 == 0x2b" (pointer_expression "*pbVar19" * identifier) == number_literal) )) (compound_statement "{\n                      local_514 = (char *)0xffffffff;\n                      pbVar19 = pbVar19 + 1;\n                    }" { (expression_statement "local_514 = (char *)0xffffffff;" (assignment_expression "local_514 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) })) }))) (expression_statement "iVar20 = OBJ_txt2nid((char *)pbVar19);" (assignment_expression "iVar20 = OBJ_txt2nid((char *)pbVar19)" identifier = (call_expression "OBJ_txt2nid((char *)pbVar19)" identifier (argument_list "((char *)pbVar19)" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) while (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) ;) (expression_statement "iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name");" (assignment_expression "iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_default","Name")" identifier = (call_expression "join(buf,100,*(char **)(iVar12 + 4),"_default","Name")" identifier (argument_list "(buf,100,*(char **)(iVar12 + 4),"_default","Name")" ( identifier , number_literal , (pointer_expression "*(char **)(iVar12 + 4)" * (cast_expression "(char **)(iVar12 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) , (string_literal ""_default"" " string_content ") , (string_literal ""Name"" " string_content ") )))) ;) (if_statement "if (iVar31 == 0) break;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);" (assignment_expression "pcVar14 = NCONF_get_string((CONF *)req_conf,pcVar13,buf)" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,pcVar13,buf)" identifier (argument_list "((CONF *)req_conf,pcVar13,buf)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (pcVar14 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  ERR_clear_error();\n                  pcVar14 = "";\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar14 = "";" (assignment_expression "pcVar14 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name");" (assignment_expression "iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_value","Name")" identifier = (call_expression "join(buf,100,*(char **)(iVar12 + 4),"_value","Name")" identifier (argument_list "(buf,100,*(char **)(iVar12 + 4),"_value","Name")" ( identifier , number_literal , (pointer_expression "*(char **)(iVar12 + 4)" * (cast_expression "(char **)(iVar12 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) , (string_literal ""_value"" " string_content ") , (string_literal ""Name"" " string_content ") )))) ;) (if_statement "if (iVar31 == 0) break;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf);" (assignment_expression "pcVar28 = NCONF_get_string((CONF *)req_conf,pcVar13,buf)" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,pcVar13,buf)" identifier (argument_list "((CONF *)req_conf,pcVar13,buf)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (pcVar28 == (char *)0x0) {\n                  ERR_clear_error();\n                }" if (parenthesized_expression "(pcVar28 == (char *)0x0)" ( (binary_expression "pcVar28 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  ERR_clear_error();\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name");" (assignment_expression "iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_min","Name")" identifier = (call_expression "join(buf,100,*(char **)(iVar12 + 4),"_min","Name")" identifier (argument_list "(buf,100,*(char **)(iVar12 + 4),"_min","Name")" ( identifier , number_literal , (pointer_expression "*(char **)(iVar12 + 4)" * (cast_expression "(char **)(iVar12 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) , (string_literal ""_min"" " string_content ") , (string_literal ""Name"" " string_content ") )))) ;) (if_statement "if (iVar31 == 0) break;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min);" (assignment_expression "iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min)" identifier = (call_expression "NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&n_min)" identifier (argument_list "((CONF *)req_conf,pcVar13,buf,&n_min)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (pointer_expression "&n_min" & identifier) )))) ;) (if_statement "if (iVar31 == 0) {\n                  ERR_clear_error();\n                  n_min = -1;\n                }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n                  ERR_clear_error();\n                  n_min = -1;\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "n_min = -1;" (assignment_expression "n_min = -1" identifier = number_literal) ;) })) (expression_statement "iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name");" (assignment_expression "iVar31 = join(buf,100,*(char **)(iVar12 + 4),"_max","Name")" identifier = (call_expression "join(buf,100,*(char **)(iVar12 + 4),"_max","Name")" identifier (argument_list "(buf,100,*(char **)(iVar12 + 4),"_max","Name")" ( identifier , number_literal , (pointer_expression "*(char **)(iVar12 + 4)" * (cast_expression "(char **)(iVar12 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) , (string_literal ""_max"" " string_content ") , (string_literal ""Name"" " string_content ") )))) ;) (if_statement "if (iVar31 == 0) break;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "psVar22 = (stack_st_CONF_VALUE *)pcVar13;" (assignment_expression "psVar22 = (stack_st_CONF_VALUE *)pcVar13" identifier = (cast_expression "(stack_st_CONF_VALUE *)pcVar13" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags);" (assignment_expression "iVar31 = NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags)" identifier = (call_expression "NCONF_get_number_e((CONF *)req_conf,pcVar13,buf,&ctx.flags)" identifier (argument_list "((CONF *)req_conf,pcVar13,buf,&ctx.flags)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (pointer_expression "&ctx.flags" & (field_expression "ctx.flags" identifier . field_identifier)) )))) ;) (if_statement "if (iVar31 == 0) {\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n                  ERR_clear_error();\n                  ctx.flags = -1;\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "ctx.flags = -1;" (assignment_expression "ctx.flags = -1" (field_expression "ctx.flags" identifier . field_identifier) = number_literal) ;) })) (expression_statement "uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22);" (assignment_expression "uVar29 = build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22)" identifier = (call_expression "build_data(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22)" identifier (argument_list "(*(char **)(iVar12 + 8),pcVar14,pcVar28,n_min,ctx.flags,buf_1,\n                                    0x87c96,"DN default",(char *)psVar22)" ( (pointer_expression "*(char **)(iVar12 + 8)" * (cast_expression "(char **)(iVar12 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , identifier , identifier , identifier , (field_expression "ctx.flags" identifier . field_identifier) , identifier , number_literal , (string_literal ""DN default"" " string_content ") , (cast_expression "(char *)psVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (uVar29 < 2) {\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }" if (parenthesized_expression "(uVar29 < 2)" ( (binary_expression "uVar29 < 2" identifier < number_literal) )) (compound_statement "{\n                  if (uVar29 == 0) break;\n                  goto LAB_000509ca;\n                }" { (if_statement "if (uVar29 == 0) break;" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000509ca;" goto statement_identifier ;) })) (expression_statement "iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514);" (assignment_expression "iVar12 = X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514)" identifier = (call_expression "X509_NAME_add_entry_by_NID\n                                   (pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514)" identifier (argument_list "(pXVar24,iVar20,local_4ec,(uchar *)buf_1,-1,-1,(int)local_514)" ( identifier , identifier , identifier , (cast_expression "(uchar *)buf_1" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , (cast_expression "(int)local_514" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) while (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) ;)) (expression_statement "ppBVar27 = &bio_err;" (assignment_expression "ppBVar27 = &bio_err" identifier = (pointer_expression "&bio_err" & identifier)) ;) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "pcVar14 = "No template, please set one up.\n";" (assignment_expression "pcVar14 = "No template, please set one up.\n"" identifier = (string_literal ""No template, please set one up.\n"" " string_content escape_sequence ")) ;) (expression_statement "psVar18 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "psVar18 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0;" (assignment_expression "pcVar13 = (char *)(stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(char *)(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }))) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) (expression_statement "iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);" (assignment_expression "iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" identifier = (call_expression "build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" identifier (argument_list "((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" ( (cast_expression "(X509_REQ *)x_00" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) (if_statement "if ((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))\n        goto LAB_0004f80b;" if (parenthesized_expression "((iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0))" ( (binary_expression "(iVar12 == 0) || (iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0)" (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0)" ( (comma_expression "iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7), iVar12 == 0" (assignment_expression "iVar12 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pEVar7)" identifier (argument_list "(x_00,(EVP_PKEY *)pEVar7)" ( identifier , (cast_expression "(EVP_PKEY *)pEVar7" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) (if_statement "if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n          local_548 = (BIO *)0x0;\n          local_51c = (char *)0x0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }" { (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_51c = (char *)0x0;" (assignment_expression "local_51c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004f99b:\n          x = X509_new();" statement_identifier : (expression_statement "x = X509_new();" (assignment_expression "x = X509_new()" identifier = (call_expression "X509_new()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0))))" ( (binary_expression "(x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))" (parenthesized_expression "(x != (X509 *)0x0)" ( (binary_expression "x != (X509 *)0x0" identifier != (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)))" ( (parenthesized_expression "((local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0))" ( (binary_expression "(local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)) ||\n              (iVar12 = X509_set_version(x,2), iVar12 != 0)" (parenthesized_expression "(local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0))" ( (binary_expression "local_528 == (char **)0x0 && (addext_conf == (CONF *)0x0)" (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) && (parenthesized_expression "(addext_conf == (CONF *)0x0)" ( (binary_expression "addext_conf == (CONF *)0x0" identifier == (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(iVar12 = X509_set_version(x,2), iVar12 != 0)" ( (comma_expression "iVar12 = X509_set_version(x,2), iVar12 != 0" (assignment_expression "iVar12 = X509_set_version(x,2)" identifier = (call_expression "X509_set_version(x,2)" identifier (argument_list "(x,2)" ( identifier , number_literal )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }\n          }" { (if_statement "if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }\n            else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }" if (parenthesized_expression "(local_554 == (ASN1_INTEGER *)0x0)" ( (binary_expression "local_554 == (ASN1_INTEGER *)0x0" identifier == (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pAVar17 = X509_get_serialNumber(x);\n              iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);\n            }" { (expression_statement "pAVar17 = X509_get_serialNumber(x);" (assignment_expression "pAVar17 = X509_get_serialNumber(x)" identifier = (call_expression "X509_get_serialNumber(x)" identifier (argument_list "(x)" ( identifier )))) ;) (expression_statement "iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17);" (assignment_expression "iVar12 = rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17)" identifier = (call_expression "rand_serial((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17)" identifier (argument_list "((BIGNUM *)0x0,(ASN1_INTEGER *)pAVar17)" ( (cast_expression "(BIGNUM *)0x0" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(ASN1_INTEGER *)pAVar17" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) (else_clause "else {\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }" else (compound_statement "{\n              iVar12 = X509_set_serialNumber(x,local_554);\n            }" { (expression_statement "iVar12 = X509_set_serialNumber(x,local_554);" (assignment_expression "iVar12 = X509_set_serialNumber(x,local_554)" identifier = (call_expression "X509_set_serialNumber(x,local_554)" identifier (argument_list "(x,local_554)" ( identifier , identifier )))) ;) }))) (if_statement "if (iVar12 != 0) {\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n              pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar12 = X509_set_issuer_name(x,pXVar24);\n              if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }\n            }" { (expression_statement "pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "iVar12 = X509_set_issuer_name(x,pXVar24);" (assignment_expression "iVar12 = X509_set_issuer_name(x,pXVar24)" identifier = (call_expression "X509_set_issuer_name(x,pXVar24)" identifier (argument_list "(x,pXVar24)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar12 = 0x1e;\n                if (local_530 != 0) {\n                  iVar12 = local_530;\n                }\n                iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);\n                if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }\n              }" { (expression_statement "iVar12 = 0x1e;" (assignment_expression "iVar12 = 0x1e" identifier = number_literal) ;) (if_statement "if (local_530 != 0) {\n                  iVar12 = local_530;\n                }" if (parenthesized_expression "(local_530 != 0)" ( (binary_expression "local_530 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar12 = local_530;\n                }" { (expression_statement "iVar12 = local_530;" (assignment_expression "iVar12 = local_530" identifier = identifier) ;) })) (expression_statement "iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12);" (assignment_expression "iVar12 = set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12)" identifier = (call_expression "set_cert_times((X509 *)x,(char *)0x0,(char *)0x0,iVar12)" identifier (argument_list "((X509 *)x,(char *)0x0,(char *)0x0,iVar12)" ( (cast_expression "(X509 *)x" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                  pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar12 = X509_set_subject_name(x,pXVar24);\n                  if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }\n                }" { (expression_statement "pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar24 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "iVar12 = X509_set_subject_name(x,pXVar24);" (assignment_expression "iVar12 = X509_set_subject_name(x,pXVar24)" identifier = (call_expression "X509_set_subject_name(x,pXVar24)" identifier (argument_list "(x,pXVar24)" ( identifier , identifier )))) ;) (if_statement "if (((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)) {\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }" if (parenthesized_expression "(((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0))" ( (binary_expression "((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      ) && (iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)" (parenthesized_expression "((iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)\n                      )" ( (binary_expression "(iVar12 != 0) &&\n                      (pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0)" ( (comma_expression "pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar25 != (EVP_PKEY *)0x0" (assignment_expression "pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) , (binary_expression "pEVar25 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0)" ( (comma_expression "iVar12 = X509_set_pubkey(x,pEVar25), iVar12 != 0" (assignment_expression "iVar12 = X509_set_pubkey(x,pEVar25)" identifier = (call_expression "X509_set_pubkey(x,pEVar25)" identifier (argument_list "(x,pEVar25)" ( identifier , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);\n                  }" { (expression_statement "X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);" (call_expression "X509V3_set_ctx((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0)" identifier (argument_list "((X509V3_CTX *)&ctx,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , identifier , identifier , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);" (call_expression "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf)" identifier (argument_list "((X509V3_CTX *)&ctx,(CONF *)req_conf)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if ((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)) {\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }\n                    else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }" if (parenthesized_expression "((local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0))" ( (binary_expression "(local_528 == (char **)0x0) ||\n                       (iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)" (parenthesized_expression "(local_528 == (char **)0x0)" ( (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0)" ( (comma_expression "iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)\n                       , iVar12 != 0" (assignment_expression "iVar12 = X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)" identifier = (call_expression "X509V3_EXT_add_nconf\n                                           ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)" identifier (argument_list "((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_528,x)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar13 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar11 = (char **)0x0;\n                    }" { (if_statement "if ((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)) {\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }" if (parenthesized_expression "((addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0))" ( (binary_expression "(addext_conf == (CONF *)0x0) ||\n                         (iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)" (parenthesized_expression "(addext_conf == (CONF *)0x0)" ( (binary_expression "addext_conf == (CONF *)0x0" identifier == (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0)" ( (comma_expression "iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x),\n                         iVar12 != 0" (assignment_expression "iVar12 = X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x)" identifier = (call_expression "X509V3_EXT_add_nconf\n                                             ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x)" identifier (argument_list "((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x)" ( (cast_expression "(CONF *)addext_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (string_literal ""default"" " string_content ") , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                        if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);\n                        if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar34 = local_51c != (char *)0x0;\n                        if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;\n                        pcVar13 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }" { (if_statement "if (bVar4) {\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n                          iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar12 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }" { (expression_statement "iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);" (assignment_expression "iVar12 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0)" identifier = (call_expression "X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0)" identifier (argument_list "(x,0x3b8,(void *)0x0,1,0)" ( identifier , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal )))) ;) (expression_statement "local_528 = (char **)(iVar12 + -1);" (assignment_expression "local_528 = (char **)(iVar12 + -1)" identifier = (cast_expression "(char **)(iVar12 + -1)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -1)" ( (binary_expression "iVar12 + -1" identifier + number_literal) )))) ;) (if_statement "if (local_528 != (char **)0x0) {\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }" if (parenthesized_expression "(local_528 != (char **)0x0)" ( (binary_expression "local_528 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                            pcVar13 = "Error adding poison extension\n";\n                            ppcVar11 = local_528;\n                            goto LAB_00050666;\n                          }" { (expression_statement "pcVar13 = "Error adding poison extension\n";" (assignment_expression "pcVar13 = "Error adding poison extension\n"" identifier = (string_literal ""Error adding poison extension\n"" " string_content escape_sequence ")) ;) (expression_statement "ppcVar11 = local_528;" (assignment_expression "ppcVar11 = local_528" identifier = identifier) ;) (goto_statement "goto LAB_00050666;" goto statement_identifier ;) })) })) (expression_statement "iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558);" (assignment_expression "iVar12 = do_X509_sign((X509 *)x,pkey,local_510,local_558)" identifier = (call_expression "do_X509_sign((X509 *)x,pkey,local_510,local_558)" identifier (argument_list "((X509 *)x,pkey,local_510,local_558)" ( (cast_expression "(X509 *)x" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                          ERR_print_errors((BIO *)bio_err);\n                          goto LAB_0004fb6e;\n                        }" { (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (goto_statement "goto LAB_0004fb6e;" goto statement_identifier ;) })) (expression_statement "bVar34 = local_51c != (char *)0x0;" (assignment_expression "bVar34 = local_51c != (char *)0x0" identifier = (binary_expression "local_51c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if ((local_53c == 0) || (!bVar34)) goto LAB_0004fed2;" if (parenthesized_expression "((local_53c == 0) || (!bVar34))" ( (binary_expression "(local_53c == 0) || (!bVar34)" (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar34)" ( (unary_expression "!bVar34" ! identifier) ))) )) (goto_statement "goto LAB_0004fed2;" goto statement_identifier ;)) (expression_statement "pcVar13 = "Cannot modify certificate subject\n";" (assignment_expression "pcVar13 = "Cannot modify certificate subject\n"" identifier = (string_literal ""Cannot modify certificate subject\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004fb64;" goto statement_identifier ;) })) (expression_statement "pcVar13 = "Error Loading command line extensions\n";" (assignment_expression "pcVar13 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (expression_statement "local_528 = (char **)0x0;" (assignment_expression "local_528 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar11 = (char **)0x0;" (assignment_expression "ppcVar11 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }" else (compound_statement "{\n                      pcVar13 = "Error Loading extension section %s\n";\n                      ppcVar11 = (char **)0x0;\n                    }" { (expression_statement "pcVar13 = "Error Loading extension section %s\n";" (assignment_expression "pcVar13 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "ppcVar11 = (char **)0x0;" (assignment_expression "ppcVar11 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (labeled_statement "LAB_00050666:\n                    BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);" statement_identifier : (expression_statement "BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11);" (call_expression "BIO_printf((BIO *)bio_err,pcVar13,local_528,ppcVar11)" identifier (argument_list "((BIO *)bio_err,pcVar13,local_528,ppcVar11)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier ))) ;)) })) })) })) })) })) (goto_statement "goto LAB_0004fb6e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004fbe2:\n        X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);" statement_identifier : (expression_statement "X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);" (call_expression "X509V3_set_ctx((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0)" identifier (argument_list "((X509V3_CTX *)&ctx,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf);" (call_expression "X509V3_set_nconf((X509V3_CTX *)&ctx,(CONF *)req_conf)" identifier (argument_list "((X509V3_CTX *)&ctx,(CONF *)req_conf)" ( (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)) {\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }\n        else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }" if (parenthesized_expression "((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0))" ( (binary_expression "(local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)" (parenthesized_expression "(local_524 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0)" ( (comma_expression "iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00),\n           iVar12 != 0" (assignment_expression "iVar12 = X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00)" identifier = (call_expression "X509V3_EXT_REQ_add_nconf\n                               ((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00)" identifier (argument_list "((CONF *)req_conf,(X509V3_CTX *)&ctx,(char *)local_524,x_00)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (cast_expression "(char *)local_524" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar12 != 0) goto LAB_0004fc7f;\n          ERR_print_errors((BIO *)bio_err);\n        }" { (if_statement "if ((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)) {\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }" if (parenthesized_expression "((addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0))" ( (binary_expression "(addext_conf != (CONF *)0x0) &&\n             (iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)" (parenthesized_expression "(addext_conf != (CONF *)0x0)" ( (binary_expression "addext_conf != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0)" ( (comma_expression "iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00),\n             iVar12 == 0" (assignment_expression "iVar12 = X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00)" identifier = (call_expression "X509V3_EXT_REQ_add_nconf\n                                 ((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00)" identifier (argument_list "((CONF *)addext_conf,(X509V3_CTX *)&ctx,"default",x_00)" ( (cast_expression "(CONF *)addext_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509V3_CTX *)&ctx" ( (type_descriptor "X509V3_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctx" & identifier)) , (string_literal ""default"" " string_content ") , identifier )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            pcVar14 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar13;\n            goto LAB_0005068b;\n          }" { (expression_statement "pcVar14 = "Error Loading command line extensions\n";" (assignment_expression "pcVar14 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)pcVar13;" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)pcVar13" identifier = (cast_expression "(stack_st_CONF_VALUE *)pcVar13" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0005068b;" goto statement_identifier ;) })) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558);" (assignment_expression "iVar12 = do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558)" identifier = (call_expression "do_X509_REQ_sign((X509_REQ *)x_00,pkey,local_510,local_558)" identifier (argument_list "((X509_REQ *)x_00,pkey,local_510,local_558)" ( (cast_expression "(X509_REQ *)x_00" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar12 != 0) goto LAB_0004fc7f;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fc7f;" goto statement_identifier ;)) (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }) (else_clause "else {\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }" else (compound_statement "{\n          pcVar14 = "Error Loading extension section %s\n";\n          pcVar13 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);\n        }" { (expression_statement "pcVar14 = "Error Loading extension section %s\n";" (assignment_expression "pcVar14 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar13 = (char *)0x0;" (assignment_expression "pcVar13 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0005068b:\n          BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);" statement_identifier : (expression_statement "BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13);" (call_expression "BIO_printf((BIO *)bio_err,pcVar14,local_524,pcVar13)" identifier (argument_list "((BIO *)bio_err,pcVar14,local_524,pcVar13)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier ))) ;)) }))) (goto_statement "goto LAB_0004f82c;" goto statement_identifier ;) })) (expression_statement "local_548 = (BIO *)bio_open_default(local_52c,'r',informat);" (assignment_expression "local_548 = (BIO *)bio_open_default(local_52c,'r',informat)" identifier = (cast_expression "(BIO *)bio_open_default(local_52c,'r',informat)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bio_open_default(local_52c,'r',informat)" identifier (argument_list "(local_52c,'r',informat)" ( identifier , (char_literal "'r'" ' character ') , identifier ))))) ;) (if_statement "if (local_548 == (BIO *)0x0) goto LAB_0004f60c;" if (parenthesized_expression "(local_548 == (BIO *)0x0)" ( (binary_expression "local_548 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f60c;" goto statement_identifier ;)) (if_statement "if (informat == 4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" if (parenthesized_expression "(informat == 4)" ( (binary_expression "informat == 4" identifier == number_literal) )) (compound_statement "{\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }" { (expression_statement "x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);" (assignment_expression "x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0)" identifier = (call_expression "d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0)" identifier (argument_list "(local_548,(X509_REQ **)0x0)" ( identifier , (cast_expression "(X509_REQ **)0x0" ( (type_descriptor "X509_REQ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) }) (else_clause "else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" else (compound_statement "{\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" { (expression_statement "x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);" (assignment_expression "x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier = (call_expression "PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier (argument_list "(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" ( identifier , (cast_expression "(X509_REQ **)0x0" ( (type_descriptor "X509_REQ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) }))) (if_statement "if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(x_00 == (X509_REQ *)0x0)" ( (binary_expression "x_00 == (X509_REQ *)0x0" identifier == (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        x = (X509 *)0x0;\n        BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0);" (call_expression "BIO_printf((BIO *)bio_err,"unable to load X509 request\n",0,0)" identifier (argument_list "((BIO *)bio_err,"unable to load X509 request\n",0,0)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""unable to load X509 request\n"" " string_content escape_sequence ") , number_literal , number_literal ))) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (if_statement "if (local_53c != 0) {\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n        if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }" { (if_statement "if (pkey == (EVP_PKEY *)0x0) goto LAB_000505b7;" if (parenthesized_expression "(pkey == (EVP_PKEY *)0x0)" ( (binary_expression "pkey == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000505b7;" goto statement_identifier ;)) (goto_statement "goto LAB_0004f99b;" goto statement_identifier ;) })) (expression_statement "bVar34 = local_51c != (char *)0x0;" (assignment_expression "bVar34 = local_51c != (char *)0x0" identifier = (binary_expression "local_51c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004fed2:\n      if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" statement_identifier : (if_statement "if ((bVar34 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" if (parenthesized_expression "((bVar34 & (byte)local_564) != 0)" ( (binary_expression "(bVar34 & (byte)local_564) != 0" (parenthesized_expression "(bVar34 & (byte)local_564)" ( (binary_expression "bVar34 & (byte)local_564" identifier & (cast_expression "(byte)local_564" ( (type_descriptor "byte" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n        if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" { (if_statement "if (bVar2) {\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }\n        else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"old subject=",pXVar26,uVar21);\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) goto LAB_0004ff17;\n          uVar21 = get_nameopt();\n          pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n          print_name(bio_err,"new subject=",pXVar26,uVar21);\n        }" { (expression_statement "BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n");" (call_expression "BIO_printf((BIO *)bio_err,"Modifying Request\'s Subject\n")" identifier (argument_list "((BIO *)bio_err,"Modifying Request\'s Subject\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Modifying Request\'s Subject\n"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "uVar21 = get_nameopt();" (assignment_expression "uVar21 = get_nameopt()" identifier = (call_expression "get_nameopt()" identifier (argument_list "()" ( )))) ;) (expression_statement "pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "print_name(bio_err,"old subject=",pXVar26,uVar21);" (call_expression "print_name(bio_err,"old subject=",pXVar26,uVar21)" identifier (argument_list "(bio_err,"old subject=",pXVar26,uVar21)" ( identifier , (string_literal ""old subject="" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);" (assignment_expression "iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" identifier = (call_expression "build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" identifier (argument_list "((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" ( (cast_expression "(X509_REQ *)x_00" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) goto LAB_0004ff17;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004ff17;" goto statement_identifier ;)) (expression_statement "uVar21 = get_nameopt();" (assignment_expression "uVar21 = get_nameopt()" identifier = (call_expression "get_nameopt()" identifier (argument_list "()" ( )))) ;) (expression_statement "pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "print_name(bio_err,"new subject=",pXVar26,uVar21);" (call_expression "print_name(bio_err,"new subject=",pXVar26,uVar21)" identifier (argument_list "(bio_err,"new subject=",pXVar26,uVar21)" ( identifier , (string_literal ""new subject="" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" else (compound_statement "{\n          iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);\n          if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" { (expression_statement "iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c);" (assignment_expression "iVar12 = build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" identifier = (call_expression "build_subject((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" identifier (argument_list "((X509_REQ *)x_00,local_51c,local_4ec,local_57c)" ( (cast_expression "(X509_REQ *)x_00" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }" { (labeled_statement "LAB_0004ff17:\n            pcVar13 = "ERROR: cannot modify subject\n";" statement_identifier : (expression_statement "pcVar13 = "ERROR: cannot modify subject\n";" (assignment_expression "pcVar13 = "ERROR: cannot modify subject\n"" identifier = (string_literal ""ERROR: cannot modify subject\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_0004fb64:\n            BIO_printf((BIO *)bio_err,pcVar13);" statement_identifier : (expression_statement "BIO_printf((BIO *)bio_err,pcVar13);" (call_expression "BIO_printf((BIO *)bio_err,pcVar13)" identifier (argument_list "((BIO *)bio_err,pcVar13)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) (labeled_statement "LAB_0004fb6e:\n            local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_0004fc7f:\n      local_564 = local_578 & local_564;" statement_identifier : (expression_statement "local_564 = local_578 & local_564;" (assignment_expression "local_564 = local_578 & local_564" identifier = (binary_expression "local_578 & local_564" identifier & identifier)) ;)) (if_statement "if (local_564 != 0) {\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(local_564 != 0)" ( (binary_expression "local_564 != 0" identifier != number_literal) )) (compound_statement "{\n        local_560 = (BIO *)pkey;\n        if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }" { (expression_statement "local_560 = (BIO *)pkey;" (assignment_expression "local_560 = (BIO *)pkey" identifier = (cast_expression "(BIO *)pkey" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" if (parenthesized_expression "((pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0))" ( (binary_expression "(pkey == (EVP_PKEY *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)" (parenthesized_expression "(pkey == (EVP_PKEY *)0x0)" ( (binary_expression "pkey == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)" ( (comma_expression "local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0" (assignment_expression "local_560 = (BIO *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(BIO *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) , (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" else (compound_statement "{\n          iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" { (expression_statement "iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);" (assignment_expression "iVar12 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560)" identifier = (call_expression "X509_REQ_verify(x_00,(EVP_PKEY *)local_560)" identifier (argument_list "(x_00,(EVP_PKEY *)local_560)" ( identifier , (cast_expression "(EVP_PKEY *)local_560" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (-1 < iVar12) {\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }" if (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) (compound_statement "{\n            if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }" { (if_statement "if (iVar12 == 0) {\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }\n            else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              BIO_printf((BIO *)bio_err,"verify failure\n");\n              ERR_print_errors((BIO *)bio_err);\n            }" { (expression_statement "BIO_printf((BIO *)bio_err,"verify failure\n");" (call_expression "BIO_printf((BIO *)bio_err,"verify failure\n")" identifier (argument_list "((BIO *)bio_err,"verify failure\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""verify failure\n"" " string_content escape_sequence ") ))) ;) (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }) (else_clause "else {\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }" else (compound_statement "{\n              BIO_printf((BIO *)bio_err,"verify OK\n");\n            }" { (expression_statement "BIO_printf((BIO *)bio_err,"verify OK\n");" (call_expression "BIO_printf((BIO *)bio_err,"verify OK\n")" identifier (argument_list "((BIO *)bio_err,"verify OK\n")" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""verify OK\n"" " string_content escape_sequence ") ))) ;) }))) (goto_statement "goto LAB_0004fce0;" goto statement_identifier ;) })) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (labeled_statement "LAB_0004fce0:\n      iVar12 = outformat;" statement_identifier : (expression_statement "iVar12 = outformat;" (assignment_expression "iVar12 = outformat" identifier = identifier) ;)) (if_statement "if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }" if (parenthesized_expression "(((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0))" ( (binary_expression "((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)" (parenthesized_expression "((local_580 & (local_594 ^ 1)) != 0)" ( (binary_expression "(local_580 & (local_594 ^ 1)) != 0" (parenthesized_expression "(local_580 & (local_594 ^ 1))" ( (binary_expression "local_580 & (local_594 ^ 1)" identifier & (parenthesized_expression "(local_594 ^ 1)" ( (binary_expression "local_594 ^ 1" identifier ^ number_literal) ))) )) != number_literal) )) && (parenthesized_expression "((local_584 == 0 && local_56c == 0) && local_520 == 0)" ( (binary_expression "(local_584 == 0 && local_56c == 0) && local_520 == 0" (parenthesized_expression "(local_584 == 0 && local_56c == 0)" ( (binary_expression "local_584 == 0 && local_56c == 0" (binary_expression "local_584 == 0" identifier == number_literal) && (binary_expression "local_56c == 0" identifier == number_literal)) )) && (binary_expression "local_520 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }" { (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        cVar9 = 'w';\n      }\n      else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }" if (parenthesized_expression "((local_518 == (char *)0x0) || (local_50c == (char *)0x0))" ( (binary_expression "(local_518 == (char *)0x0) || (local_50c == (char *)0x0)" (parenthesized_expression "(local_518 == (char *)0x0)" ( (binary_expression "local_518 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_50c == (char *)0x0)" ( (binary_expression "local_50c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        cVar9 = 'w';\n      }" { (expression_statement "cVar9 = 'w';" (assignment_expression "cVar9 = 'w'" identifier = (char_literal "'w'" ' character ')) ;) }) (else_clause "else {\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }" else (compound_statement "{\n        iVar20 = strcmp(local_518,local_50c);\n        cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;\n      }" { (expression_statement "iVar20 = strcmp(local_518,local_50c);" (assignment_expression "iVar20 = strcmp(local_518,local_50c)" identifier = (call_expression "strcmp(local_518,local_50c)" identifier (argument_list "(local_518,local_50c)" ( identifier , identifier )))) ;) (expression_statement "cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77;" (assignment_expression "cVar9 = (-(iVar20 == 0) & 0xeaU) + 0x77" identifier = (binary_expression "(-(iVar20 == 0) & 0xeaU) + 0x77" (parenthesized_expression "(-(iVar20 == 0) & 0xeaU)" ( (binary_expression "-(iVar20 == 0) & 0xeaU" (unary_expression "-(iVar20 == 0)" - (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) ))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12);" (assignment_expression "local_560 = (BIO *)bio_open_default(local_50c,cVar9,iVar12)" identifier = (cast_expression "(BIO *)bio_open_default(local_50c,cVar9,iVar12)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bio_open_default(local_50c,cVar9,iVar12)" identifier (argument_list "(local_50c,cVar9,iVar12)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(local_560 == (BIO *)0x0)" ( (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (if_statement "if (local_56c != 0) {\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }" if (parenthesized_expression "(local_56c != 0)" ( (binary_expression "local_56c != 0" identifier != number_literal) )) (compound_statement "{\n        pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar25);\n      }" { (expression_statement "pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (assignment_expression "pEVar25 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (if_statement "if (pEVar25 == (EVP_PKEY *)0x0) {\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "(pEVar25 == (EVP_PKEY *)0x0)" ( (binary_expression "pEVar25 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }" { (expression_statement "BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0);" (call_expression "BIO_printf((BIO *)bio_err,"Error getting public key\n",0,0)" identifier (argument_list "((BIO *)bio_err,"Error getting public key\n",0,0)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Error getting public key\n"" " string_content escape_sequence ") , number_literal , number_literal ))) ;) (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_564 = local_56c;" (assignment_expression "local_564 = local_56c" identifier = identifier) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "PEM_write_bio_PUBKEY(local_560,pEVar25);" (call_expression "PEM_write_bio_PUBKEY(local_560,pEVar25)" identifier (argument_list "(local_560,pEVar25)" ( identifier , identifier ))) ;) })) (expression_statement "uVar21 = reqflag;" (assignment_expression "uVar21 = reqflag" identifier = identifier) ;) (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (if_statement "if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }" if (parenthesized_expression "(local_594 == 0)" ( (binary_expression "local_594 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar21 = get_nameopt();\n        pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n        print_name((BIO *)local_560,"subject=",pXVar26,uVar21);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }" { (if_statement "if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }" if (parenthesized_expression "(local_584 == 0)" ( (binary_expression "local_584 == 0" identifier == number_literal) )) (compound_statement "{\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar12 = EVP_PKEY_base_id(local_570);\n          if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }" { (expression_statement "local_598 = 1;" (assignment_expression "local_598 = 1" identifier = number_literal) ;) (if_statement "if (local_520 == 0) goto LAB_0004fe2d;" if (parenthesized_expression "(local_520 == 0)" ( (binary_expression "local_520 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fe2d;" goto statement_identifier ;)) (expression_statement "local_598 = local_520;" (assignment_expression "local_598 = local_520" identifier = identifier) ;) (if_statement "if (local_53c == 0) goto LAB_00050366;" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050366;" goto statement_identifier ;)) (expression_statement "local_598 = local_53c;" (assignment_expression "local_598 = local_53c" identifier = identifier) ;) (labeled_statement "LAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)X509_get0_pubkey(x);" (assignment_expression "local_570 = (EVP_PKEY *)X509_get0_pubkey(x)" identifier = (cast_expression "(EVP_PKEY *)X509_get0_pubkey(x)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_pubkey(x)" identifier (argument_list "(x)" ( identifier ))))) ;)) (labeled_statement "LAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;" statement_identifier : (expression_statement "puVar6 = PTR_stdout_000bdfa8;" (assignment_expression "puVar6 = PTR_stdout_000bdfa8" identifier = identifier) ;)) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }" { (expression_statement "fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);" (call_expression "fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8)" identifier (argument_list "("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8)" ( (string_literal ""Modulus=unavailable\n"" " string_content escape_sequence ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_000bdfa8" * (cast_expression "(FILE **)PTR_stdout_000bdfa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "local_564 = local_598;" (assignment_expression "local_564 = local_598" identifier = identifier) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);" (call_expression "fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8)" identifier (argument_list "("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8)" ( (string_literal ""Modulus="" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_000bdfa8" * (cast_expression "(FILE **)PTR_stdout_000bdfa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "iVar12 = EVP_PKEY_base_id(local_570);" (assignment_expression "iVar12 = EVP_PKEY_base_id(local_570)" identifier = (call_expression "EVP_PKEY_base_id(local_570)" identifier (argument_list "(local_570)" ( identifier )))) ;) (if_statement "if (iVar12 == 6) {\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" if (parenthesized_expression "(iVar12 == 6)" ( (binary_expression "iVar12 == 6" identifier == number_literal) )) (compound_statement "{\n            uVar37 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar37,&ctx,0,0);\n            BN_print(local_560,(BIGNUM *)ctx.flags);\n          }" { (expression_statement "uVar37 = EVP_PKEY_get0_RSA(local_570);" (assignment_expression "uVar37 = EVP_PKEY_get0_RSA(local_570)" identifier = (call_expression "EVP_PKEY_get0_RSA(local_570)" identifier (argument_list "(local_570)" ( identifier )))) ;) (expression_statement "RSA_get0_key(uVar37,&ctx,0,0);" (call_expression "RSA_get0_key(uVar37,&ctx,0,0)" identifier (argument_list "(uVar37,&ctx,0,0)" ( identifier , (pointer_expression "&ctx" & identifier) , number_literal , number_literal ))) ;) (expression_statement "BN_print(local_560,(BIGNUM *)ctx.flags);" (call_expression "BN_print(local_560,(BIGNUM *)ctx.flags)" identifier (argument_list "(local_560,(BIGNUM *)ctx.flags)" ( identifier , (cast_expression "(BIGNUM *)ctx.flags" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ctx.flags" identifier . field_identifier)) ))) ;) }) (else_clause "else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" else (compound_statement "{\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" { (expression_statement "fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);" (call_expression "fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6)" identifier (argument_list "("Wrong Algorithm type",1,0x14,*(FILE **)puVar6)" ( (string_literal ""Wrong Algorithm type"" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)puVar6" * (cast_expression "(FILE **)puVar6" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) }))) (expression_statement "fputc(10,*(FILE **)puVar6);" (call_expression "fputc(10,*(FILE **)puVar6)" identifier (argument_list "(10,*(FILE **)puVar6)" ( number_literal , (pointer_expression "*(FILE **)puVar6" * (cast_expression "(FILE **)puVar6" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (goto_statement "goto LAB_0004fe2d;" goto statement_identifier ;) })) (expression_statement "local_598 = local_584;" (assignment_expression "local_598 = local_584" identifier = identifier) ;) (if_statement "if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar21 = get_nameopt();\n          pXVar24 = X509_get_subject_name(x);\n          print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }" { (expression_statement "local_598 = local_53c;" (assignment_expression "local_598 = local_53c" identifier = identifier) ;) (labeled_statement "LAB_0004ffc7:\n          uVar21 = get_nameopt();" statement_identifier : (expression_statement "uVar21 = get_nameopt();" (assignment_expression "uVar21 = get_nameopt()" identifier = (call_expression "get_nameopt()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pXVar24 = X509_get_subject_name(x);" (assignment_expression "pXVar24 = X509_get_subject_name(x)" identifier = (call_expression "X509_get_subject_name(x)" identifier (argument_list "(x)" ( identifier )))) ;) (expression_statement "print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21);" (call_expression "print_name((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21)" identifier (argument_list "((BIO *)local_560,"subject=",(X509_NAME *)pXVar24,uVar21)" ( (cast_expression "(BIO *)local_560" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""subject="" " string_content ") , (cast_expression "(X509_NAME *)pXVar24" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (if_statement "if (local_520 == 0) goto LAB_0004fff8;" if (parenthesized_expression "(local_520 == 0)" ( (binary_expression "local_520 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fff8;" goto statement_identifier ;)) (goto_statement "goto LAB_0004fdbe;" goto statement_identifier ;) })) (labeled_statement "LAB_000502e6:\n        uVar21 = get_nameopt();" statement_identifier : (expression_statement "uVar21 = get_nameopt();" (assignment_expression "uVar21 = get_nameopt()" identifier = (call_expression "get_nameopt()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar26 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "print_name((BIO *)local_560,"subject=",pXVar26,uVar21);" (call_expression "print_name((BIO *)local_560,"subject=",pXVar26,uVar21)" identifier (argument_list "((BIO *)local_560,"subject=",pXVar26,uVar21)" ( (cast_expression "(BIO *)local_560" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""subject="" " string_content ") , identifier , identifier ))) ;) (if_statement "if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }" { (labeled_statement "LAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (assignment_expression "local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;)) (goto_statement "goto LAB_0004fdce;" goto statement_identifier ;) })) (if_statement "if (local_580 == 0) goto LAB_0004fe3b;" if (parenthesized_expression "(local_580 == 0)" ( (binary_expression "local_580 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fe3b;" goto statement_identifier ;)) (labeled_statement "LAB_0005031e:\n        local_564 = 0;" statement_identifier : (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (local_53c == 0) {\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }\n      else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (compound_statement "{\n        uVar23 = get_nameopt();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 request\n";\n      }" { (expression_statement "uVar23 = get_nameopt();" (assignment_expression "uVar23 = get_nameopt()" identifier = (call_expression "get_nameopt()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21);" (assignment_expression "local_598 = X509_REQ_print_ex(local_560,x_00,uVar23,uVar21)" identifier = (call_expression "X509_REQ_print_ex(local_560,x_00,uVar23,uVar21)" identifier (argument_list "(local_560,x_00,uVar23,uVar21)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (local_598 == 0) {\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }" if (parenthesized_expression "(local_598 == 0)" ( (binary_expression "local_598 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar13 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }" { (expression_statement "pcVar13 = "Error printing certificate request\n";" (assignment_expression "pcVar13 = "Error printing certificate request\n"" identifier = (string_literal ""Error printing certificate request\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00050628;" goto statement_identifier ;) })) (if_statement "if (local_584 != 0) goto LAB_000502e6;" if (parenthesized_expression "(local_584 != 0)" ( (binary_expression "local_584 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000502e6;" goto statement_identifier ;)) (if_statement "if (local_520 != 0) goto LAB_00050366;" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00050366;" goto statement_identifier ;)) (labeled_statement "LAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;" statement_identifier : (if_statement "if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;" if (parenthesized_expression "(local_53c != 0 || local_580 != 0)" ( (binary_expression "local_53c != 0 || local_580 != 0" (binary_expression "local_53c != 0" identifier != number_literal) || (binary_expression "local_580 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0004fff8;" goto statement_identifier ;))) (labeled_statement "LAB_0004fe3b:\n        if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }" statement_identifier : (if_statement "if (outformat == 4) {\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }" if (parenthesized_expression "(outformat == 4)" ( (binary_expression "outformat == 4" identifier == number_literal) )) (compound_statement "{\n          iVar12 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar37 = extraout_EDX_02;\n        }" { (expression_statement "iVar12 = i2d_X509_REQ_bio(local_560,x_00);" (assignment_expression "iVar12 = i2d_X509_REQ_bio(local_560,x_00)" identifier = (call_expression "i2d_X509_REQ_bio(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar37 = extraout_EDX_02;" (assignment_expression "uVar37 = extraout_EDX_02" identifier = identifier) ;) }) (else_clause "else if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }" else (if_statement "if (bVar5) {\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }\n        else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n          iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar37 = extraout_EDX_00;\n        }" { (expression_statement "iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);" (assignment_expression "iVar12 = PEM_write_bio_X509_REQ_NEW(local_560,x_00)" identifier = (call_expression "PEM_write_bio_X509_REQ_NEW(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar37 = extraout_EDX_00;" (assignment_expression "uVar37 = extraout_EDX_00" identifier = identifier) ;) }) (else_clause "else {\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }" else (compound_statement "{\n          iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar37 = extraout_EDX_01;\n        }" { (expression_statement "iVar12 = PEM_write_bio_X509_REQ(local_560,x_00);" (assignment_expression "iVar12 = PEM_write_bio_X509_REQ(local_560,x_00)" identifier = (call_expression "PEM_write_bio_X509_REQ(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar37 = extraout_EDX_01;" (assignment_expression "uVar37 = extraout_EDX_01" identifier = identifier) ;) })))))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar12 != 0) goto LAB_0004e57b;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (expression_statement "pcVar13 = "unable to write X509 request\n";" (assignment_expression "pcVar13 = "unable to write X509 request\n"" identifier = (string_literal ""unable to write X509 request\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }" else (compound_statement "{\n        uVar23 = get_nameopt();\n        local_598 = X509_print_ex(local_560,x,uVar23,uVar21);\n        if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar12 != 0) goto LAB_0004e57b;\n        pcVar13 = "unable to write X509 certificate\n";\n        uVar37 = 0;\n      }" { (expression_statement "uVar23 = get_nameopt();" (assignment_expression "uVar23 = get_nameopt()" identifier = (call_expression "get_nameopt()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_598 = X509_print_ex(local_560,x,uVar23,uVar21);" (assignment_expression "local_598 = X509_print_ex(local_560,x,uVar23,uVar21)" identifier = (call_expression "X509_print_ex(local_560,x,uVar23,uVar21)" identifier (argument_list "(local_560,x,uVar23,uVar21)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (local_598 == 0) {\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }" if (parenthesized_expression "(local_598 == 0)" ( (binary_expression "local_598 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar13 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);\n          ERR_print_errors((BIO *)bio_err);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }" { (expression_statement "pcVar13 = "Error printing certificate\n";" (assignment_expression "pcVar13 = "Error printing certificate\n"" identifier = (string_literal ""Error printing certificate\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00050628:\n          BIO_printf((BIO *)bio_err,pcVar13,0,0);" statement_identifier : (expression_statement "BIO_printf((BIO *)bio_err,pcVar13,0,0);" (call_expression "BIO_printf((BIO *)bio_err,pcVar13,0,0)" identifier (argument_list "((BIO *)bio_err,pcVar13,0,0)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal , number_literal ))) ;)) (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (local_584 != 0) goto LAB_0004ffc7;" if (parenthesized_expression "(local_584 != 0)" ( (binary_expression "local_584 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004ffc7;" goto statement_identifier ;)) (if_statement "if (local_520 != 0) goto LAB_0004fdbe;" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fdbe;" goto statement_identifier ;)) (labeled_statement "LAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;" statement_identifier : (if_statement "if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;" if (parenthesized_expression "((local_53c & (local_580 ^ 1)) == 0)" ( (binary_expression "(local_53c & (local_580 ^ 1)) == 0" (parenthesized_expression "(local_53c & (local_580 ^ 1))" ( (binary_expression "local_53c & (local_580 ^ 1)" identifier & (parenthesized_expression "(local_580 ^ 1)" ( (binary_expression "local_580 ^ 1" identifier ^ number_literal) ))) )) == number_literal) )) (goto_statement "goto LAB_0005031e;" goto statement_identifier ;))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (x == (X509 *)0x0) goto LAB_0004e57b;" if (parenthesized_expression "(x == (X509 *)0x0)" ( (binary_expression "x == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (if_statement "if (outformat == 4) {\n          iVar12 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }" if (parenthesized_expression "(outformat == 4)" ( (binary_expression "outformat == 4" identifier == number_literal) )) (compound_statement "{\n          iVar12 = i2d_X509_bio(local_560,x);\n        }" { (expression_statement "iVar12 = i2d_X509_bio(local_560,x);" (assignment_expression "iVar12 = i2d_X509_bio(local_560,x)" identifier = (call_expression "i2d_X509_bio(local_560,x)" identifier (argument_list "(local_560,x)" ( identifier , identifier )))) ;) }) (else_clause "else {\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }" else (compound_statement "{\n          iVar12 = PEM_write_bio_X509(local_560,x);\n        }" { (expression_statement "iVar12 = PEM_write_bio_X509(local_560,x);" (assignment_expression "iVar12 = PEM_write_bio_X509(local_560,x)" identifier = (call_expression "PEM_write_bio_X509(local_560,x)" identifier (argument_list "(local_560,x)" ( identifier , identifier )))) ;) }))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar12 != 0) goto LAB_0004e57b;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (expression_statement "pcVar13 = "unable to write X509 certificate\n";" (assignment_expression "pcVar13 = "unable to write X509 certificate\n"" identifier = (string_literal ""unable to write X509 certificate\n"" " string_content escape_sequence ")) ;) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) }))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37);" (call_expression "BIO_printf((BIO *)bio_err,pcVar13,uVar37,uVar37)" identifier (argument_list "((BIO *)bio_err,pcVar13,uVar37,uVar37)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier ))) ;) (expression_statement "local_564 = local_598;" (assignment_expression "local_564 = local_598" identifier = identifier) ;) })))) }) (else_clause "else {\n    local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key");\n    pkey = (EVP_PKEY *)local_548;\n    if (local_548 != (BIO *)0x0) {\n      app_RAND_load_conf(req_conf,"req");\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" else (compound_statement "{\n    local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key");\n    pkey = (EVP_PKEY *)local_548;\n    if (local_548 != (BIO *)0x0) {\n      app_RAND_load_conf(req_conf,"req");\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" { (expression_statement "local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key");" (assignment_expression "local_548 = (BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key")" identifier = (cast_expression "(BIO *)load_key(local_514,keyform,0,passin,local_540,"Private Key")" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "load_key(local_514,keyform,0,passin,local_540,"Private Key")" identifier (argument_list "(local_514,keyform,0,passin,local_540,"Private Key")" ( identifier , identifier , number_literal , identifier , identifier , (string_literal ""Private Key"" " string_content ") ))))) ;) (expression_statement "pkey = (EVP_PKEY *)local_548;" (assignment_expression "pkey = (EVP_PKEY *)local_548" identifier = (cast_expression "(EVP_PKEY *)local_548" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (local_548 != (BIO *)0x0) {\n      app_RAND_load_conf(req_conf,"req");\n      goto LAB_0004f1d1;\n    }" if (parenthesized_expression "(local_548 != (BIO *)0x0)" ( (binary_expression "local_548 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      app_RAND_load_conf(req_conf,"req");\n      goto LAB_0004f1d1;\n    }" { (expression_statement "app_RAND_load_conf(req_conf,"req");" (call_expression "app_RAND_load_conf(req_conf,"req")" identifier (argument_list "(req_conf,"req")" ( identifier , (string_literal ""req"" " string_content ") ))) ;) (goto_statement "goto LAB_0004f1d1;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;" statement_identifier : (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (while_statement "while (iVar12 = X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1), iVar12 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar12 = OPENSSL_sk_num(local_548);\n      if (iVar12 <= local_588) goto LAB_00050951;\n      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);\n      pcVar14 = *(char **)(iVar12 + 4);\n      iVar20 = OBJ_txt2nid(pcVar14);\n    } while (iVar20 == 0);\n    iVar31 = join(pcVar13,100,pcVar14,"_default","Name");\n    if (iVar31 == 0) {\nLAB_00050d30:\n      ppBVar27 = &bio_err;\n      goto LAB_0004f815;\n    }\n    pcVar28 = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (pcVar28 == (char *)0x0) {\n      ERR_clear_error();\n      pcVar28 = "";\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_value","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    value = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (value == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_min","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      n_min = -1;\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_max","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    psVar18 = section;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      ctx.flags = -1;\n    }\n    uVar29 = build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18);\n    if (uVar29 < 2) {\n      if (uVar29 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }" while (parenthesized_expression "(iVar12 = X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1), iVar12 != 0)" ( (comma_expression "iVar12 = X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1), iVar12 != 0" (assignment_expression "iVar12 = X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1)" identifier = (call_expression "X509_REQ_add1_attr_by_NID(x_00,iVar20,local_4ec,(uchar *)buf_1,-1)" identifier (argument_list "(x_00,iVar20,local_4ec,(uchar *)buf_1,-1)" ( identifier , identifier , identifier , (cast_expression "(uchar *)buf_1" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) )) (compound_statement "{\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar12 = OPENSSL_sk_num(local_548);\n      if (iVar12 <= local_588) goto LAB_00050951;\n      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);\n      pcVar14 = *(char **)(iVar12 + 4);\n      iVar20 = OBJ_txt2nid(pcVar14);\n    } while (iVar20 == 0);\n    iVar31 = join(pcVar13,100,pcVar14,"_default","Name");\n    if (iVar31 == 0) {\nLAB_00050d30:\n      ppBVar27 = &bio_err;\n      goto LAB_0004f815;\n    }\n    pcVar28 = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (pcVar28 == (char *)0x0) {\n      ERR_clear_error();\n      pcVar28 = "";\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_value","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    value = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);\n    if (value == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_min","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      n_min = -1;\n    }\n    iVar31 = join(pcVar13,100,pcVar14,"_max","Name");\n    if (iVar31 == 0) goto LAB_00050d30;\n    psVar18 = section;\n    iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags);\n    if (iVar31 == 0) {\n      ERR_clear_error();\n      ctx.flags = -1;\n    }\n    uVar29 = build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18);\n    if (uVar29 < 2) {\n      if (uVar29 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }" { (labeled_statement "LAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar12 = OPENSSL_sk_num(local_548);\n      if (iVar12 <= local_588) goto LAB_00050951;\n      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);\n      pcVar14 = *(char **)(iVar12 + 4);\n      iVar20 = OBJ_txt2nid(pcVar14);\n    } while (iVar20 == 0);" statement_identifier : (do_statement "do {\n      local_588 = local_588 + 1;\n      iVar12 = OPENSSL_sk_num(local_548);\n      if (iVar12 <= local_588) goto LAB_00050951;\n      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);\n      pcVar14 = *(char **)(iVar12 + 4);\n      iVar20 = OBJ_txt2nid(pcVar14);\n    } while (iVar20 == 0);" do (compound_statement "{\n      local_588 = local_588 + 1;\n      iVar12 = OPENSSL_sk_num(local_548);\n      if (iVar12 <= local_588) goto LAB_00050951;\n      iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);\n      pcVar14 = *(char **)(iVar12 + 4);\n      iVar20 = OBJ_txt2nid(pcVar14);\n    }" { (expression_statement "local_588 = local_588 + 1;" (assignment_expression "local_588 = local_588 + 1" identifier = (binary_expression "local_588 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = OPENSSL_sk_num(local_548);" (assignment_expression "iVar12 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) ;) (if_statement "if (iVar12 <= local_588) goto LAB_00050951;" if (parenthesized_expression "(iVar12 <= local_588)" ( (binary_expression "iVar12 <= local_588" identifier <= identifier) )) (goto_statement "goto LAB_00050951;" goto statement_identifier ;)) (expression_statement "iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12);" (assignment_expression "iVar12 = OPENSSL_sk_value(local_548,local_588,iVar12,iVar12)" identifier = (call_expression "OPENSSL_sk_value(local_548,local_588,iVar12,iVar12)" identifier (argument_list "(local_548,local_588,iVar12,iVar12)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pcVar14 = *(char **)(iVar12 + 4);" (assignment_expression "pcVar14 = *(char **)(iVar12 + 4)" identifier = (pointer_expression "*(char **)(iVar12 + 4)" * (cast_expression "(char **)(iVar12 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = OBJ_txt2nid(pcVar14);" (assignment_expression "iVar20 = OBJ_txt2nid(pcVar14)" identifier = (call_expression "OBJ_txt2nid(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) ;)) (expression_statement "iVar31 = join(pcVar13,100,pcVar14,"_default","Name");" (assignment_expression "iVar31 = join(pcVar13,100,pcVar14,"_default","Name")" identifier = (call_expression "join(pcVar13,100,pcVar14,"_default","Name")" identifier (argument_list "(pcVar13,100,pcVar14,"_default","Name")" ( identifier , number_literal , identifier , (string_literal ""_default"" " string_content ") , (string_literal ""Name"" " string_content ") )))) ;) (if_statement "if (iVar31 == 0) {\nLAB_00050d30:\n      ppBVar27 = &bio_err;\n      goto LAB_0004f815;\n    }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00050d30:\n      ppBVar27 = &bio_err;\n      goto LAB_0004f815;\n    }" { (labeled_statement "LAB_00050d30:\n      ppBVar27 = &bio_err;" statement_identifier : (expression_statement "ppBVar27 = &bio_err;" (assignment_expression "ppBVar27 = &bio_err" identifier = (pointer_expression "&bio_err" & identifier)) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "pcVar28 = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);" (assignment_expression "pcVar28 = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13)" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13)" identifier (argument_list "((CONF *)req_conf,(char *)section,pcVar13)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (pcVar28 == (char *)0x0) {\n      ERR_clear_error();\n      pcVar28 = "";\n    }" if (parenthesized_expression "(pcVar28 == (char *)0x0)" ( (binary_expression "pcVar28 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n      pcVar28 = "";\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar28 = "";" (assignment_expression "pcVar28 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "iVar31 = join(pcVar13,100,pcVar14,"_value","Name");" (assignment_expression "iVar31 = join(pcVar13,100,pcVar14,"_value","Name")" identifier = (call_expression "join(pcVar13,100,pcVar14,"_value","Name")" identifier (argument_list "(pcVar13,100,pcVar14,"_value","Name")" ( identifier , number_literal , identifier , (string_literal ""_value"" " string_content ") , (string_literal ""Name"" " string_content ") )))) ;) (if_statement "if (iVar31 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "value = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13);" (assignment_expression "value = NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13)" identifier = (call_expression "NCONF_get_string((CONF *)req_conf,(char *)section,pcVar13)" identifier (argument_list "((CONF *)req_conf,(char *)section,pcVar13)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (value == (char *)0x0) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "(value == (char *)0x0)" ( (binary_expression "value == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar31 = join(pcVar13,100,pcVar14,"_min","Name");" (assignment_expression "iVar31 = join(pcVar13,100,pcVar14,"_min","Name")" identifier = (call_expression "join(pcVar13,100,pcVar14,"_min","Name")" identifier (argument_list "(pcVar13,100,pcVar14,"_min","Name")" ( identifier , number_literal , identifier , (string_literal ""_min"" " string_content ") , (string_literal ""Name"" " string_content ") )))) ;) (if_statement "if (iVar31 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min);" (assignment_expression "iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min)" identifier = (call_expression "NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&n_min)" identifier (argument_list "((CONF *)req_conf,(char *)section,pcVar13,&n_min)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&n_min" & identifier) )))) ;) (if_statement "if (iVar31 == 0) {\n      ERR_clear_error();\n      n_min = -1;\n    }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_clear_error();\n      n_min = -1;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "n_min = -1;" (assignment_expression "n_min = -1" identifier = number_literal) ;) })) (expression_statement "iVar31 = join(pcVar13,100,pcVar14,"_max","Name");" (assignment_expression "iVar31 = join(pcVar13,100,pcVar14,"_max","Name")" identifier = (call_expression "join(pcVar13,100,pcVar14,"_max","Name")" identifier (argument_list "(pcVar13,100,pcVar14,"_max","Name")" ( identifier , number_literal , identifier , (string_literal ""_max"" " string_content ") , (string_literal ""Name"" " string_content ") )))) ;) (if_statement "if (iVar31 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "psVar18 = section;" (assignment_expression "psVar18 = section" identifier = identifier) ;) (expression_statement "iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags);" (assignment_expression "iVar31 = NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags)" identifier = (call_expression "NCONF_get_number_e((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags)" identifier (argument_list "((CONF *)req_conf,(char *)section,pcVar13,&ctx.flags)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&ctx.flags" & (field_expression "ctx.flags" identifier . field_identifier)) )))) ;) (if_statement "if (iVar31 == 0) {\n      ERR_clear_error();\n      ctx.flags = -1;\n    }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_clear_error();\n      ctx.flags = -1;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "ctx.flags = -1;" (assignment_expression "ctx.flags = -1" (field_expression "ctx.flags" identifier . field_identifier) = number_literal) ;) })) (expression_statement "uVar29 = build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18);" (assignment_expression "uVar29 = build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18)" identifier = (call_expression "build_data(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18)" identifier (argument_list "(*(char **)(iVar12 + 8),pcVar28,value,n_min,ctx.flags,buf_1,0x87cb1,\n                        "Attribute default",(char *)psVar18)" ( (pointer_expression "*(char **)(iVar12 + 8)" * (cast_expression "(char **)(iVar12 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , identifier , identifier , identifier , (field_expression "ctx.flags" identifier . field_identifier) , identifier , number_literal , (string_literal ""Attribute default"" " string_content ") , (cast_expression "(char *)psVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (uVar29 < 2) {\n      if (uVar29 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }" if (parenthesized_expression "(uVar29 < 2)" ( (binary_expression "uVar29 < 2" identifier < number_literal) )) (compound_statement "{\n      if (uVar29 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }" { (if_statement "if (uVar29 == 0) goto LAB_00050d30;" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (goto_statement "goto LAB_00050afd;" goto statement_identifier ;) })) })) (expression_statement "ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,"Error adding attribute\n",0,0);" (assignment_expression "ppBVar27 = (BIO **)BIO_printf((BIO *)bio_err,"Error adding attribute\n",0,0)" identifier = (cast_expression "(BIO **)BIO_printf((BIO *)bio_err,"Error adding attribute\n",0,0)" ( (type_descriptor "BIO **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "BIO_printf((BIO *)bio_err,"Error adding attribute\n",0,0)" identifier (argument_list "((BIO *)bio_err,"Error adding attribute\n",0,0)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Error adding attribute\n"" " string_content escape_sequence ") , number_literal , number_literal ))))) ;) (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (labeled_statement "LAB_0004f815:\n  BIO_printf((BIO *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27);" statement_identifier : (expression_statement "BIO_printf((BIO *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27);" (call_expression "BIO_printf((BIO *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27)" identifier (argument_list "((BIO *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""problems making Certificate Request\n"" " string_content escape_sequence ") , identifier , identifier ))) ;)) (labeled_statement "LAB_0004f82c:\n  local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e56a:\n  ERR_print_errors((BIO *)bio_err);" statement_identifier : (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (labeled_statement "LAB_0004e57b:\n  NCONF_free((CONF *)req_conf);" statement_identifier : (expression_statement "NCONF_free((CONF *)req_conf);" (call_expression "NCONF_free((CONF *)req_conf)" identifier (argument_list "((CONF *)req_conf)" ( (cast_expression "(CONF *)req_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "NCONF_free((CONF *)addext_conf);" (call_expression "NCONF_free((CONF *)addext_conf)" identifier (argument_list "((CONF *)addext_conf)" ( (cast_expression "(CONF *)addext_conf" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "BIO_free(local_550);" (call_expression "BIO_free(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "BIO_free(local_548);" (call_expression "BIO_free(local_548)" identifier (argument_list "(local_548)" ( identifier ))) ;) (expression_statement "BIO_free_all(local_560);" (call_expression "BIO_free_all(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (expression_statement "EVP_PKEY_free((EVP_PKEY *)pkey);" (call_expression "EVP_PKEY_free((EVP_PKEY *)pkey)" identifier (argument_list "((EVP_PKEY *)pkey)" ( (cast_expression "(EVP_PKEY *)pkey" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);" (call_expression "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570)" identifier (argument_list "((EVP_PKEY_CTX *)local_570)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "OPENSSL_sk_free(local_55c);" (call_expression "OPENSSL_sk_free(local_55c)" identifier (argument_list "(local_55c)" ( identifier ))) ;) (expression_statement "OPENSSL_sk_free(local_558);" (call_expression "OPENSSL_sk_free(local_558)" identifier (argument_list "(local_558)" ( identifier ))) ;) (expression_statement "OPENSSL_LH_doall(local_54c,exts_cleanup);" (call_expression "OPENSSL_LH_doall(local_54c,exts_cleanup)" identifier (argument_list "(local_54c,exts_cleanup)" ( identifier , identifier ))) ;) (expression_statement "OPENSSL_LH_free(local_54c);" (call_expression "OPENSSL_LH_free(local_54c)" identifier (argument_list "(local_54c)" ( identifier ))) ;) (expression_statement "ENGINE_free((ENGINE *)local_544);" (call_expression "ENGINE_free((ENGINE *)local_544)" identifier (argument_list "((ENGINE *)local_544)" ( (cast_expression "(ENGINE *)local_544" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "CRYPTO_free(keyalgstr);" (call_expression "CRYPTO_free(keyalgstr)" identifier (argument_list "(keyalgstr)" ( identifier ))) ;) (expression_statement "X509_REQ_free(x_00);" (call_expression "X509_REQ_free(x_00)" identifier (argument_list "(x_00)" ( identifier ))) ;) (expression_statement "X509_free(x);" (call_expression "X509_free(x)" identifier (argument_list "(x)" ( identifier ))) ;) (expression_statement "ASN1_INTEGER_free(local_554);" (call_expression "ASN1_INTEGER_free(local_554)" identifier (argument_list "(local_554)" ( identifier ))) ;) (expression_statement "release_engine(local_540);" (call_expression "release_engine(local_540)" identifier (argument_list "(local_540)" ( identifier ))) ;) (if_statement "if (passin != local_538) {\n    CRYPTO_free(passin);\n  }" if (parenthesized_expression "(passin != local_538)" ( (binary_expression "passin != local_538" identifier != identifier) )) (compound_statement "{\n    CRYPTO_free(passin);\n  }" { (expression_statement "CRYPTO_free(passin);" (call_expression "CRYPTO_free(passin)" identifier (argument_list "(passin)" ( identifier ))) ;) })) (if_statement "if (passout != local_534) {\n    CRYPTO_free(passout);\n  }" if (parenthesized_expression "(passout != local_534)" ( (binary_expression "passout != local_534" identifier != identifier) )) (compound_statement "{\n    CRYPTO_free(passout);\n  }" { (expression_statement "CRYPTO_free(passout);" (call_expression "CRYPTO_free(passout)" identifier (argument_list "(passout)" ( identifier ))) ;) })) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_564;" return identifier ;) })))
(translation_unit "uint FUN_0004e210(undefined4 param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  bool bVar7;\n  EVP_CIPHER *pEVar8;\n  char **ppcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  BIO *in;\n  ushort **ppuVar13;\n  char *ptr;\n  BIO *pBVar14;\n  ASN1_INTEGER *pAVar15;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar16;\n  byte *pbVar17;\n  int iVar18;\n  ulong uVar19;\n  undefined **ppuVar20;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar21;\n  ulong uVar22;\n  X509_NAME *pXVar23;\n  EVP_PKEY *pEVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  uint uVar27;\n  stack_st_CONF_VALUE *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar28;\n  int set;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 uVar33;\n  char *pcVar34;\n  undefined4 uVar35;\n  stack_st_CONF_VALUE *psVar36;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  int local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  undefined4 local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  int local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  int local_51c;\n  char *local_518;\n  int local_514;\n  int local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  int local_4ec;\n  BIO *local_4d0;\n  int local_4cc;\n  void *local_4c8;\n  char *local_4c4;\n  char *local_4c0;\n  int local_4bc;\n  undefined *local_4b8;\n  undefined *local_4b4;\n  undefined *local_4b0;\n  long local_4ac;\n  ulong local_4a8;\n  long local_4a4;\n  X509V3_CTX local_4a0;\n  stack_st_CONF_VALUE local_484 [5];\n  uchar local_420 [1024];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar32 = 0;\n  bVar31 = false;\n  uStack_14 = 0x4e220;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4d0 = (BIO *)0x0;\n  local_4cc = 0;\n  local_560 = (BIO *)DAT_000c4598;\n  local_4c8 = (void *)0x0;\n  local_4c4 = (char *)0x0;\n  local_4c0 = (char *)0x0;\n  local_4bc = -1;\n  local_4b8 = (undefined *)0x8005;\n  local_4b4 = (undefined *)0x8005;\n  local_4b0 = (undefined *)0x8005;\n  local_4ac = -1;\n  local_4a8 = 0;\n  pEVar8 = EVP_des_ede3_cbc();\n  ppuVar20 = &PTR_DAT_000bb480;\n  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);\n  pcVar34 = "../apps/req.c";\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = 0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = 0;\n  local_50c = (char *)0x0;\n  local_52c = 0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = 0;\n  local_54c = 0;\n  local_558 = 0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = 0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar10 = FUN_00078780();\n  if (iVar10 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar10 = FUN_00079110();\n  if (iVar10 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }\n  pBVar14 = local_4d0;\n  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);\n  bVar29 = bVar31;\n  if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }\n  pcVar11 = (char *)&local_4c4;\n  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);\n  if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }\n  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;\n  if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }\n  iVar10 = FUN_00073330(DAT_000c4a98);\n  if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar11 = pcVar11 + 1;\n  cVar1 = *pcVar11;\n  if (cVar1 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);\n  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;\n  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);\n  if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);\n  if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }\n  *pcVar11 = '\0';\n  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);\n  if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar14;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";\n  pcVar11 = (char *)ppcVar9;\nLAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }\n  if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);\n  ERR_print_errors(DAT_000c458c);\nLAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);\nLAB_0004e57b:\n  NCONF_free(DAT_000c4a98);\n  NCONF_free(DAT_000c4a94);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)local_4d0);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free(local_544);\n  uVar35 = 0x3cc;\n  CRYPTO_free(local_4c8);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  FUN_00074230(local_540,pcVar34,uVar35);\n  if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }\n  if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_564;\n}\n\n" (function_definition "uint FUN_0004e210(undefined4 param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  bool bVar7;\n  EVP_CIPHER *pEVar8;\n  char **ppcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  BIO *in;\n  ushort **ppuVar13;\n  char *ptr;\n  BIO *pBVar14;\n  ASN1_INTEGER *pAVar15;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar16;\n  byte *pbVar17;\n  int iVar18;\n  ulong uVar19;\n  undefined **ppuVar20;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar21;\n  ulong uVar22;\n  X509_NAME *pXVar23;\n  EVP_PKEY *pEVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  uint uVar27;\n  stack_st_CONF_VALUE *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar28;\n  int set;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 uVar33;\n  char *pcVar34;\n  undefined4 uVar35;\n  stack_st_CONF_VALUE *psVar36;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  int local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  undefined4 local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  int local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  int local_51c;\n  char *local_518;\n  int local_514;\n  int local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  int local_4ec;\n  BIO *local_4d0;\n  int local_4cc;\n  void *local_4c8;\n  char *local_4c4;\n  char *local_4c0;\n  int local_4bc;\n  undefined *local_4b8;\n  undefined *local_4b4;\n  undefined *local_4b0;\n  long local_4ac;\n  ulong local_4a8;\n  long local_4a4;\n  X509V3_CTX local_4a0;\n  stack_st_CONF_VALUE local_484 [5];\n  uchar local_420 [1024];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar32 = 0;\n  bVar31 = false;\n  uStack_14 = 0x4e220;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4d0 = (BIO *)0x0;\n  local_4cc = 0;\n  local_560 = (BIO *)DAT_000c4598;\n  local_4c8 = (void *)0x0;\n  local_4c4 = (char *)0x0;\n  local_4c0 = (char *)0x0;\n  local_4bc = -1;\n  local_4b8 = (undefined *)0x8005;\n  local_4b4 = (undefined *)0x8005;\n  local_4b0 = (undefined *)0x8005;\n  local_4ac = -1;\n  local_4a8 = 0;\n  pEVar8 = EVP_des_ede3_cbc();\n  ppuVar20 = &PTR_DAT_000bb480;\n  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);\n  pcVar34 = "../apps/req.c";\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = 0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = 0;\n  local_50c = (char *)0x0;\n  local_52c = 0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = 0;\n  local_54c = 0;\n  local_558 = 0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = 0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar10 = FUN_00078780();\n  if (iVar10 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar10 = FUN_00079110();\n  if (iVar10 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }\n  pBVar14 = local_4d0;\n  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);\n  bVar29 = bVar31;\n  if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }\n  pcVar11 = (char *)&local_4c4;\n  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);\n  if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }\n  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;\n  if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }\n  iVar10 = FUN_00073330(DAT_000c4a98);\n  if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar11 = pcVar11 + 1;\n  cVar1 = *pcVar11;\n  if (cVar1 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);\n  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;\n  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);\n  if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);\n  if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }\n  *pcVar11 = '\0';\n  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);\n  if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar14;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";\n  pcVar11 = (char *)ppcVar9;\nLAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }\n  if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);\n  ERR_print_errors(DAT_000c458c);\nLAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);\nLAB_0004e57b:\n  NCONF_free(DAT_000c4a98);\n  NCONF_free(DAT_000c4a94);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)local_4d0);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free(local_544);\n  uVar35 = 0x3cc;\n  CRYPTO_free(local_4c8);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  FUN_00074230(local_540,pcVar34,uVar35);\n  if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }\n  if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_564;\n}" type_identifier (function_declarator "FUN_0004e210(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  bool bVar7;\n  EVP_CIPHER *pEVar8;\n  char **ppcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  BIO *in;\n  ushort **ppuVar13;\n  char *ptr;\n  BIO *pBVar14;\n  ASN1_INTEGER *pAVar15;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar16;\n  byte *pbVar17;\n  int iVar18;\n  ulong uVar19;\n  undefined **ppuVar20;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar21;\n  ulong uVar22;\n  X509_NAME *pXVar23;\n  EVP_PKEY *pEVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  uint uVar27;\n  stack_st_CONF_VALUE *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar28;\n  int set;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 uVar33;\n  char *pcVar34;\n  undefined4 uVar35;\n  stack_st_CONF_VALUE *psVar36;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  int local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  undefined4 local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  int local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  int local_51c;\n  char *local_518;\n  int local_514;\n  int local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  int local_4ec;\n  BIO *local_4d0;\n  int local_4cc;\n  void *local_4c8;\n  char *local_4c4;\n  char *local_4c0;\n  int local_4bc;\n  undefined *local_4b8;\n  undefined *local_4b4;\n  undefined *local_4b0;\n  long local_4ac;\n  ulong local_4a8;\n  long local_4a4;\n  X509V3_CTX local_4a0;\n  stack_st_CONF_VALUE local_484 [5];\n  uchar local_420 [1024];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar32 = 0;\n  bVar31 = false;\n  uStack_14 = 0x4e220;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4d0 = (BIO *)0x0;\n  local_4cc = 0;\n  local_560 = (BIO *)DAT_000c4598;\n  local_4c8 = (void *)0x0;\n  local_4c4 = (char *)0x0;\n  local_4c0 = (char *)0x0;\n  local_4bc = -1;\n  local_4b8 = (undefined *)0x8005;\n  local_4b4 = (undefined *)0x8005;\n  local_4b0 = (undefined *)0x8005;\n  local_4ac = -1;\n  local_4a8 = 0;\n  pEVar8 = EVP_des_ede3_cbc();\n  ppuVar20 = &PTR_DAT_000bb480;\n  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);\n  pcVar34 = "../apps/req.c";\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = 0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = 0;\n  local_50c = (char *)0x0;\n  local_52c = 0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = 0;\n  local_54c = 0;\n  local_558 = 0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = 0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar10 = FUN_00078780();\n  if (iVar10 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar10 = FUN_00079110();\n  if (iVar10 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }\n  pBVar14 = local_4d0;\n  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);\n  bVar29 = bVar31;\n  if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }\n  pcVar11 = (char *)&local_4c4;\n  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);\n  if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }\n  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;\n  if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }\n  iVar10 = FUN_00073330(DAT_000c4a98);\n  if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar11 = pcVar11 + 1;\n  cVar1 = *pcVar11;\n  if (cVar1 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);\n  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;\n  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);\n  if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);\n  if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }\n  *pcVar11 = '\0';\n  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);\n  if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar14;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";\n  pcVar11 = (char *)ppcVar9;\nLAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }\n  if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);\n  ERR_print_errors(DAT_000c458c);\nLAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);\nLAB_0004e57b:\n  NCONF_free(DAT_000c4a98);\n  NCONF_free(DAT_000c4a94);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)local_4d0);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free(local_544);\n  uVar35 = 0x3cc;\n  CRYPTO_free(local_4c8);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  FUN_00074230(local_540,pcVar34,uVar35);\n  if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }\n  if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_564;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "EVP_CIPHER *pEVar8;" type_identifier (pointer_declarator "*pEVar8" * identifier) ;) (declaration "char **ppcVar9;" primitive_type (pointer_declarator "**ppcVar9" * (pointer_declarator "*ppcVar9" * identifier)) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "BIO *in;" type_identifier (pointer_declarator "*in" * identifier) ;) (declaration "ushort **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "char *ptr;" primitive_type (pointer_declarator "*ptr" * identifier) ;) (declaration "BIO *pBVar14;" type_identifier (pointer_declarator "*pBVar14" * identifier) ;) (declaration "ASN1_INTEGER *pAVar15;" type_identifier (pointer_declarator "*pAVar15" * identifier) ;) (declaration "BIO_METHOD *type;" type_identifier (pointer_declarator "*type" * identifier) ;) (declaration "stack_st_CONF_VALUE *psVar16;" type_identifier (pointer_declarator "*psVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "undefined **ppuVar20;" type_identifier (pointer_declarator "**ppuVar20" * (pointer_declarator "*ppuVar20" * identifier)) ;) (declaration "stack_st_CONF_VALUE *section;" type_identifier (pointer_declarator "*section" * identifier) ;) (declaration "stack_st_CONF_VALUE *psVar21;" type_identifier (pointer_declarator "*psVar21" * identifier) ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "X509_NAME *pXVar23;" type_identifier (pointer_declarator "*pXVar23" * identifier) ;) (declaration "EVP_PKEY *pEVar24;" type_identifier (pointer_declarator "*pEVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "undefined4 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_02;" type_identifier identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "int set;" primitive_type identifier ;) (declaration "X509 *x;" type_identifier (pointer_declarator "*x" * identifier) ;) (declaration "X509_REQ *x_00;" type_identifier (pointer_declarator "*x_00" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar29;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "byte bVar32;" type_identifier identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "char *pcVar34;" primitive_type (pointer_declarator "*pcVar34" * identifier) ;) (declaration "undefined4 uVar35;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE *psVar36;" type_identifier (pointer_declarator "*psVar36" * identifier) ;) (declaration "uint local_598;" type_identifier identifier ;) (declaration "uint local_594;" type_identifier identifier ;) (declaration "int local_588;" primitive_type identifier ;) (declaration "uint local_584;" type_identifier identifier ;) (declaration "uint local_580;" type_identifier identifier ;) (declaration "undefined4 local_57c;" type_identifier identifier ;) (declaration "uint local_578;" type_identifier identifier ;) (declaration "EVP_PKEY *local_570;" type_identifier (pointer_declarator "*local_570" * identifier) ;) (declaration "uint local_56c;" type_identifier identifier ;) (declaration "uint local_564;" type_identifier identifier ;) (declaration "BIO *local_560;" type_identifier (pointer_declarator "*local_560" * identifier) ;) (declaration "int local_55c;" primitive_type identifier ;) (declaration "int local_558;" primitive_type identifier ;) (declaration "ASN1_INTEGER *local_554;" type_identifier (pointer_declarator "*local_554" * identifier) ;) (declaration "BIO *local_550;" type_identifier (pointer_declarator "*local_550" * identifier) ;) (declaration "int local_54c;" primitive_type identifier ;) (declaration "BIO *local_548;" type_identifier (pointer_declarator "*local_548" * identifier) ;) (declaration "ENGINE *local_544;" type_identifier (pointer_declarator "*local_544" * identifier) ;) (declaration "undefined4 local_540;" type_identifier identifier ;) (declaration "uint local_53c;" type_identifier identifier ;) (declaration "char *local_538;" primitive_type (pointer_declarator "*local_538" * identifier) ;) (declaration "char *local_534;" primitive_type (pointer_declarator "*local_534" * identifier) ;) (declaration "int local_530;" primitive_type identifier ;) (declaration "int local_52c;" primitive_type identifier ;) (declaration "char **local_528;" primitive_type (pointer_declarator "**local_528" * (pointer_declarator "*local_528" * identifier)) ;) (declaration "stack_st_CONF_VALUE *local_524;" type_identifier (pointer_declarator "*local_524" * identifier) ;) (declaration "uint local_520;" type_identifier identifier ;) (declaration "int local_51c;" primitive_type identifier ;) (declaration "char *local_518;" primitive_type (pointer_declarator "*local_518" * identifier) ;) (declaration "int local_514;" primitive_type identifier ;) (declaration "int local_510;" primitive_type identifier ;) (declaration "char *local_50c;" primitive_type (pointer_declarator "*local_50c" * identifier) ;) (declaration "EVP_CIPHER *local_500;" type_identifier (pointer_declarator "*local_500" * identifier) ;) (declaration "int local_4ec;" primitive_type identifier ;) (declaration "BIO *local_4d0;" type_identifier (pointer_declarator "*local_4d0" * identifier) ;) (declaration "int local_4cc;" primitive_type identifier ;) (declaration "void *local_4c8;" primitive_type (pointer_declarator "*local_4c8" * identifier) ;) (declaration "char *local_4c4;" primitive_type (pointer_declarator "*local_4c4" * identifier) ;) (declaration "char *local_4c0;" primitive_type (pointer_declarator "*local_4c0" * identifier) ;) (declaration "int local_4bc;" primitive_type identifier ;) (declaration "undefined *local_4b8;" type_identifier (pointer_declarator "*local_4b8" * identifier) ;) (declaration "undefined *local_4b4;" type_identifier (pointer_declarator "*local_4b4" * identifier) ;) (declaration "undefined *local_4b0;" type_identifier (pointer_declarator "*local_4b0" * identifier) ;) (declaration "long local_4ac;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_4a8;" type_identifier identifier ;) (declaration "long local_4a4;" (sized_type_specifier "long" long) identifier ;) (declaration "X509V3_CTX local_4a0;" type_identifier identifier ;) (declaration "stack_st_CONF_VALUE local_484 [5];" type_identifier (array_declarator "local_484 [5]" identifier [ number_literal ]) ;) (declaration "uchar local_420 [1024];" type_identifier (array_declarator "local_420 [1024]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar32 = 0;" (assignment_expression "bVar32 = 0" identifier = number_literal) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "uStack_14 = 0x4e220;" (assignment_expression "uStack_14 = 0x4e220" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_4d0 = (BIO *)0x0;" (assignment_expression "local_4d0 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4cc = 0;" (assignment_expression "local_4cc = 0" identifier = number_literal) ;) (expression_statement "local_560 = (BIO *)DAT_000c4598;" (assignment_expression "local_560 = (BIO *)DAT_000c4598" identifier = (cast_expression "(BIO *)DAT_000c4598" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_4c8 = (void *)0x0;" (assignment_expression "local_4c8 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c4 = (char *)0x0;" (assignment_expression "local_4c4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c0 = (char *)0x0;" (assignment_expression "local_4c0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4bc = -1;" (assignment_expression "local_4bc = -1" identifier = number_literal) ;) (expression_statement "local_4b8 = (undefined *)0x8005;" (assignment_expression "local_4b8 = (undefined *)0x8005" identifier = (cast_expression "(undefined *)0x8005" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4b4 = (undefined *)0x8005;" (assignment_expression "local_4b4 = (undefined *)0x8005" identifier = (cast_expression "(undefined *)0x8005" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4b0 = (undefined *)0x8005;" (assignment_expression "local_4b0 = (undefined *)0x8005" identifier = (cast_expression "(undefined *)0x8005" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4ac = -1;" (assignment_expression "local_4ac = -1" identifier = number_literal) ;) (expression_statement "local_4a8 = 0;" (assignment_expression "local_4a8 = 0" identifier = number_literal) ;) (expression_statement "pEVar8 = EVP_des_ede3_cbc();" (assignment_expression "pEVar8 = EVP_des_ede3_cbc()" identifier = (call_expression "EVP_des_ede3_cbc()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppuVar20 = &PTR_DAT_000bb480;" (assignment_expression "ppuVar20 = &PTR_DAT_000bb480" identifier = (pointer_expression "&PTR_DAT_000bb480" & identifier)) ;) (expression_statement "ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);" (assignment_expression "ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" identifier = (cast_expression "(char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" identifier (argument_list "(param_1,param_2,&PTR_DAT_000bb480)" ( identifier , identifier , (pointer_expression "&PTR_DAT_000bb480" & identifier) ))))) ;) (expression_statement "pcVar34 = "../apps/req.c";" (assignment_expression "pcVar34 = "../apps/req.c"" identifier = (string_literal ""../apps/req.c"" " string_content ")) ;) (expression_statement "local_588 = 0x1001;" (assignment_expression "local_588 = 0x1001" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_56c = 0;" (assignment_expression "local_56c = 0" identifier = number_literal) ;) (expression_statement "local_584 = 0;" (assignment_expression "local_584 = 0" identifier = number_literal) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "local_594 = 0;" (assignment_expression "local_594 = 0" identifier = number_literal) ;) (expression_statement "local_580 = 0;" (assignment_expression "local_580 = 0" identifier = number_literal) ;) (expression_statement "local_578 = 0;" (assignment_expression "local_578 = 0" identifier = number_literal) ;) (expression_statement "local_57c = 0;" (assignment_expression "local_57c = 0" identifier = number_literal) ;) (expression_statement "local_520 = 0;" (assignment_expression "local_520 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "local_530 = 0;" (assignment_expression "local_530 = 0" identifier = number_literal) ;) (expression_statement "local_53c = 0;" (assignment_expression "local_53c = 0" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_518 = (char *)0x0;" (assignment_expression "local_518 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) (expression_statement "local_50c = (char *)0x0;" (assignment_expression "local_50c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_52c = 0;" (assignment_expression "local_52c = 0" identifier = number_literal) ;) (expression_statement "local_528 = (char **)0x0;" (assignment_expression "local_528 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_550 = (BIO *)0x0;" (assignment_expression "local_550 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_510 = 0;" (assignment_expression "local_510 = 0" identifier = number_literal) ;) (expression_statement "local_54c = 0;" (assignment_expression "local_54c = 0" identifier = number_literal) ;) (expression_statement "local_558 = 0;" (assignment_expression "local_558 = 0" identifier = number_literal) ;) (expression_statement "local_55c = 0;" (assignment_expression "local_55c = 0" identifier = number_literal) ;) (expression_statement "local_544 = (ENGINE *)0x0;" (assignment_expression "local_544 = (ENGINE *)0x0" identifier = (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_540 = 0;" (assignment_expression "local_540 = 0" identifier = number_literal) ;) (expression_statement "local_554 = (ASN1_INTEGER *)0x0;" (assignment_expression "local_554 = (ASN1_INTEGER *)0x0" identifier = (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e430:\n  iVar10 = FUN_00078780();" statement_identifier : (expression_statement "iVar10 = FUN_00078780();" (assignment_expression "iVar10 = FUN_00078780()" identifier = (call_expression "FUN_00078780()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar10 != 0) goto LAB_0004e43d;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e43d;" goto statement_identifier ;)) (labeled_statement "LAB_0004e6f0:\n  iVar10 = FUN_00079110();" statement_identifier : (expression_statement "iVar10 = FUN_00079110();" (assignment_expression "iVar10 = FUN_00079110()" identifier = (call_expression "FUN_00079110()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar10 != 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_564 = local_53c ^ 1;" (assignment_expression "local_564 = local_53c ^ 1" identifier = (binary_expression "local_53c ^ 1" identifier ^ number_literal)) ;) (if_statement "if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }" if (parenthesized_expression "((local_530 != 0) && (local_564 != 0))" ( (binary_expression "(local_530 != 0) && (local_564 != 0)" (parenthesized_expression "(local_530 != 0)" ( (binary_expression "local_530 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_564 != 0)" ( (binary_expression "local_564 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }" { (expression_statement "BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");" (call_expression "BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n")" identifier (argument_list "(DAT_000c458c,"Ignoring -days; not generating a certificate\n")" ( identifier , (string_literal ""Ignoring -days; not generating a certificate\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "pBVar14 = local_4d0;" (assignment_expression "pBVar14 = local_4d0" identifier = identifier) ;) (expression_statement "bVar7 = (bool)(local_52c == 0 & (byte)local_53c);" (assignment_expression "bVar7 = (bool)(local_52c == 0 & (byte)local_53c)" identifier = (cast_expression "(bool)(local_52c == 0 & (byte)local_53c)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(local_52c == 0 & (byte)local_53c)" ( (binary_expression "local_52c == 0 & (byte)local_53c" (binary_expression "local_52c == 0" identifier == number_literal) & (cast_expression "(byte)local_53c" ( (type_descriptor "byte" type_identifier) ) identifier)) )))) ;) (expression_statement "bVar29 = bVar31;" (assignment_expression "bVar29 = bVar31" identifier = identifier) ;) (if_statement "if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }" if (parenthesized_expression "(bVar7 != false)" ( (binary_expression "bVar7 != false" identifier != false) )) (compound_statement "{\n    bVar31 = bVar7;\n    bVar29 = true;\n  }" { (expression_statement "bVar31 = bVar7;" (assignment_expression "bVar31 = bVar7" identifier = identifier) ;) (expression_statement "bVar29 = true;" (assignment_expression "bVar29 = true" identifier = true) ;) })) (expression_statement "pcVar11 = (char *)&local_4c4;" (assignment_expression "pcVar11 = (char *)&local_4c4" identifier = (cast_expression "(char *)&local_4c4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_4c4" & identifier))) ;) (expression_statement "iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);" (assignment_expression "iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0)" identifier = (call_expression "FUN_00075b40(local_534,local_548,pcVar11,&local_4c0)" identifier (argument_list "(local_534,local_548,pcVar11,&local_4c0)" ( identifier , identifier , identifier , (pointer_expression "&local_4c0" & identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }" { (expression_statement "pcVar12 = "Error getting passwords\n";" (assignment_expression "pcVar12 = "Error getting passwords\n"" identifier = (string_literal ""Error getting passwords\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) (if_statement "if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }" { (expression_statement "pcVar11 = (char *)local_560;" (assignment_expression "pcVar11 = (char *)local_560" identifier = (cast_expression "(char *)local_560" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);" (call_expression "BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560)" identifier (argument_list "(DAT_000c458c,"Using configuration from %s\n",local_560)" ( identifier , (string_literal ""Using configuration from %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);" (assignment_expression "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560)" identifier = (cast_expression "(CONF *)FUN_00075fc0(local_560)" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fc0(local_560)" identifier (argument_list "(local_560)" ( identifier ))))) ;) (if_statement "if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }" if (parenthesized_expression "(local_550 != (BIO *)0x0)" ( (binary_expression "local_550 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }" { (expression_statement "BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);" (call_expression "BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11)" identifier (argument_list "(DAT_000c458c,"Using additional configuration from command line\n",pcVar11)" ( identifier , (string_literal ""Using additional configuration from command line\n"" " string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_0004e7d1;" goto statement_identifier ;) })) }) (else_clause "else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" else (compound_statement "{\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" { (expression_statement "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);" (assignment_expression "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560)" identifier = (cast_expression "(CONF *)FUN_00075fc0(local_560)" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fc0(local_560)" identifier (argument_list "(local_560)" ( identifier ))))) ;) (if_statement "if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }" if (parenthesized_expression "(local_550 != (BIO *)0x0)" ( (binary_expression "local_550 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }" { (labeled_statement "LAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);" statement_identifier : (expression_statement "DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);" (assignment_expression "DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0)" identifier = (cast_expression "(CONF *)FUN_00073230(local_550,0)" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00073230(local_550,0)" identifier (argument_list "(local_550,0)" ( identifier , number_literal ))))) ;)) })) }))) (if_statement "if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;" if (parenthesized_expression "(((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))" ( (binary_expression "((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0)" (parenthesized_expression "((BIO *)DAT_000c4598 != local_560)" ( (binary_expression "(BIO *)DAT_000c4598 != local_560" (cast_expression "(BIO *)DAT_000c4598" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) && (parenthesized_expression "(iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0)" ( (comma_expression "iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0" (assignment_expression "iVar10 = FUN_000770d0(DAT_000c4a98)" identifier = (call_expression "FUN_000770d0(DAT_000c4a98)" identifier (argument_list "(DAT_000c4a98)" ( identifier )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;)) (if_statement "if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }" if (parenthesized_expression "(DAT_000c4a98 != (CONF *)0x0)" ( (binary_expression "DAT_000c4a98 != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }" { (expression_statement "pcVar11 = "oid_file";" (assignment_expression "pcVar11 = "oid_file"" identifier = (string_literal ""oid_file"" " string_content ")) ;) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file")" identifier (argument_list "(DAT_000c4a98,(char *)0x0,"oid_file")" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal ""oid_file"" " string_content ") )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" else (compound_statement "{\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" { (expression_statement "in = BIO_new_file(pcVar12,"r");" (assignment_expression "in = BIO_new_file(pcVar12,"r")" identifier = (call_expression "BIO_new_file(pcVar12,"r")" identifier (argument_list "(pcVar12,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }" if (parenthesized_expression "(in != (BIO *)0x0)" ( (binary_expression "in != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }" { (expression_statement "OBJ_create_objects(in);" (call_expression "OBJ_create_objects(in)" identifier (argument_list "(in)" ( identifier ))) ;) (expression_statement "BIO_free(in);" (call_expression "BIO_free(in)" identifier (argument_list "(in)" ( identifier ))) ;) })) }))) })) (expression_statement "iVar10 = FUN_00073330(DAT_000c4a98);" (assignment_expression "iVar10 = FUN_00073330(DAT_000c4a98)" identifier = (call_expression "FUN_00073330(DAT_000c4a98)" identifier (argument_list "(DAT_000c4a98)" ( identifier )))) ;) (if_statement "if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }" { (if_statement "if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }" if (parenthesized_expression "(local_4cc == 0)" ( (binary_expression "local_4cc == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }" { (expression_statement "pcVar11 = "default_md";" (assignment_expression "pcVar11 = "default_md"" identifier = (string_literal ""default_md"" " string_content ")) ;) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","default_md")" identifier (argument_list "(DAT_000c4a98,"req","default_md")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""default_md"" " string_content ") )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ERR_clear_error();\n      }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" else (compound_statement "{\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" { (expression_statement "iVar10 = FUN_000782e0(pcVar12,&local_4cc);" (assignment_expression "iVar10 = FUN_000782e0(pcVar12,&local_4cc)" identifier = (call_expression "FUN_000782e0(pcVar12,&local_4cc)" identifier (argument_list "(pcVar12,&local_4cc)" ( identifier , (pointer_expression "&local_4cc" & identifier) )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_510 = local_4cc;" (assignment_expression "local_510 = local_4cc" identifier = identifier) ;) }))) })) (if_statement "if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" if (parenthesized_expression "(local_528 == (char **)0x0)" ( (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }" { (expression_statement "pcVar11 = "x509_extensions";" (assignment_expression "pcVar11 = "x509_extensions"" identifier = (string_literal ""x509_extensions"" " string_content ")) ;) (expression_statement "local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");" (assignment_expression "local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" identifier = (cast_expression "(char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" identifier (argument_list "(DAT_000c4a98,"req","x509_extensions")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""x509_extensions"" " string_content ") ))))) ;) (if_statement "if (local_528 != (char **)0x0) goto LAB_0004e89e;" if (parenthesized_expression "(local_528 != (char **)0x0)" ( (binary_expression "local_528 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0004e89e;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" else (compound_statement "{\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" { (labeled_statement "LAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" statement_identifier : (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (pointer_expression "&local_4a0" & identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" identifier (argument_list "(&local_4a0,DAT_000c4a98)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" identifier (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }" { (expression_statement "pcVar12 = "Error Loading extension section %s\n";" (assignment_expression "pcVar12 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar11 = (char *)local_528;" (assignment_expression "pcVar11 = (char *)local_528" identifier = (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) }))) (if_statement "if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }" if (parenthesized_expression "(DAT_000c4a94 != (CONF *)0x0)" ( (binary_expression "DAT_000c4a94 != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }" { (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (pointer_expression "&local_4a0" & identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a94);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a94)" identifier (argument_list "(&local_4a0,DAT_000c4a94)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" identifier (argument_list "(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (string_literal ""default"" " string_content ") , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }" { (expression_statement "pcVar12 = "Error Loading command line extensions\n";" (assignment_expression "pcVar12 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e52c;" goto statement_identifier ;) })) })) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0))" ( (binary_expression "(local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)" (parenthesized_expression "(local_4c4 == (char *)0x0)" ( (binary_expression "local_4c4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)" ( (comma_expression "local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0" (assignment_expression "local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","input_password")" identifier (argument_list "(DAT_000c4a98,"req","input_password")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""input_password"" " string_content ") )))) , (comma_expression "local_4c4 = local_538,\n       local_538 == (char *)0x0" (assignment_expression "local_4c4 = local_538" identifier = identifier) , (binary_expression "local_538 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0))" ( (binary_expression "(local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)" (parenthesized_expression "(local_4c0 == (char *)0x0)" ( (binary_expression "local_4c0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)" ( (comma_expression "local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0" (assignment_expression "local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","output_password")" identifier (argument_list "(DAT_000c4a98,"req","output_password")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""output_password"" " string_content ") )))) , (comma_expression "local_4c0 = local_534,\n       local_534 == (char *)0x0" (assignment_expression "local_4c0 = local_534" identifier = identifier) , (binary_expression "local_534 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar11 = "string_mask";" (assignment_expression "pcVar11 = "string_mask"" identifier = (string_literal ""string_mask"" " string_content ")) ;) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","string_mask")" identifier (argument_list "(DAT_000c4a98,"req","string_mask")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""string_mask"" " string_content ") ))))) ;) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" if (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" else (compound_statement "{\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" { (expression_statement "iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);" (assignment_expression "iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16)" identifier = (call_expression "ASN1_STRING_set_default_mask_asc((char *)psVar16)" identifier (argument_list "((char *)psVar16)" ( (cast_expression "(char *)psVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }" { (expression_statement "pcVar11 = "Invalid global string mask setting %s\n";" (assignment_expression "pcVar11 = "Invalid global string mask setting %s\n"" identifier = (string_literal ""Invalid global string mask setting %s\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004fba6;" goto statement_identifier ;) })) }))) (if_statement "if (local_588 == 0x1000) goto LAB_0004f5da;" if (parenthesized_expression "(local_588 == 0x1000)" ( (binary_expression "local_588 == 0x1000" identifier == number_literal) )) (goto_statement "goto LAB_0004f5da;" goto statement_identifier ;)) (expression_statement "pcVar11 = "utf8";" (assignment_expression "pcVar11 = "utf8"" identifier = (string_literal ""utf8"" " string_content ")) ;) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8")" identifier = (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","utf8")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","utf8")" identifier (argument_list "(DAT_000c4a98,"req","utf8")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""utf8"" " string_content ") ))))) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "bVar30 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar30 = pbVar17 == (byte *)0x0" identifier = (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4ec = 0x1001;" (assignment_expression "local_4ec = 0x1001" identifier = number_literal) ;) (goto_statement "goto LAB_0004f11f;" goto statement_identifier ;) })) (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar28 = &DAT_0007e7a8;" (assignment_expression "pbVar28 = &DAT_0007e7a8" identifier = (pointer_expression "&DAT_0007e7a8" & identifier)) ;) (goto_statement "goto code_r0x0004f105;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;) (labeled_statement "LAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" statement_identifier : (while_statement "while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" while (parenthesized_expression "(iVar10 != 0x15)" ( (binary_expression "iVar10 != 0x15" identifier != number_literal) )) (compound_statement "{\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" { (if_statement "if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 < 0x16)" ( (binary_expression "iVar10 < 0x16" identifier < number_literal) )) (compound_statement "{\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" if (parenthesized_expression "(iVar10 == 10)" ( (binary_expression "iVar10 == 10" identifier == number_literal) )) (compound_statement "{\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }" { (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppuVar20 = &local_4b0;" (assignment_expression "ppuVar20 = &local_4b0" identifier = (pointer_expression "&local_4b0" & identifier)) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20)" identifier = (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00077fb0(uVar35,0x7be,ppuVar20)" identifier (argument_list "(uVar35,0x7be,ppuVar20)" ( identifier , number_literal , identifier ))))) ;) }) (else_clause "else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" else (if_statement "if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" if (parenthesized_expression "(iVar10 < 0xb)" ( (binary_expression "iVar10 < 0xb" identifier < number_literal) )) (compound_statement "{\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }" { (if_statement "if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar10 == 4)" ( (binary_expression "iVar10 == 4" identifier == number_literal) )) (compound_statement "{\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }" { (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_540 = FUN_00074050(uVar35,0);" (assignment_expression "local_540 = FUN_00074050(uVar35,0)" identifier = (call_expression "FUN_00074050(uVar35,0)" identifier (argument_list "(uVar35,0)" ( identifier , number_literal )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }" if (parenthesized_expression "(4 < iVar10)" ( (binary_expression "4 < iVar10" number_literal < identifier) )) (compound_statement "{\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }" { (if_statement "if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar10 == 7)" ( (binary_expression "iVar10 == 7" identifier == number_literal) )) (compound_statement "{\n            local_56c = 1;\n            goto LAB_0004e430;\n          }" { (expression_statement "local_56c = 1;" (assignment_expression "local_56c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(7 < iVar10)" ( (binary_expression "7 < iVar10" number_literal < identifier) )) (compound_statement "{\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" if (parenthesized_expression "(iVar10 == 8)" ( (binary_expression "iVar10 == 8" identifier == number_literal) )) (compound_statement "{\n              bVar31 = true;\n            }" { (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" identifier = true) ;) }) (else_clause "else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" else (if_statement "if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" if (parenthesized_expression "(iVar10 == 9)" ( (binary_expression "iVar10 == 9" identifier == number_literal) )) (compound_statement "{\n              local_560 = (BIO *)FUN_00078b30();\n            }" { (expression_statement "local_560 = (BIO *)FUN_00078b30();" (assignment_expression "local_560 = (BIO *)FUN_00078b30()" identifier = (cast_expression "(BIO *)FUN_00078b30()" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar10 != 5)" ( (binary_expression "iVar10 != 5" identifier != number_literal) )) (compound_statement "{\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }" if (parenthesized_expression "(iVar10 == 6)" ( (binary_expression "iVar10 == 6" identifier == number_literal) )) (compound_statement "{\n              local_514 = FUN_00078b30();\n            }" { (expression_statement "local_514 = FUN_00078b30();" (assignment_expression "local_514 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) })) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_544 = ENGINE_by_id(pcVar11);" (assignment_expression "local_544 = ENGINE_by_id(pcVar11)" identifier = (call_expression "ENGINE_by_id(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (if_statement "if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;" if (parenthesized_expression "(local_544 != (ENGINE *)0x0)" ( (binary_expression "local_544 != (ENGINE *)0x0" identifier != (cast_expression "(ENGINE *)0x0" ( (type_descriptor "ENGINE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "ppuVar20 = (undefined **)*param_2;" (assignment_expression "ppuVar20 = (undefined **)*param_2" identifier = (cast_expression "(undefined **)*param_2" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "pcVar11 = "Can\'t find keygen engine %s\n";" (assignment_expression "pcVar11 = "Can\'t find keygen engine %s\n"" identifier = (string_literal ""Can\'t find keygen engine %s\n"" " string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11,ppuVar20);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,ppuVar20)" identifier (argument_list "(DAT_000c458c,pcVar11,ppuVar20)" ( identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }" if (parenthesized_expression "(iVar10 == 1)" ( (binary_expression "iVar10 == 1" identifier == number_literal) )) (compound_statement "{\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00079140(&PTR_DAT_000bb480);" (call_expression "FUN_00079140(&PTR_DAT_000bb480)" identifier (argument_list "(&PTR_DAT_000bb480)" ( (pointer_expression "&PTR_DAT_000bb480" & identifier) ))) ;) (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }" if (parenthesized_expression "(iVar10 < 2)" ( (binary_expression "iVar10 < 2" identifier < number_literal) )) (compound_statement "{\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }" { (if_statement "if (iVar10 != -1) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != -1)" ( (binary_expression "iVar10 != -1" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" { (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppuVar20 = &local_4b8;" (assignment_expression "ppuVar20 = &local_4b8" identifier = (pointer_expression "&local_4b8" & identifier)) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" identifier = (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00077fb0(uVar35,2,ppuVar20)" identifier (argument_list "(uVar35,2,ppuVar20)" ( identifier , number_literal , identifier ))))) ;) }) (else_clause "else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" else (compound_statement "{\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" { (if_statement "if (iVar10 != 3) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 3)" ( (binary_expression "iVar10 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppuVar20 = &local_4b4;" (assignment_expression "ppuVar20 = &local_4b4" identifier = (pointer_expression "&local_4b4" & identifier)) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" identifier = (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00077fb0(uVar35,2,ppuVar20)" identifier (argument_list "(uVar35,2,ppuVar20)" ( identifier , number_literal , identifier ))))) ;) }))) }) (else_clause "else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" else (compound_statement "{\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" { (if_statement "if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar10 == 0xf)" ( (binary_expression "iVar10 == 0xf" identifier == number_literal) )) (compound_statement "{\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }" { (expression_statement "local_548 = (BIO *)FUN_00078b30();" (assignment_expression "local_548 = (BIO *)FUN_00078b30()" identifier = (cast_expression "(BIO *)FUN_00078b30()" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar10 < 0x10)" ( (binary_expression "iVar10 < 0x10" identifier < number_literal) )) (compound_statement "{\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }" { (if_statement "if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" if (parenthesized_expression "(iVar10 == 0xc)" ( (binary_expression "iVar10 == 0xc" identifier == number_literal) )) (compound_statement "{\n            local_50c = (char *)FUN_00078b30();\n          }" { (expression_statement "local_50c = (char *)FUN_00078b30();" (assignment_expression "local_50c = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" else (if_statement "if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" if (parenthesized_expression "(iVar10 < 0xc)" ( (binary_expression "iVar10 < 0xc" identifier < number_literal) )) (compound_statement "{\n            local_52c = FUN_00078b30();\n          }" { (expression_statement "local_52c = FUN_00078b30();" (assignment_expression "local_52c = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" else (if_statement "if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" if (parenthesized_expression "(iVar10 == 0xd)" ( (binary_expression "iVar10 == 0xd" identifier == number_literal) )) (compound_statement "{\n            local_518 = (char *)FUN_00078b30();\n          }" { (expression_statement "local_518 = (char *)FUN_00078b30();" (assignment_expression "local_518 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" else (if_statement "if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" if (parenthesized_expression "(iVar10 == 0xe)" ( (binary_expression "iVar10 == 0xe" identifier == number_literal) )) (compound_statement "{\n            local_534 = (char *)FUN_00078b30();\n          }" { (expression_statement "local_534 = (char *)FUN_00078b30();" (assignment_expression "local_534 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) })))))))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" if (parenthesized_expression "(iVar10 == 0x12)" ( (binary_expression "iVar10 == 0x12" identifier == number_literal) )) (compound_statement "{\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }" { (if_statement "if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;" if (parenthesized_expression "((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))" ( (binary_expression "(local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0)" (parenthesized_expression "(local_558 == 0)" ( (binary_expression "local_558 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_558 = OPENSSL_sk_new_null(), local_558 == 0)" ( (comma_expression "local_558 = OPENSSL_sk_new_null(), local_558 == 0" (assignment_expression "local_558 = OPENSSL_sk_new_null()" identifier = (call_expression "OPENSSL_sk_new_null()" identifier (argument_list "()" ( )))) , (binary_expression "local_558 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35)" identifier = (cast_expression "(ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_push(local_558,uVar35)" identifier (argument_list "(local_558,uVar35)" ( identifier , identifier ))))) ;) }) (else_clause "else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" else (compound_statement "{\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" { (if_statement "if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(0x12 < iVar10)" ( (binary_expression "0x12 < iVar10" number_literal < identifier) )) (compound_statement "{\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }" { (if_statement "if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" if (parenthesized_expression "(iVar10 == 0x13)" ( (binary_expression "iVar10 == 0x13" identifier == number_literal) )) (compound_statement "{\n              DAT_000c4a90 = 1;\n            }" { (expression_statement "DAT_000c4a90 = 1;" (assignment_expression "DAT_000c4a90 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" else (if_statement "if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" if (parenthesized_expression "(iVar10 == 0x14)" ( (binary_expression "iVar10 == 0x14" identifier == number_literal) )) (compound_statement "{\n              bVar5 = true;\n            }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }" if (parenthesized_expression "(iVar10 == 0x10)" ( (binary_expression "iVar10 == 0x10" identifier == number_literal) )) (compound_statement "{\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }" { (expression_statement "local_570 = (EVP_PKEY *)FUN_00078b30();" (assignment_expression "local_570 = (EVP_PKEY *)FUN_00078b30()" identifier = (cast_expression "(EVP_PKEY *)FUN_00078b30()" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" identifier = true) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0x11) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 0x11)" ( (binary_expression "iVar10 != 0x11" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (if_statement "if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;" if (parenthesized_expression "((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))" ( (binary_expression "(local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0)" (parenthesized_expression "(local_55c == 0)" ( (binary_expression "local_55c == 0" identifier == number_literal) )) && (parenthesized_expression "(local_55c = OPENSSL_sk_new_null(), local_55c == 0)" ( (comma_expression "local_55c = OPENSSL_sk_new_null(), local_55c == 0" (assignment_expression "local_55c = OPENSSL_sk_new_null()" identifier = (call_expression "OPENSSL_sk_new_null()" identifier (argument_list "()" ( )))) , (binary_expression "local_55c == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35)" identifier = (cast_expression "(ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35)" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_push(local_55c,uVar35)" identifier (argument_list "(local_55c,uVar35)" ( identifier , identifier ))))) ;) }))) }))))) (labeled_statement "joined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;" statement_identifier : (if_statement "if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;" if (parenthesized_expression "(pAVar15 == (ASN1_INTEGER *)0x0)" ( (binary_expression "pAVar15 == (ASN1_INTEGER *)0x0" identifier == (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 == 0x20)" ( (binary_expression "iVar10 == 0x20" identifier == number_literal) )) (compound_statement "{\n      local_53c = 1;\n      goto LAB_0004e430;\n    }" { (expression_statement "local_53c = 1;" (assignment_expression "local_53c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }" if (parenthesized_expression "(0x20 < iVar10)" ( (binary_expression "0x20 < iVar10" number_literal < identifier) )) (compound_statement "{\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }" { (if_statement "if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar10 == 0x25)" ( (binary_expression "iVar10 == 0x25" identifier == number_literal) )) (compound_statement "{\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }" { (expression_statement "local_528 = (char **)FUN_00078b30();" (assignment_expression "local_528 = (char **)FUN_00078b30()" identifier = (cast_expression "(char **)FUN_00078b30()" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(0x25 < iVar10)" ( (binary_expression "0x25 < iVar10" number_literal < identifier) )) (compound_statement "{\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }" { (if_statement "if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }" if (parenthesized_expression "(iVar10 == 0x28)" ( (binary_expression "iVar10 == 0x28" identifier == number_literal) )) (compound_statement "{\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }" { (expression_statement "uVar35 = FUN_000790d0();" (assignment_expression "uVar35 = FUN_000790d0()" identifier = (call_expression "FUN_000790d0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = FUN_000782e0(uVar35,&local_4cc);" (assignment_expression "iVar10 = FUN_000782e0(uVar35,&local_4cc)" identifier = (call_expression "FUN_000782e0(uVar35,&local_4cc)" identifier (argument_list "(uVar35,&local_4cc)" ( identifier , (pointer_expression "&local_4cc" & identifier) )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "local_510 = local_4cc;" (assignment_expression "local_510 = local_4cc" identifier = identifier) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }" if (parenthesized_expression "(0x28 < iVar10)" ( (binary_expression "0x28 < iVar10" number_literal < identifier) )) (compound_statement "{\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }" { (if_statement "if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;" if (parenthesized_expression "((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))" ( (binary_expression "(1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0)" (parenthesized_expression "(1 < iVar10 - 0x5ddU)" ( (binary_expression "1 < iVar10 - 0x5ddU" number_literal < (binary_expression "iVar10 - 0x5ddU" identifier - number_literal)) )) || (parenthesized_expression "(iVar10 = FUN_00072560(iVar10), iVar10 != 0)" ( (comma_expression "iVar10 = FUN_00072560(iVar10), iVar10 != 0" (assignment_expression "iVar10 = FUN_00072560(iVar10)" identifier = (call_expression "FUN_00072560(iVar10)" identifier (argument_list "(iVar10)" ( identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004eb16;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" if (parenthesized_expression "(iVar10 == 0x26)" ( (binary_expression "iVar10 == 0x26" identifier == number_literal) )) (compound_statement "{\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }" { (expression_statement "local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)FUN_00078b30()" identifier = (cast_expression "(stack_st_CONF_VALUE *)FUN_00078b30()" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" else (if_statement "if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" if (parenthesized_expression "(iVar10 == 0x27)" ( (binary_expression "iVar10 == 0x27" identifier == number_literal) )) (compound_statement "{\n          bVar31 = true;\n          bVar4 = true;\n        }" { (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" identifier = true) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar10 == 0x22)" ( (binary_expression "iVar10 == 0x22" identifier == number_literal) )) (compound_statement "{\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }" { (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppuVar20 = (undefined **)0xa;" (assignment_expression "ppuVar20 = (undefined **)0xa" identifier = (cast_expression "(undefined **)0xa" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_530 = strtol(pcVar11,(char **)0x0,10);" (assignment_expression "local_530 = strtol(pcVar11,(char **)0x0,10)" identifier = (call_expression "strtol(pcVar11,(char **)0x0,10)" identifier (argument_list "(pcVar11,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }" if (parenthesized_expression "(iVar10 < 0x22)" ( (binary_expression "iVar10 < 0x22" identifier < number_literal) )) (compound_statement "{\n        local_57c = 1;\n        goto LAB_0004e430;\n      }" { (expression_statement "local_57c = 1;" (assignment_expression "local_57c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }" if (parenthesized_expression "(iVar10 == 0x23)" ( (binary_expression "iVar10 == 0x23" identifier == number_literal) )) (compound_statement "{\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }" { (if_statement "if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }" if (parenthesized_expression "(local_554 != (ASN1_INTEGER *)0x0)" ( (binary_expression "local_554 != (ASN1_INTEGER *)0x0" identifier != (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }" { (expression_statement "pcVar11 = "Serial number supplied twice\n";" (assignment_expression "pcVar11 = "Serial number supplied twice\n"" identifier = (string_literal ""Serial number supplied twice\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004e4a9;" goto statement_identifier ;) })) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);" (assignment_expression "local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11)" identifier = (call_expression "s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11)" identifier (argument_list "((X509V3_EXT_METHOD *)0x0,pcVar11)" ( (cast_expression "(X509V3_EXT_METHOD *)0x0" ( (type_descriptor "X509V3_EXT_METHOD *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "pAVar15 = local_554;" (assignment_expression "pAVar15 = local_554" identifier = identifier) ;) (goto_statement "goto joined_r0x0004ee90;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0x24) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 0x24)" ( (binary_expression "iVar10 != 0x24" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" identifier = (cast_expression "(char *)FUN_00078b30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }" if (parenthesized_expression "(local_54c == 0)" ( (binary_expression "local_54c == 0" identifier == number_literal) )) (compound_statement "{\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }" { (expression_statement "local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);" (assignment_expression "local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0)" identifier = (call_expression "OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0)" identifier (argument_list "(FUN_0004d7c0,FUN_0004d6b0)" ( identifier , identifier )))) ;) (expression_statement "type = BIO_s_mem();" (assignment_expression "type = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_550 = BIO_new(type);" (assignment_expression "local_550 = BIO_new(type)" identifier = (call_expression "BIO_new(type)" identifier (argument_list "(type)" ( identifier )))) ;) (if_statement "if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "((local_54c == 0) || (local_550 == (BIO *)0x0))" ( (binary_expression "(local_54c == 0) || (local_550 == (BIO *)0x0)" (parenthesized_expression "(local_54c == 0)" ( (binary_expression "local_54c == 0" identifier == number_literal) )) || (parenthesized_expression "(local_550 == (BIO *)0x0)" ( (binary_expression "local_550 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) })) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar1 != '\0') goto LAB_0004ea31;" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004ea31;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ea4d;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 == 0x1a)" ( (binary_expression "iVar10 == 0x1a" identifier == number_literal) )) (compound_statement "{\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }" { (expression_statement "local_588 = 0x1000;" (assignment_expression "local_588 = 0x1000" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 < 0x1b)" ( (binary_expression "iVar10 < 0x1b" identifier < number_literal) )) (compound_statement "{\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar10 == 0x17)" ( (binary_expression "iVar10 == 0x17" identifier == number_literal) )) (compound_statement "{\n        bVar3 = true;\n      }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }) (else_clause "else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar10 < 0x17)" ( (binary_expression "iVar10 < 0x17" identifier < number_literal) )) (compound_statement "{\n        local_578 = 1;\n      }" { (expression_statement "local_578 = 1;" (assignment_expression "local_578 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar10 == 0x18)" ( (binary_expression "iVar10 == 0x18" identifier == number_literal) )) (compound_statement "{\n        local_580 = 1;\n      }" { (expression_statement "local_580 = 1;" (assignment_expression "local_580 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" else (if_statement "if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" if (parenthesized_expression "(iVar10 == 0x19)" ( (binary_expression "iVar10 == 0x19" identifier == number_literal) )) (compound_statement "{\n        bVar2 = true;\n      }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })))))))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(iVar10 == 0x1d)" ( (binary_expression "iVar10 == 0x1d" identifier == number_literal) )) (compound_statement "{\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }" { (expression_statement "local_51c = FUN_00078b30();" (assignment_expression "local_51c = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }" if (parenthesized_expression "(0x1d < iVar10)" ( (binary_expression "0x1d < iVar10" number_literal < identifier) )) (compound_statement "{\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }" { (if_statement "if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" if (parenthesized_expression "(iVar10 == 0x1e)" ( (binary_expression "iVar10 == 0x1e" identifier == number_literal) )) (compound_statement "{\n        local_584 = 1;\n      }" { (expression_statement "local_584 = 1;" (assignment_expression "local_584 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" else (if_statement "if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" if (parenthesized_expression "(iVar10 == 0x1f)" ( (binary_expression "iVar10 == 0x1f" identifier == number_literal) )) (compound_statement "{\n        local_594 = 1;\n      }" { (expression_statement "local_594 = 1;" (assignment_expression "local_594 = 1" identifier = number_literal) ;) })))) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (if_statement "if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }" if (parenthesized_expression "(iVar10 == 0x1b)" ( (binary_expression "iVar10 == 0x1b" identifier == number_literal) )) (compound_statement "{\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }" { (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = FUN_00073960(uVar35);" (assignment_expression "iVar10 = FUN_00073960(uVar35)" identifier = (call_expression "FUN_00073960(uVar35)" identifier (argument_list "(uVar35)" ( identifier )))) ;) (if_statement "if (iVar10 != 0) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0x1c) goto LAB_0004e430;" if (parenthesized_expression "(iVar10 != 0x1c)" ( (binary_expression "iVar10 != 0x1c" identifier != number_literal) )) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" identifier = (call_expression "FUN_00078b30()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar10 = FUN_000738d0(&local_4a8,uVar35);" (assignment_expression "iVar10 = FUN_000738d0(&local_4a8,uVar35)" identifier = (call_expression "FUN_000738d0(&local_4a8,uVar35)" identifier (argument_list "(&local_4a8,uVar35)" ( (pointer_expression "&local_4a8" & identifier) , identifier )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "iVar10 = FUN_00078780();" (assignment_expression "iVar10 = FUN_00078780()" identifier = (call_expression "FUN_00078780()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004e6f0;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004e6f0;" goto statement_identifier ;)) }))) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) (labeled_statement "LAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();" statement_identifier : (expression_statement "ppuVar13 = __ctype_b_loc();" (assignment_expression "ppuVar13 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;" if (parenthesized_expression "((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar13 + cVar1 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar13 + cVar1 * 2 + 1)" ( (binary_expression "(int)*ppuVar13 + cVar1 * 2 + 1" (binary_expression "(int)*ppuVar13 + cVar1 * 2" (cast_expression "(int)*ppuVar13" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar13" * identifier)) + (binary_expression "cVar1 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0004ea4d;" goto statement_identifier ;)) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar1 == '\0') goto LAB_0004e51a;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (goto_statement "goto LAB_0004ea31;" goto statement_identifier ;) (labeled_statement "LAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);" statement_identifier : (expression_statement "pcVar12 = strchr(pcVar11,0x3d);" (assignment_expression "pcVar12 = strchr(pcVar11,0x3d)" identifier = (call_expression "strchr(pcVar11,0x3d)" identifier (argument_list "(pcVar11,0x3d)" ( identifier , number_literal )))) ;)) (if_statement "if (pcVar12 == (char *)0x0) goto LAB_0004e51a;" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;)) (expression_statement "ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);" (assignment_expression "ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd)" identifier = (call_expression "CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd)" identifier (argument_list "(pcVar11,"../apps/req.c",0xbd)" ( identifier , (string_literal ""../apps/req.c"" " string_content ") , number_literal )))) ;) (if_statement "if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }" if (parenthesized_expression "(ptr == (char *)0x0)" ( (binary_expression "ptr == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }" { (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004f60c;" goto statement_identifier ;) })) (expression_statement "pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);" (assignment_expression "pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11)" identifier = (binary_expression "ptr + ((int)pcVar12 - (int)pcVar11)" identifier + (parenthesized_expression "((int)pcVar12 - (int)pcVar11)" ( (binary_expression "(int)pcVar12 - (int)pcVar11" (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }" if (parenthesized_expression "(ptr < pcVar11)" ( (binary_expression "ptr < pcVar11" identifier < identifier) )) (compound_statement "{\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }" { (expression_statement "ppuVar13 = __ctype_b_loc();" (assignment_expression "ppuVar13 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (while_statement "while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }" while (parenthesized_expression "((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" ( (binary_expression "(int)*ppuVar13 + pcVar11[-1] * 2 + 1" (binary_expression "(int)*ppuVar13 + pcVar11[-1] * 2" (cast_expression "(int)*ppuVar13" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar13" * identifier)) + (binary_expression "pcVar11[-1] * 2" (subscript_expression "pcVar11[-1]" identifier [ number_literal ]) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }" { (expression_statement "pcVar11 = pcVar11 + -1;" (assignment_expression "pcVar11 = pcVar11 + -1" identifier = (binary_expression "pcVar11 + -1" identifier + number_literal)) ;) (if_statement "if (ptr == pcVar11) goto LAB_0004f4ba;" if (parenthesized_expression "(ptr == pcVar11)" ( (binary_expression "ptr == pcVar11" identifier == identifier) )) (goto_statement "goto LAB_0004f4ba;" goto statement_identifier ;)) })) })) (if_statement "if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }" if (parenthesized_expression "(pcVar11 == ptr)" ( (binary_expression "pcVar11 == ptr" identifier == identifier) )) (compound_statement "{\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }" { (labeled_statement "LAB_0004f4ba:\n    CRYPTO_free(ptr);" statement_identifier : (expression_statement "CRYPTO_free(ptr);" (call_expression "CRYPTO_free(ptr)" identifier (argument_list "(ptr)" ( identifier ))) ;)) (goto_statement "goto LAB_0004e51a;" goto statement_identifier ;) })) (expression_statement "*pcVar11 = '\0';" (assignment_expression "*pcVar11 = '\0'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);" (assignment_expression "pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr)" identifier = (cast_expression "(BIO *)OPENSSL_LH_insert(local_54c,ptr)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_LH_insert(local_54c,ptr)" identifier (argument_list "(local_54c,ptr)" ( identifier , identifier ))))) ;) (if_statement "if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }" if (parenthesized_expression "((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0))" ( (binary_expression "(pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)" (parenthesized_expression "(pBVar14 == (BIO *)0x0)" ( (binary_expression "pBVar14 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)" ( (comma_expression "iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0" (assignment_expression "iVar10 = OPENSSL_LH_error(local_54c)" identifier = (call_expression "OPENSSL_LH_error(local_54c)" identifier (argument_list "(local_54c)" ( identifier )))) , (comma_expression "pBVar14 = (BIO *)ptr, iVar10 == 0" (assignment_expression "pBVar14 = (BIO *)ptr" identifier = (cast_expression "(BIO *)ptr" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "iVar10 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }" { (expression_statement "ppuVar20 = (undefined **)FUN_00078b30();" (assignment_expression "ppuVar20 = (undefined **)FUN_00078b30()" identifier = (cast_expression "(undefined **)FUN_00078b30()" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "FUN_00078b30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);" (assignment_expression "iVar10 = BIO_printf(local_550,"%s\n",ppuVar20)" identifier = (call_expression "BIO_printf(local_550,"%s\n",ppuVar20)" identifier (argument_list "(local_550,"%s\n",ppuVar20)" ( identifier , (string_literal ""%s\n"" " string_content escape_sequence ") , identifier )))) ;) (if_statement "if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004e430;" goto statement_identifier ;) })) (expression_statement "local_560 = pBVar14;" (assignment_expression "local_560 = pBVar14" identifier = identifier) ;) (expression_statement "CRYPTO_free(local_560);" (call_expression "CRYPTO_free(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (labeled_statement "LAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;" statement_identifier : (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (labeled_statement "LAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";" statement_identifier : (expression_statement "pcVar12 = "%s: Use -help for summary.\n";" (assignment_expression "pcVar12 = "%s: Use -help for summary.\n"" identifier = (string_literal ""%s: Use -help for summary.\n"" " string_content escape_sequence ")) ;)) (expression_statement "pcVar11 = (char *)ppcVar9;" (assignment_expression "pcVar11 = (char *)ppcVar9" identifier = (cast_expression "(char *)ppcVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar12,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11)" identifier (argument_list "(DAT_000c458c,pcVar12,pcVar11)" ( identifier , identifier , identifier ))) ;)) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e54e:\n  local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }" { (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar17 < *pbVar28;" (assignment_expression "bVar7 = *pbVar17 < *pbVar28" identifier = (binary_expression "*pbVar17 < *pbVar28" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "bVar30 = *pbVar17 == *pbVar28;" (assignment_expression "bVar30 = *pbVar17 == *pbVar28" identifier = (binary_expression "*pbVar17 == *pbVar28" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar32 * -2" identifier + (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar32 * -2" identifier + (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if (!bVar30) break;" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x0004f105:\n    if (iVar10 == 0) break;" statement_identifier : (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) })) (if_statement "if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }" if (parenthesized_expression "((!bVar7 && !bVar30) == bVar7)" ( (binary_expression "(!bVar7 && !bVar30) == bVar7" (parenthesized_expression "(!bVar7 && !bVar30)" ( (binary_expression "!bVar7 && !bVar30" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }" { (labeled_statement "LAB_0004f5da:\n    local_4ec = 0x1000;" statement_identifier : (expression_statement "local_4ec = 0x1000;" (assignment_expression "local_4ec = 0x1000" identifier = number_literal) ;)) }) (else_clause "else {\n    local_4ec = 0x1001;\n  }" else (compound_statement "{\n    local_4ec = 0x1001;\n  }" { (expression_statement "local_4ec = 0x1001;" (assignment_expression "local_4ec = 0x1001" identifier = number_literal) ;) }))) (labeled_statement "LAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" statement_identifier : (if_statement "if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" if (parenthesized_expression "(local_524 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }" { (expression_statement "pcVar11 = "req_extensions";" (assignment_expression "pcVar11 = "req_extensions"" identifier = (string_literal ""req_extensions"" " string_content ")) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","req_extensions")" identifier (argument_list "(DAT_000c4a98,"req","req_extensions")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""req_extensions"" " string_content ") ))))) ;) (if_statement "if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;" if (parenthesized_expression "(local_524 != (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 != (stack_st_CONF_VALUE *)0x0" identifier != (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f12b;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" else (compound_statement "{\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" { (labeled_statement "LAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" statement_identifier : (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" identifier (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" ( (pointer_expression "&local_4a0" & identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" identifier (argument_list "(&local_4a0,DAT_000c4a98)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" identifier (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (cast_expression "(char *)local_524" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }" { (expression_statement "pcVar11 = "Error Loading request extension section %s\n";" (assignment_expression "pcVar11 = "Error Loading request extension section %s\n"" identifier = (string_literal ""Error Loading request extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "psVar16 = local_524;" (assignment_expression "psVar16 = local_524" identifier = identifier) ;) (labeled_statement "LAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11,psVar16);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,psVar16)" identifier (argument_list "(DAT_000c458c,pcVar11,psVar16)" ( identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_0004e54e;" goto statement_identifier ;) })) })))) (if_statement "if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" if (parenthesized_expression "(local_514 == 0)" ( (binary_expression "local_514 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }" { (labeled_statement "LAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" statement_identifier : (if_statement "if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" if (parenthesized_expression "((local_4d0 == (BIO *)0x0) && (bVar31 != false))" ( (binary_expression "(local_4d0 == (BIO *)0x0) && (bVar31 != false)" (parenthesized_expression "(local_4d0 == (BIO *)0x0)" ( (binary_expression "local_4d0 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar31 != false)" ( (binary_expression "bVar31 != false" identifier != false) ))) )) (compound_statement "{\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }" { (expression_statement "FUN_00072430(DAT_000c4a98,&DAT_00091821);" (call_expression "FUN_00072430(DAT_000c4a98,&DAT_00091821)" identifier (argument_list "(DAT_000c4a98,&DAT_00091821)" ( identifier , (pointer_expression "&DAT_00091821" & identifier) ))) ;) (expression_statement "iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);" (assignment_expression "iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac)" identifier (argument_list "(DAT_000c4a98,"req","default_bits",&local_4ac)" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""default_bits"" " string_content ") , (pointer_expression "&local_4ac" & identifier) )))) ;) (if_statement "if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }" { (expression_statement "local_4ac = 0x800;" (assignment_expression "local_4ac = 0x800" identifier = number_literal) ;) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }" { (labeled_statement "LAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" (assignment_expression "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" identifier = (cast_expression "(EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004d840(&local_4c8,local_544)" identifier (argument_list "(&local_4c8,local_544)" ( (pointer_expression "&local_4c8" & identifier) , identifier ))))) ;)) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0004f2bc;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" (assignment_expression "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" identifier = (cast_expression "(EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004d840(&local_4c8,local_544)" identifier (argument_list "(&local_4c8,local_544)" ( (pointer_expression "&local_4c8" & identifier) , identifier ))))) ;)) (if_statement "if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;" if (parenthesized_expression "(local_570 != (EVP_PKEY *)0x0)" ( (binary_expression "local_570 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f275;" goto statement_identifier ;)) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000501da:\n        x = (X509 *)0x0;" statement_identifier : (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" else (compound_statement "{\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" { (if_statement "if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;" if (parenthesized_expression "(local_570 != (EVP_PKEY *)0x0)" ( (binary_expression "local_570 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f245;" goto statement_identifier ;)) (labeled_statement "LAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" statement_identifier : (if_statement "if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" if (parenthesized_expression "(local_4ac < 0x200)" ( (binary_expression "local_4ac < 0x200" identifier < number_literal) )) (compound_statement "{\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }" { (if_statement "if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;" if (parenthesized_expression "((local_4bc != 0x74) && (local_4bc != 6))" ( (binary_expression "(local_4bc != 0x74) && (local_4bc != 6)" (parenthesized_expression "(local_4bc != 0x74)" ( (binary_expression "local_4bc != 0x74" identifier != number_literal) )) && (parenthesized_expression "(local_4bc != 6)" ( (binary_expression "local_4bc != 6" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004f2b0;" goto statement_identifier ;)) (expression_statement "BIO_printf(DAT_000c458c,"private key length is too short,\n");" (call_expression "BIO_printf(DAT_000c458c,"private key length is too short,\n")" identifier (argument_list "(DAT_000c458c,"private key length is too short,\n")" ( identifier , (string_literal ""private key length is too short,\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac)" identifier (argument_list "(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac)" ( identifier , (string_literal ""it needs to be at least %d bits, not %ld\n"" " string_content escape_sequence ") , number_literal , identifier ))) ;) }) (else_clause "else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" else (compound_statement "{\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" { (if_statement "if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }" if (parenthesized_expression "((0x4000 < local_4ac) && (local_4bc == 6))" ( (binary_expression "(0x4000 < local_4ac) && (local_4bc == 6)" (parenthesized_expression "(0x4000 < local_4ac)" ( (binary_expression "0x4000 < local_4ac" number_literal < identifier) )) && (parenthesized_expression "(local_4bc == 6)" ( (binary_expression "local_4bc == 6" identifier == number_literal) ))) )) (compound_statement "{\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }" { (expression_statement "pcVar11 = (char *)0x4000;" (assignment_expression "pcVar11 = (char *)0x4000" identifier = (cast_expression "(char *)0x4000" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac)" identifier (argument_list "(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac)" ( identifier , (string_literal ""Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal , identifier ))) ;) })) (if_statement "if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }" if (parenthesized_expression "((local_4bc == 0x74) && (10000 < local_4ac))" ( (binary_expression "(local_4bc == 0x74) && (10000 < local_4ac)" (parenthesized_expression "(local_4bc == 0x74)" ( (binary_expression "local_4bc == 0x74" identifier == number_literal) )) && (parenthesized_expression "(10000 < local_4ac)" ( (binary_expression "10000 < local_4ac" number_literal < identifier) ))) )) (compound_statement "{\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }" { (expression_statement "pcVar11 = (char *)0x2710;" (assignment_expression "pcVar11 = (char *)0x2710" identifier = (cast_expression "(char *)0x2710" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac)" identifier (argument_list "(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac)" ( identifier , (string_literal ""Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal , identifier ))) ;) })) (labeled_statement "LAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;" statement_identifier : (if_statement "if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000500d7;" goto statement_identifier ;))) (labeled_statement "LAB_0004f2bc:\n          iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (if_statement "if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }" if (parenthesized_expression "(local_55c != 0)" ( (binary_expression "local_55c != 0" identifier != number_literal) )) (compound_statement "{\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }" { (for_statement "for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }" for ( ; (comma_expression "iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(local_55c)" identifier = (call_expression "OPENSSL_sk_num(local_55c)" identifier (argument_list "(local_55c)" ( identifier )))) , (binary_expression "iVar10 < iVar18" identifier < identifier)) ; (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }" { (expression_statement "uVar35 = OPENSSL_sk_value(local_55c,iVar10);" (assignment_expression "uVar35 = OPENSSL_sk_value(local_55c,iVar10)" identifier = (call_expression "OPENSSL_sk_value(local_55c,iVar10)" identifier (argument_list "(local_55c,iVar10)" ( identifier , identifier )))) ;) (expression_statement "iVar18 = FUN_00075300(local_570,uVar35);" (assignment_expression "iVar18 = FUN_00075300(local_570,uVar35)" identifier = (call_expression "FUN_00075300(local_570,uVar35)" identifier (argument_list "(local_570,uVar35)" ( identifier , identifier )))) ;) (if_statement "if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }" if (parenthesized_expression "(iVar18 < 1)" ( (binary_expression "iVar18 < 1" identifier < number_literal) )) (compound_statement "{\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }" { (expression_statement "BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);" (call_expression "BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35)" identifier (argument_list "(DAT_000c458c,"parameter error \"%s\"\n",uVar35)" ( identifier , (string_literal ""parameter error \"%s\"\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier ))) ;) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (goto_statement "goto LAB_0004ff7c;" goto statement_identifier ;) })) })) })) (if_statement "if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" if (parenthesized_expression "(local_4bc == 0x198)" ( (binary_expression "local_4bc == 0x198" identifier == number_literal) )) (compound_statement "{\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }" { (expression_statement "BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);" (call_expression "BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11)" identifier (argument_list "(DAT_000c458c,"Generating an EC private key\n",pcVar11)" ( identifier , (string_literal ""Generating an EC private key\n"" " string_content escape_sequence ") , identifier ))) ;) }) (else_clause "else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" else (compound_statement "{\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" { (expression_statement "BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);" (call_expression "BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8)" identifier (argument_list "(DAT_000c458c,"Generating a %s private key\n",local_4c8)" ( identifier , (string_literal ""Generating a %s private key\n"" " string_content escape_sequence ") , identifier ))) ;) }))) (expression_statement "EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);" (call_expression "EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,FUN_0004d710)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);" (call_expression "EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,DAT_000c458c)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);" (assignment_expression "iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" identifier = (call_expression "EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" identifier (argument_list "((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(EVP_PKEY **)&local_4d0" ( (type_descriptor "EVP_PKEY **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_4d0" & identifier)) )))) ;) (if_statement "if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }" { (expression_statement "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);" (call_expression "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570)" identifier (argument_list "((EVP_PKEY_CTX *)local_570)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" if (parenthesized_expression "(local_518 == (char *)0x0)" ( (binary_expression "local_518 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }" { (expression_statement "pcVar11 = "default_keyfile";" (assignment_expression "pcVar11 = "default_keyfile"" identifier = (string_literal ""default_keyfile"" " string_content ")) ;) (expression_statement "local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");" (assignment_expression "local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","default_keyfile")" identifier (argument_list "(DAT_000c4a98,"req","default_keyfile")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""default_keyfile"" " string_content ") )))) ;) (if_statement "if (local_518 != (char *)0x0) goto LAB_0004f392;" if (parenthesized_expression "(local_518 != (char *)0x0)" ( (binary_expression "local_518 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f392;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar12 = "writing new private key to stdout\n";" (assignment_expression "pcVar12 = "writing new private key to stdout\n"" identifier = (string_literal ""writing new private key to stdout\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" else (compound_statement "{\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" { (labeled_statement "LAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";" statement_identifier : (expression_statement "pcVar12 = "writing new private key to \'%s\'\n";" (assignment_expression "pcVar12 = "writing new private key to \'%s\'\n"" identifier = (string_literal ""writing new private key to \'%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ")) ;)) (expression_statement "pcVar11 = local_518;" (assignment_expression "pcVar11 = local_518" identifier = identifier) ;) }))) (expression_statement "BIO_printf(DAT_000c458c,pcVar12,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11)" identifier (argument_list "(DAT_000c458c,pcVar12,pcVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);" (assignment_expression "local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" identifier = (cast_expression "(BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" identifier (argument_list "(local_518,local_4b4,pBVar14 == (BIO *)0x0)" ( identifier , identifier , (binary_expression "pBVar14 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (if_statement "if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }" if (parenthesized_expression "(local_560 == (BIO *)0x0)" ( (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" identifier = (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" identifier (argument_list "(DAT_000c4a98,"req","encrypt_rsa_key")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""encrypt_rsa_key"" " string_content ") ))))) ;) (expression_statement "bVar31 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar31 = pbVar17 == (byte *)0x0" identifier = (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" if (parenthesized_expression "(bVar31)" ( identifier )) (compound_statement "{\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" identifier = (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" identifier (argument_list "(DAT_000c4a98,"req","encrypt_key")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""encrypt_key"" " string_content ") ))))) ;) (expression_statement "bVar31 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar31 = pbVar17 == (byte *)0x0" identifier = (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar31) goto LAB_0004f40c;" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (goto_statement "goto LAB_0004f40c;" goto statement_identifier ;)) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_500 = pEVar8;" (assignment_expression "local_500 = pEVar8" identifier = identifier) ;) }) (else_clause "else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" else (compound_statement "{\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" { (labeled_statement "LAB_0004f40c:\n              bVar29 = false;" statement_identifier : (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;)) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "pbVar28 = &DAT_0007e9a6;" (assignment_expression "pbVar28 = &DAT_0007e9a6" identifier = (pointer_expression "&DAT_0007e9a6" & identifier)) ;) (do_statement "do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);" do (compound_statement "{\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar17 < *pbVar28;" (assignment_expression "bVar29 = *pbVar17 < *pbVar28" identifier = (binary_expression "*pbVar17 < *pbVar28" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "bVar31 = *pbVar17 == *pbVar28;" (assignment_expression "bVar31 = *pbVar17 == *pbVar28" identifier = (binary_expression "*pbVar17 == *pbVar28" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar32 * -2" identifier + (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar32 * -2" identifier + (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (expression_statement "local_500 = (EVP_CIPHER *)0x0;" (assignment_expression "local_500 = (EVP_CIPHER *)0x0" identifier = (cast_expression "(EVP_CIPHER *)0x0" ( (type_descriptor "EVP_CIPHER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }" if (parenthesized_expression "((!bVar29 && !bVar31) != bVar29)" ( (binary_expression "(!bVar29 && !bVar31) != bVar29" (parenthesized_expression "(!bVar29 && !bVar31)" ( (binary_expression "!bVar29 && !bVar31" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) != identifier) )) (compound_statement "{\n                local_500 = pEVar8;\n              }" { (expression_statement "local_500 = pEVar8;" (assignment_expression "local_500 = pEVar8" identifier = identifier) ;) })) }))) (expression_statement "pEVar8 = (EVP_CIPHER *)0x0;" (assignment_expression "pEVar8 = (EVP_CIPHER *)0x0" identifier = (cast_expression "(EVP_CIPHER *)0x0" ( (type_descriptor "EVP_CIPHER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (!bVar3) {\n              pEVar8 = local_500;\n            }" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (compound_statement "{\n              pEVar8 = local_500;\n            }" { (expression_statement "pEVar8 = local_500;" (assignment_expression "pEVar8 = local_500" identifier = identifier) ;) })) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (while_statement "while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }" while (parenthesized_expression "(iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0)" ( (comma_expression "iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0" (assignment_expression "iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" identifier = (call_expression "PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" identifier (argument_list "(local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" ( identifier , (cast_expression "(EVP_PKEY *)local_4d0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) )) (compound_statement "{\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }" { (expression_statement "uVar19 = ERR_peek_error();" (assignment_expression "uVar19 = ERR_peek_error()" identifier = (call_expression "ERR_peek_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }" if (parenthesized_expression "(((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3))" ( (binary_expression "((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)" (parenthesized_expression "((uVar19 & 0xfff) != 0x6d)" ( (binary_expression "(uVar19 & 0xfff) != 0x6d" (parenthesized_expression "(uVar19 & 0xfff)" ( (binary_expression "uVar19 & 0xfff" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) ))) )) (compound_statement "{\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }" { (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "BIO_free(local_560);" (call_expression "BIO_free(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"-----\n");" (call_expression "BIO_printf(DAT_000c458c,"-----\n")" identifier (argument_list "(DAT_000c458c,"-----\n")" ( identifier , (string_literal ""-----\n"" " string_content escape_sequence ") ))) ;) (goto_statement "goto LAB_0004f6c0;" goto statement_identifier ;) })) (expression_statement "BIO_puts(DAT_000c458c,"Error Generating Key\n");" (call_expression "BIO_puts(DAT_000c458c,"Error Generating Key\n")" identifier (argument_list "(DAT_000c458c,"Error Generating Key\n")" ( identifier , (string_literal ""Error Generating Key\n"" " string_content escape_sequence ") ))) ;) })))) (labeled_statement "LAB_0004ff7c:\n        local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" else (compound_statement "{\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" { (if_statement "if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }" if (parenthesized_expression "(bVar29)" ( identifier )) (compound_statement "{\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }" { (labeled_statement "LAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" statement_identifier : (if_statement "if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "(local_4d0 == (BIO *)0x0)" ( (binary_expression "local_4d0 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" { (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000505b7:\n          x = (X509 *)0x0;" statement_identifier : (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "BIO_printf(DAT_000c458c,"you need to specify a private key\n");" (call_expression "BIO_printf(DAT_000c458c,"you need to specify a private key\n")" identifier (argument_list "(DAT_000c458c,"you need to specify a private key\n")" ( identifier , (string_literal ""you need to specify a private key\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) }))) (expression_statement "x_00 = X509_REQ_new();" (assignment_expression "x_00 = X509_REQ_new()" identifier = (call_expression "X509_REQ_new()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar14 = local_4d0;" (assignment_expression "pBVar14 = local_4d0" identifier = identifier) ;) (if_statement "if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }" if (parenthesized_expression "(x_00 == (X509_REQ *)0x0)" ( (binary_expression "x_00 == (X509_REQ *)0x0" identifier == (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000501da;" goto statement_identifier ;) })) (expression_statement "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");" (assignment_expression "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","prompt")" identifier (argument_list "(DAT_000c4a98,"req","prompt")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""prompt"" " string_content ") )))) ;) (if_statement "if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" if (parenthesized_expression "(pcVar11 == (char *)0x0)" ( (binary_expression "pcVar11 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ERR_clear_error();\n          bVar31 = false;\n        }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) }) (else_clause "else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" else (compound_statement "{\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" { (expression_statement "iVar10 = strcmp(pcVar11,"no");" (assignment_expression "iVar10 = strcmp(pcVar11,"no")" identifier = (call_expression "strcmp(pcVar11,"no")" identifier (argument_list "(pcVar11,"no")" ( identifier , (string_literal ""no"" " string_content ") )))) ;) (expression_statement "bVar31 = iVar10 == 0;" (assignment_expression "bVar31 = iVar10 == 0" identifier = (binary_expression "iVar10 == 0" identifier == number_literal)) ;) }))) (expression_statement "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");" (assignment_expression "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name")" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,"req","distinguished_name")" identifier (argument_list "(DAT_000c4a98,"req","distinguished_name")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""distinguished_name"" " string_content ") )))) ;) (if_statement "if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }" if (parenthesized_expression "((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "(stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0" (cast_expression "(stack_st_CONF_VALUE *)pcVar11" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }" { (expression_statement "pcVar12 = "unable to find \'%s\' in config\n";" (assignment_expression "pcVar12 = "unable to find \'%s\' in config\n"" identifier = (string_literal ""unable to find \'%s\' in config\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "pcVar11 = "distinguished_name";" (assignment_expression "pcVar11 = "distinguished_name"" identifier = (string_literal ""distinguished_name"" " string_content ")) ;) (expression_statement "psVar16 = extraout_ECX;" (assignment_expression "psVar16 = extraout_ECX" identifier = identifier) ;) (labeled_statement "LAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);" statement_identifier : (expression_statement "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);" (assignment_expression "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" identifier = (cast_expression "(undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" identifier (argument_list "(DAT_000c458c,pcVar12,pcVar11,psVar16)" ( identifier , identifier , identifier , identifier ))))) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);" (assignment_expression "psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11)" identifier = (call_expression "NCONF_get_section(DAT_000c4a98,pcVar11)" identifier (argument_list "(DAT_000c4a98,pcVar11)" ( identifier , identifier )))) ;) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }" if (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }" { (expression_statement "pcVar12 = "unable to get \'%s\' section\n";" (assignment_expression "pcVar12 = "unable to get \'%s\' section\n"" identifier = (string_literal ""unable to get \'%s\' section\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "psVar16 = extraout_EDX;" (assignment_expression "psVar16 = extraout_EDX" identifier = identifier) ;) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) (expression_statement "section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");" (assignment_expression "section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes")" identifier = (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes")" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "NCONF_get_string(DAT_000c4a98,"req","attributes")" identifier (argument_list "(DAT_000c4a98,"req","attributes")" ( identifier , (string_literal ""req"" " string_content ") , (string_literal ""attributes"" " string_content ") ))))) ;) (if_statement "if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" if (parenthesized_expression "(section == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "section == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }" { (expression_statement "psVar21 = section;" (assignment_expression "psVar21 = section" identifier = identifier) ;) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" else (compound_statement "{\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" { (expression_statement "psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);" (assignment_expression "psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section)" identifier = (call_expression "NCONF_get_section(DAT_000c4a98,(char *)section)" identifier (argument_list "(DAT_000c4a98,(char *)section)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_548 = (BIO *)psVar21;" (assignment_expression "local_548 = (BIO *)psVar21" identifier = (cast_expression "(BIO *)psVar21" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }" if (parenthesized_expression "(psVar21 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar21 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }" { (expression_statement "pcVar12 = "unable to get \'%s\' section\n";" (assignment_expression "pcVar12 = "unable to get \'%s\' section\n"" identifier = (string_literal ""unable to get \'%s\' section\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = (char *)section;" (assignment_expression "pcVar11 = (char *)section" identifier = (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) }))) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "psVar36 = psVar21;" (assignment_expression "psVar36 = psVar21" identifier = identifier) ;) (expression_statement "iVar10 = X509_REQ_set_version(x_00,0);" (assignment_expression "iVar10 = X509_REQ_set_version(x_00,0)" identifier = (call_expression "X509_REQ_set_version(x_00,0)" identifier (argument_list "(x_00,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }" { (labeled_statement "LAB_0004f80b:\n          puVar26 = &DAT_000c458c;" statement_identifier : (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" identifier = (pointer_expression "&DAT_000c458c" & identifier)) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (if_statement "if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }" if (parenthesized_expression "(local_51c == 0)" ( (binary_expression "local_51c == 0" identifier == number_literal) )) (compound_statement "{\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }" { (if_statement "if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" if (parenthesized_expression "(bVar31)" ( identifier )) (compound_statement "{\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }" { (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" identifier (argument_list "(x_00,uVar35,psVar21,psVar36)" ( identifier , identifier , identifier , identifier ))))) ;) (for_statement "for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }" for ( (assignment_expression "iVar10 = 0" identifier = number_literal) ; (comma_expression "iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(psVar16)" identifier = (call_expression "OPENSSL_sk_num(psVar16)" identifier (argument_list "(psVar16)" ( identifier )))) , (binary_expression "iVar10 < iVar18" identifier < identifier)) ; (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }" { (expression_statement "iVar18 = OPENSSL_sk_value(psVar16,iVar10);" (assignment_expression "iVar18 = OPENSSL_sk_value(psVar16,iVar10)" identifier = (call_expression "OPENSSL_sk_value(psVar16,iVar10)" identifier (argument_list "(psVar16,iVar10)" ( identifier , identifier )))) ;) (expression_statement "pbVar17 = *(byte **)(iVar18 + 4);" (assignment_expression "pbVar17 = *(byte **)(iVar18 + 4)" identifier = (pointer_expression "*(byte **)(iVar18 + 4)" * (cast_expression "(byte **)(iVar18 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "bVar32 = *pbVar17;" (assignment_expression "bVar32 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar28 = pbVar17;" (assignment_expression "pbVar28 = pbVar17" identifier = identifier) ;) (if_statement "if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" if (parenthesized_expression "(bVar32 == 0)" ( (binary_expression "bVar32 == 0" identifier == number_literal) )) (compound_statement "{\n                set = 0;\n              }" { (expression_statement "set = 0;" (assignment_expression "set = 0" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" else (compound_statement "{\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" { (do_statement "do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);" do (compound_statement "{\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                }" { (if_statement "if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }" if (parenthesized_expression "(((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a))" ( (binary_expression "((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)" (parenthesized_expression "((bVar32 & 0xfd) == 0x2c)" ( (binary_expression "(bVar32 & 0xfd) == 0x2c" (parenthesized_expression "(bVar32 & 0xfd)" ( (binary_expression "bVar32 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar32 == 0x3a)" ( (binary_expression "bVar32 == 0x3a" identifier == number_literal) ))) )) (compound_statement "{\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }" { (if_statement "if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }" if (parenthesized_expression "(*(byte *)((int)pbVar28 + 1) != 0)" ( (binary_expression "*(byte *)((int)pbVar28 + 1) != 0" (pointer_expression "*(byte *)((int)pbVar28 + 1)" * (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }" { (expression_statement "pbVar17 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar17 = (byte *)((int)pbVar28 + 1)" identifier = (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar28 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar28 = (byte *)((int)pbVar28 + 1)" identifier = (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar32 = *pbVar28;" (assignment_expression "bVar32 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) }) while (parenthesized_expression "(bVar32 != 0)" ( (binary_expression "bVar32 != 0" identifier != number_literal) )) ;) (expression_statement "set = 0;" (assignment_expression "set = 0" identifier = number_literal) ;) (if_statement "if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }" if (parenthesized_expression "(*pbVar17 == 0x2b)" ( (binary_expression "*pbVar17 == 0x2b" (pointer_expression "*pbVar17" * identifier) == number_literal) )) (compound_statement "{\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "set = -1;" (assignment_expression "set = -1" identifier = number_literal) ;) })) }))) (expression_statement "iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);" (assignment_expression "iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" identifier = (call_expression "X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" identifier (argument_list "(pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" ( identifier , (cast_expression "(char *)pbVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "*(uchar **)(iVar18 + 8)" * (cast_expression "(uchar **)(iVar18 + 8)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar18 == 0) goto LAB_0004f80b;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) })) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" identifier = (cast_expression "(stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_entry_count(pXVar23)" identifier (argument_list "(pXVar23)" ( identifier ))))) ;) (if_statement "if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }" if (parenthesized_expression "(psVar16 != (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar16 != (stack_st_CONF_VALUE *)0x0" identifier != (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }" { (if_statement "if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (compound_statement "{\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }" { (for_statement "for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }" for ( (assignment_expression "iVar10 = 0" identifier = number_literal) ; (comma_expression "iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) , (comma_expression "pcVar11 = (char *)local_548,\n                    iVar10 < iVar18" (assignment_expression "pcVar11 = (char *)local_548" identifier = (cast_expression "(char *)local_548" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "iVar10 < iVar18" identifier < identifier))) ; (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }" { (expression_statement "iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);" (assignment_expression "iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18)" identifier = (call_expression "OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18)" identifier (argument_list "(local_548,iVar10,iVar18,iVar18)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);" (assignment_expression "iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" identifier = (call_expression "X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" identifier (argument_list "(x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" ( identifier , (pointer_expression "*(char **)(iVar18 + 4)" * (cast_expression "(char **)(iVar18 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , identifier , (pointer_expression "*(uchar **)(iVar18 + 8)" * (cast_expression "(uchar **)(iVar18 + 8)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar18 == 0) goto LAB_0004f80b;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) })) (labeled_statement "LAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" statement_identifier : (expression_statement "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier (argument_list "(x_00,(EVP_PKEY *)pBVar14)" ( identifier , (cast_expression "(EVP_PKEY *)pBVar14" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar10 != 0) goto LAB_0004fbe2;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fbe2;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" else (compound_statement "{\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" { (labeled_statement "LAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" statement_identifier : (expression_statement "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier (argument_list "(x_00,(EVP_PKEY *)pBVar14)" ( identifier , (cast_expression "(EVP_PKEY *)pBVar14" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }" { (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004f99b;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;) })) (labeled_statement "LAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";" statement_identifier : (expression_statement "pcVar12 = "error, no objects specified in config file\n";" (assignment_expression "pcVar12 = "error, no objects specified in config file\n"" identifier = (string_literal ""error, no objects specified in config file\n"" " string_content escape_sequence ")) ;)) (expression_statement "pcVar11 = (char *)psVar16;" (assignment_expression "pcVar11 = (char *)psVar16" identifier = (cast_expression "(char *)psVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" else (compound_statement "{\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" { (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" identifier (argument_list "(x_00,uVar35,psVar21,psVar36)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }" if (parenthesized_expression "(DAT_000c4a90 == 0)" ( (binary_expression "DAT_000c4a90 == 0" identifier == number_literal) )) (compound_statement "{\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }" { (expression_statement "BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);" (call_expression "BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23)" identifier (argument_list "(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23)" ( identifier , (string_literal ""You are about to be asked to enter information that will be incorporated\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"into your certificate request.\n");" (call_expression "BIO_printf(DAT_000c458c,"into your certificate request.\n")" identifier (argument_list "(DAT_000c458c,"into your certificate request.\n")" ( identifier , (string_literal ""into your certificate request.\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );" (call_expression "BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        )" identifier (argument_list "(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        )" ( identifier , (string_literal ""What you are about to enter is what is called a Distinguished Name or a DN.\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;" (call_expression "BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")" identifier (argument_list "(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")" ( identifier , (string_literal ""There are quite a few fields but you can leave some blank\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");" (call_expression "BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n")" identifier (argument_list "(DAT_000c458c,"For some fields there will be a default value,\n")" ( identifier , (string_literal ""For some fields there will be a default value,\n"" " string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");" (call_expression "BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n")" identifier (argument_list "(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n")" ( identifier , (string_literal ""If you enter \'.\', the field will be left blank.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"-----\n");" (call_expression "BIO_printf(DAT_000c458c,"-----\n")" identifier (argument_list "(DAT_000c458c,"-----\n")" ( identifier , (string_literal ""-----\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "iVar10 = OPENSSL_sk_num(psVar16);" (assignment_expression "iVar10 = OPENSSL_sk_num(psVar16)" identifier = (call_expression "OPENSSL_sk_num(psVar16)" identifier (argument_list "(psVar16)" ( identifier )))) ;) (expression_statement "local_52c = -1;" (assignment_expression "local_52c = -1" identifier = number_literal) ;) (if_statement "if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }" { (labeled_statement "LAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);" statement_identifier : (do_statement "do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);" do (compound_statement "{\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              }" { (do_statement "do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);" do (compound_statement "{\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                }" { (do_statement "do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));" do (compound_statement "{\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  }" { (expression_statement "local_52c = local_52c + 1;" (assignment_expression "local_52c = local_52c + 1" identifier = (binary_expression "local_52c + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = OPENSSL_sk_num(psVar16);" (assignment_expression "iVar10 = OPENSSL_sk_num(psVar16)" identifier = (call_expression "OPENSSL_sk_num(psVar16)" identifier (argument_list "(psVar16)" ( identifier )))) ;) (if_statement "if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }" if (parenthesized_expression "(iVar10 <= local_52c)" ( (binary_expression "iVar10 <= local_52c" identifier <= identifier) )) (compound_statement "{\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }" { (expression_statement "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" identifier = (cast_expression "(stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_entry_count(pXVar23)" identifier (argument_list "(pXVar23)" ( identifier ))))) ;) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;" if (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000510a8;" goto statement_identifier ;)) (if_statement "if (local_53c != 0) goto LAB_00051084;" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00051084;" goto statement_identifier ;)) (if_statement "if (local_548 == (BIO *)0x0) goto LAB_00050951;" if (parenthesized_expression "(local_548 == (BIO *)0x0)" ( (binary_expression "local_548 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00050951;" goto statement_identifier ;)) (expression_statement "uVar33 = OPENSSL_sk_num(local_548);" (assignment_expression "uVar33 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) ;) (expression_statement "uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);" (assignment_expression "uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)uVar33 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }" if (parenthesized_expression "((0 < (int)uVar33) && (DAT_000c4a90 == 0))" ( (binary_expression "(0 < (int)uVar33) && (DAT_000c4a90 == 0)" (parenthesized_expression "(0 < (int)uVar33)" ( (binary_expression "0 < (int)uVar33" number_literal < (cast_expression "(int)uVar33" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(DAT_000c4a90 == 0)" ( (binary_expression "DAT_000c4a90 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }" { (expression_statement "BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);" (call_expression "BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35)" identifier (argument_list "(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35)" ( identifier , (string_literal ""\nPlease enter the following \'extra\' attributes\n"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");" (call_expression "BIO_printf(DAT_000c458c,"to be sent with your certificate request\n")" identifier (argument_list "(DAT_000c458c,"to be sent with your certificate request\n")" ( identifier , (string_literal ""to be sent with your certificate request\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "local_588 = -1;" (assignment_expression "local_588 = -1" identifier = number_literal) ;) (expression_statement "pcVar11 = (char *)local_484;" (assignment_expression "pcVar11 = (char *)local_484" identifier = (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00050afd;" goto statement_identifier ;) })) (expression_statement "iVar10 = OPENSSL_sk_value(psVar16,local_52c);" (assignment_expression "iVar10 = OPENSSL_sk_value(psVar16,local_52c)" identifier = (call_expression "OPENSSL_sk_value(psVar16,local_52c)" identifier (argument_list "(psVar16,local_52c)" ( identifier , identifier )))) ;) (expression_statement "pbVar17 = *(byte **)(iVar10 + 4);" (assignment_expression "pbVar17 = *(byte **)(iVar10 + 4)" identifier = (pointer_expression "*(byte **)(iVar10 + 4)" * (cast_expression "(byte **)(iVar10 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = FUN_0004d7e0();" (assignment_expression "iVar10 = FUN_0004d7e0()" identifier = (call_expression "FUN_0004d7e0()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0))" ( (binary_expression "(((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "(((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0))" ( (binary_expression "((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0))" ( (binary_expression "(iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" ( (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" identifier = (call_expression "FUN_0004d7e0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" ( (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" identifier = (call_expression "FUN_0004d7e0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" ( (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" identifier = (call_expression "FUN_0004d7e0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) ;) (expression_statement "bVar32 = *pbVar17;" (assignment_expression "bVar32 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar28 = pbVar17;" (assignment_expression "pbVar28 = pbVar17" identifier = identifier) ;) (if_statement "if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" if (parenthesized_expression "(bVar32 == 0)" ( (binary_expression "bVar32 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_514 = 0;\n                  }" { (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" else (compound_statement "{\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" { (do_statement "do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);" do (compound_statement "{\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    }" { (if_statement "if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }" if (parenthesized_expression "(((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a))" ( (binary_expression "((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)" (parenthesized_expression "((bVar32 & 0xfd) == 0x2c)" ( (binary_expression "(bVar32 & 0xfd) == 0x2c" (parenthesized_expression "(bVar32 & 0xfd)" ( (binary_expression "bVar32 & 0xfd" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar32 == 0x3a)" ( (binary_expression "bVar32 == 0x3a" identifier == number_literal) ))) )) (compound_statement "{\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }" { (if_statement "if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }" if (parenthesized_expression "(*(byte *)((int)pbVar28 + 1) != 0)" ( (binary_expression "*(byte *)((int)pbVar28 + 1) != 0" (pointer_expression "*(byte *)((int)pbVar28 + 1)" * (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }" { (expression_statement "pbVar17 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar17 = (byte *)((int)pbVar28 + 1)" identifier = (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar28 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar28 = (byte *)((int)pbVar28 + 1)" identifier = (cast_expression "(byte *)((int)pbVar28 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar28 + 1)" ( (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar32 = *pbVar28;" (assignment_expression "bVar32 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) }) while (parenthesized_expression "(bVar32 != 0)" ( (binary_expression "bVar32 != 0" identifier != number_literal) )) ;) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" identifier = number_literal) ;) (if_statement "if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }" if (parenthesized_expression "(*pbVar17 == 0x2b)" ( (binary_expression "*pbVar17 == 0x2b" (pointer_expression "*pbVar17" * identifier) == number_literal) )) (compound_statement "{\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }" { (expression_statement "local_514 = -1;" (assignment_expression "local_514 = -1" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) })) }))) (expression_statement "iVar10 = OBJ_txt2nid((char *)pbVar17);" (assignment_expression "iVar10 = OBJ_txt2nid((char *)pbVar17)" identifier = (call_expression "OBJ_txt2nid((char *)pbVar17)" identifier (argument_list "((char *)pbVar17)" ( (cast_expression "(char *)pbVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) while (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) ;) (expression_statement "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);" (assignment_expression "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10)" identifier = (call_expression "FUN_0004de90("_default","Name",iVar10,iVar10)" identifier (argument_list "("_default","Name",iVar10,iVar10)" ( (string_literal ""_default"" " string_content ") , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) break;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" identifier (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484)" ( identifier , identifier , (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12)" identifier = (call_expression "FUN_0004de90("_value","Name",pcVar12,pcVar12)" identifier (argument_list "("_value","Name",pcVar12,pcVar12)" ( (string_literal ""_value"" " string_content ") , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) break;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" identifier (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484)" ( identifier , identifier , (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  ERR_clear_error();\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" identifier = (call_expression "FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" identifier (argument_list "(&DAT_00087c81,"Name",pcVar12,pcVar12)" ( (pointer_expression "&DAT_00087c81" & identifier) , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) break;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" identifier (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" ( identifier , identifier , (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_4a4" & identifier) )))) ;) (if_statement "if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4a4 = -1;" (assignment_expression "local_4a4 = -1" identifier = number_literal) ;) })) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18)" identifier = (call_expression "FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18)" identifier (argument_list "(&DAT_00087c86,"Name",iVar18,iVar18)" ( (pointer_expression "&DAT_00087c86" & identifier) , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) break;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" identifier (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" ( identifier , identifier , (cast_expression "(char *)local_484" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_4a0.flags" & (field_expression "local_4a0.flags" identifier . field_identifier)) )))) ;) (if_statement "if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4a0.flags = -1;" (assignment_expression "local_4a0.flags = -1" (field_expression "local_4a0.flags" identifier . field_identifier) = number_literal) ;) })) (expression_statement "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");" (assignment_expression "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" identifier = (call_expression "FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" identifier (argument_list "(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" ( identifier , (field_expression "local_4a0.flags" identifier . field_identifier) , identifier , (string_literal ""DN value"" " string_content ") , (string_literal ""DN default"" " string_content ") )))) ;) (if_statement "if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }" if (parenthesized_expression "(uVar27 < 2)" ( (binary_expression "uVar27 < 2" identifier < number_literal) )) (compound_statement "{\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }" { (if_statement "if (uVar27 == 0) break;" if (parenthesized_expression "(uVar27 == 0)" ( (binary_expression "uVar27 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000509ca;" goto statement_identifier ;) })) (expression_statement "iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);" (assignment_expression "iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" identifier = (call_expression "X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" identifier (argument_list "(pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" ( identifier , identifier , identifier , identifier , number_literal , number_literal , identifier )))) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;)) (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" identifier = (pointer_expression "&DAT_000c458c" & identifier)) ;) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "pcVar12 = "No template, please set one up.\n";" (assignment_expression "pcVar12 = "No template, please set one up.\n"" identifier = (string_literal ""No template, please set one up.\n"" " string_content escape_sequence ")) ;) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;" (assignment_expression "pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0" identifier = (cast_expression "(char *)(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }))) (goto_statement "goto LAB_0005074a;" goto statement_identifier ;) })) (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" identifier = (call_expression "FUN_0004dcf0(local_57c)" identifier (argument_list "(local_57c)" ( identifier )))) ;) (if_statement "if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;" if (parenthesized_expression "((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))" ( (binary_expression "(iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0)" (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0)" ( (comma_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier = (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" identifier (argument_list "(x_00,(EVP_PKEY *)pBVar14)" ( identifier , (cast_expression "(EVP_PKEY *)pBVar14" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0004f80b;" goto statement_identifier ;)) (if_statement "if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }" { (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" identifier = number_literal) ;) (labeled_statement "LAB_0004f99b:\n          x = X509_new();" statement_identifier : (expression_statement "x = X509_new();" (assignment_expression "x = X509_new()" identifier = (call_expression "X509_new()" identifier (argument_list "()" ( )))) ;)) (if_statement "if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0))))" ( (binary_expression "(x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))" (parenthesized_expression "(x != (X509 *)0x0)" ( (binary_expression "x != (X509 *)0x0" identifier != (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))" ( (parenthesized_expression "((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0))" ( (binary_expression "(local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)" (parenthesized_expression "(local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0))" ( (binary_expression "local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)" (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) && (parenthesized_expression "(DAT_000c4a94 == (CONF *)0x0)" ( (binary_expression "DAT_000c4a94 == (CONF *)0x0" identifier == (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(iVar10 = X509_set_version(x,2), iVar10 != 0)" ( (comma_expression "iVar10 = X509_set_version(x,2), iVar10 != 0" (assignment_expression "iVar10 = X509_set_version(x,2)" identifier = (call_expression "X509_set_version(x,2)" identifier (argument_list "(x,2)" ( identifier , number_literal )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }" { (if_statement "if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" if (parenthesized_expression "(local_554 == (ASN1_INTEGER *)0x0)" ( (binary_expression "local_554 == (ASN1_INTEGER *)0x0" identifier == (cast_expression "(ASN1_INTEGER *)0x0" ( (type_descriptor "ASN1_INTEGER *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }" { (expression_statement "pAVar15 = X509_get_serialNumber(x);" (assignment_expression "pAVar15 = X509_get_serialNumber(x)" identifier = (call_expression "X509_get_serialNumber(x)" identifier (argument_list "(x)" ( identifier )))) ;) (expression_statement "iVar10 = FUN_00074630(0,pAVar15);" (assignment_expression "iVar10 = FUN_00074630(0,pAVar15)" identifier = (call_expression "FUN_00074630(0,pAVar15)" identifier (argument_list "(0,pAVar15)" ( number_literal , identifier )))) ;) }) (else_clause "else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" else (compound_statement "{\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" { (expression_statement "iVar10 = X509_set_serialNumber(x,local_554);" (assignment_expression "iVar10 = X509_set_serialNumber(x,local_554)" identifier = (call_expression "X509_set_serialNumber(x,local_554)" identifier (argument_list "(x,local_554)" ( identifier , identifier )))) ;) }))) (if_statement "if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }" { (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "iVar10 = X509_set_issuer_name(x,pXVar23);" (assignment_expression "iVar10 = X509_set_issuer_name(x,pXVar23)" identifier = (call_expression "X509_set_issuer_name(x,pXVar23)" identifier (argument_list "(x,pXVar23)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }" { (expression_statement "iVar10 = 0x1e;" (assignment_expression "iVar10 = 0x1e" identifier = number_literal) ;) (if_statement "if (local_530 != 0) {\n                  iVar10 = local_530;\n                }" if (parenthesized_expression "(local_530 != 0)" ( (binary_expression "local_530 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar10 = local_530;\n                }" { (expression_statement "iVar10 = local_530;" (assignment_expression "iVar10 = local_530" identifier = identifier) ;) })) (expression_statement "iVar10 = FUN_00077500(x,0,0,iVar10);" (assignment_expression "iVar10 = FUN_00077500(x,0,0,iVar10)" identifier = (call_expression "FUN_00077500(x,0,0,iVar10)" identifier (argument_list "(x,0,0,iVar10)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }" { (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" identifier = (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (expression_statement "iVar10 = X509_set_subject_name(x,pXVar23);" (assignment_expression "iVar10 = X509_set_subject_name(x,pXVar23)" identifier = (call_expression "X509_set_subject_name(x,pXVar23)" identifier (argument_list "(x,pXVar23)" ( identifier , identifier )))) ;) (if_statement "if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }" if (parenthesized_expression "(((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0))" ( (binary_expression "((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)" (parenthesized_expression "((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      )" ( (binary_expression "(iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)" ( (comma_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0" (assignment_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) , (binary_expression "pEVar24 != (EVP_PKEY *)0x0" identifier != (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)" ( (comma_expression "iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0" (assignment_expression "iVar10 = X509_set_pubkey(x,pEVar24)" identifier = (call_expression "X509_set_pubkey(x,pEVar24)" identifier (argument_list "(x,pEVar24)" ( identifier , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }" { (expression_statement "X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);" (call_expression "X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0)" identifier (argument_list "(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0)" ( (pointer_expression "&local_4a0" & identifier) , identifier , identifier , (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" identifier (argument_list "(&local_4a0,DAT_000c4a98)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (if_statement "if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" if (parenthesized_expression "((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0))" ( (binary_expression "(local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)" (parenthesized_expression "(local_528 == (char **)0x0)" ( (binary_expression "local_528 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)" ( (comma_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x)" identifier (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_528,x)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (cast_expression "(char *)local_528" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }" { (if_statement "if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }" if (parenthesized_expression "((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0))" ( (binary_expression "(DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)" (parenthesized_expression "(DAT_000c4a94 == (CONF *)0x0)" ( (binary_expression "DAT_000c4a94 == (CONF *)0x0" identifier == (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)" ( (comma_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x)" identifier = (call_expression "X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x)" identifier (argument_list "(DAT_000c4a94,&local_4a0,"default",x)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (string_literal ""default"" " string_content ") , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }" { (if_statement "if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }" { (expression_statement "iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);" (assignment_expression "iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0)" identifier = (call_expression "X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0)" identifier (argument_list "(x,0x3b8,(void *)0x0,1,0)" ( identifier , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal )))) ;) (expression_statement "local_528 = (char **)(iVar10 + -1);" (assignment_expression "local_528 = (char **)(iVar10 + -1)" identifier = (cast_expression "(char **)(iVar10 + -1)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -1)" ( (binary_expression "iVar10 + -1" identifier + number_literal) )))) ;) (if_statement "if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }" if (parenthesized_expression "(local_528 != (char **)0x0)" ( (binary_expression "local_528 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }" { (expression_statement "pcVar11 = "Error adding poison extension\n";" (assignment_expression "pcVar11 = "Error adding poison extension\n"" identifier = (string_literal ""Error adding poison extension\n"" " string_content escape_sequence ")) ;) (expression_statement "ppcVar9 = local_528;" (assignment_expression "ppcVar9 = local_528" identifier = identifier) ;) (goto_statement "goto LAB_00050666;" goto statement_identifier ;) })) })) (expression_statement "iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);" (assignment_expression "iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558)" identifier = (call_expression "FUN_0004e150(x,local_4d0,local_510,local_558)" identifier (argument_list "(x,local_4d0,local_510,local_558)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }" { (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (goto_statement "goto LAB_0004fb6e;" goto statement_identifier ;) })) (expression_statement "bVar31 = local_51c != 0;" (assignment_expression "bVar31 = local_51c != 0" identifier = (binary_expression "local_51c != 0" identifier != number_literal)) ;) (if_statement "if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;" if (parenthesized_expression "((local_53c == 0) || (!bVar31))" ( (binary_expression "(local_53c == 0) || (!bVar31)" (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) || (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) ))) )) (goto_statement "goto LAB_0004fed2;" goto statement_identifier ;)) (expression_statement "pcVar11 = "Cannot modify certificate subject\n";" (assignment_expression "pcVar11 = "Cannot modify certificate subject\n"" identifier = (string_literal ""Cannot modify certificate subject\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004fb64;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "Error Loading command line extensions\n";" (assignment_expression "pcVar11 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (expression_statement "local_528 = (char **)0x0;" (assignment_expression "local_528 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar9 = (char **)0x0;" (assignment_expression "ppcVar9 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" else (compound_statement "{\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" { (expression_statement "pcVar11 = "Error Loading extension section %s\n";" (assignment_expression "pcVar11 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "ppcVar9 = (char **)0x0;" (assignment_expression "ppcVar9 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (labeled_statement "LAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9)" identifier (argument_list "(DAT_000c458c,pcVar11,local_528,ppcVar9)" ( identifier , identifier , identifier , identifier ))) ;)) })) })) })) })) })) (goto_statement "goto LAB_0004fb6e;" goto statement_identifier ;) })) (labeled_statement "LAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);" statement_identifier : (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0)" identifier (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0)" ( (pointer_expression "&local_4a0" & identifier) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(X509_CRL *)0x0" ( (type_descriptor "X509_CRL *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;)) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" identifier (argument_list "(&local_4a0,DAT_000c4a98)" ( (pointer_expression "&local_4a0" & identifier) , identifier ))) ;) (if_statement "if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" if (parenthesized_expression "((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0))" ( (binary_expression "(local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)" (parenthesized_expression "(local_524 == (stack_st_CONF_VALUE *)0x0)" ( (binary_expression "local_524 == (stack_st_CONF_VALUE *)0x0" identifier == (cast_expression "(stack_st_CONF_VALUE *)0x0" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)" ( (comma_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" identifier = (call_expression "X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" identifier (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (cast_expression "(char *)local_524" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }" { (if_statement "if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }" if (parenthesized_expression "((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             ))" ( (binary_expression "(DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )" (parenthesized_expression "(DAT_000c4a94 != (CONF *)0x0)" ( (binary_expression "DAT_000c4a94 != (CONF *)0x0" identifier != (cast_expression "(CONF *)0x0" ( (type_descriptor "CONF *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )" ( (comma_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0" (assignment_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00)" identifier = (call_expression "X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00)" identifier (argument_list "(DAT_000c4a94,&local_4a0,"default",x_00)" ( identifier , (pointer_expression "&local_4a0" & identifier) , (string_literal ""default"" " string_content ") , identifier )))) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }" { (expression_statement "pcVar12 = "Error Loading command line extensions\n";" (assignment_expression "pcVar12 = "Error Loading command line extensions\n"" identifier = (string_literal ""Error Loading command line extensions\n"" " string_content escape_sequence ")) ;) (expression_statement "local_524 = (stack_st_CONF_VALUE *)pcVar11;" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)pcVar11" identifier = (cast_expression "(stack_st_CONF_VALUE *)pcVar11" ( (type_descriptor "stack_st_CONF_VALUE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0005068b;" goto statement_identifier ;) })) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);" (assignment_expression "iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558)" identifier = (call_expression "FUN_0004e1b0(x_00,local_4d0,local_510,local_558)" identifier (argument_list "(x_00,local_4d0,local_510,local_558)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar10 != 0) goto LAB_0004fc7f;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fc7f;" goto statement_identifier ;)) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) }) (else_clause "else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" else (compound_statement "{\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" { (expression_statement "pcVar12 = "Error Loading extension section %s\n";" (assignment_expression "pcVar12 = "Error Loading extension section %s\n"" identifier = (string_literal ""Error Loading extension section %s\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11)" identifier (argument_list "(DAT_000c458c,pcVar12,local_524,pcVar11)" ( identifier , identifier , identifier , identifier ))) ;)) }))) (goto_statement "goto LAB_0004f82c;" goto statement_identifier ;) })) (expression_statement "local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);" (assignment_expression "local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8)" identifier = (cast_expression "(BIO *)FUN_00075fa0(local_52c,0x72,local_4b8)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fa0(local_52c,0x72,local_4b8)" identifier (argument_list "(local_52c,0x72,local_4b8)" ( identifier , number_literal , identifier ))))) ;) (if_statement "if (local_548 == (BIO *)0x0) goto LAB_0004f60c;" if (parenthesized_expression "(local_548 == (BIO *)0x0)" ( (binary_expression "local_548 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f60c;" goto statement_identifier ;)) (if_statement "if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" if (parenthesized_expression "(local_4b8 == (undefined *)0x4)" ( (binary_expression "local_4b8 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }" { (expression_statement "x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);" (assignment_expression "x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0)" identifier = (call_expression "d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0)" identifier (argument_list "(local_548,(X509_REQ **)0x0)" ( identifier , (cast_expression "(X509_REQ **)0x0" ( (type_descriptor "X509_REQ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) }) (else_clause "else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" else (compound_statement "{\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" { (expression_statement "x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);" (assignment_expression "x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier = (call_expression "PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier (argument_list "(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" ( identifier , (cast_expression "(X509_REQ **)0x0" ( (type_descriptor "X509_REQ **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) }))) (if_statement "if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(x_00 == (X509_REQ *)0x0)" ( (binary_expression "x_00 == (X509_REQ *)0x0" identifier == (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" { (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);" (call_expression "BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0)" identifier (argument_list "(DAT_000c458c,"unable to load X509 request\n",0,0)" ( identifier , (string_literal ""unable to load X509 request\n"" " string_content escape_sequence ") , number_literal , number_literal ))) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (if_statement "if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }" { (if_statement "if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;" if (parenthesized_expression "(local_4d0 == (BIO *)0x0)" ( (binary_expression "local_4d0 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000505b7;" goto statement_identifier ;)) (goto_statement "goto LAB_0004f99b;" goto statement_identifier ;) })) (expression_statement "bVar31 = local_51c != 0;" (assignment_expression "bVar31 = local_51c != 0" identifier = (binary_expression "local_51c != 0" identifier != number_literal)) ;) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" statement_identifier : (if_statement "if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" if (parenthesized_expression "((bVar31 & (byte)local_564) != 0)" ( (binary_expression "(bVar31 & (byte)local_564) != 0" (parenthesized_expression "(bVar31 & (byte)local_564)" ( (binary_expression "bVar31 & (byte)local_564" identifier & (cast_expression "(byte)local_564" ( (type_descriptor "byte" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" { (if_statement "if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }" { (expression_statement "BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");" (call_expression "BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n")" identifier (argument_list "(DAT_000c458c,"Modifying Request\'s Subject\n")" ( identifier , (string_literal ""Modifying Request\'s Subject\n"" " string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" identifier = (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier )))) ;) (expression_statement "FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35)" identifier (argument_list "(DAT_000c458c,"old subject=",uVar25,uVar35)" ( identifier , (string_literal ""old subject="" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" identifier = (call_expression "FUN_0004dcf0(local_57c)" identifier (argument_list "(local_57c)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) goto LAB_0004ff17;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004ff17;" goto statement_identifier ;)) (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" identifier = (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier )))) ;) (expression_statement "FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35)" identifier (argument_list "(DAT_000c458c,"new subject=",uVar25,uVar35)" ( identifier , (string_literal ""new subject="" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" else (compound_statement "{\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" { (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" identifier = (call_expression "FUN_0004dcf0(local_57c)" identifier (argument_list "(local_57c)" ( identifier )))) ;) (if_statement "if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }" { (labeled_statement "LAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";" statement_identifier : (expression_statement "pcVar11 = "ERROR: cannot modify subject\n";" (assignment_expression "pcVar11 = "ERROR: cannot modify subject\n"" identifier = (string_literal ""ERROR: cannot modify subject\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar11)" identifier (argument_list "(DAT_000c458c,pcVar11)" ( identifier , identifier ))) ;)) (labeled_statement "LAB_0004fb6e:\n            local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_0004fc7f:\n      local_564 = local_578 & local_564;" statement_identifier : (expression_statement "local_564 = local_578 & local_564;" (assignment_expression "local_564 = local_578 & local_564" identifier = (binary_expression "local_578 & local_564" identifier & identifier)) ;)) (if_statement "if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(local_564 != 0)" ( (binary_expression "local_564 != 0" identifier != number_literal) )) (compound_statement "{\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }" { (expression_statement "local_560 = local_4d0;" (assignment_expression "local_560 = local_4d0" identifier = identifier) ;) (if_statement "if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" if (parenthesized_expression "((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0))" ( (binary_expression "(local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)" (parenthesized_expression "(local_4d0 == (BIO *)0x0)" ( (binary_expression "local_4d0 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)" ( (comma_expression "local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0" (assignment_expression "local_560 = (BIO *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(BIO *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) , (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" else (compound_statement "{\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" { (expression_statement "iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);" (assignment_expression "iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560)" identifier = (call_expression "X509_REQ_verify(x_00,(EVP_PKEY *)local_560)" identifier (argument_list "(x_00,(EVP_PKEY *)local_560)" ( identifier , (cast_expression "(EVP_PKEY *)local_560" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (compound_statement "{\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }" { (if_statement "if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }" { (expression_statement "BIO_printf(DAT_000c458c,"verify failure\n");" (call_expression "BIO_printf(DAT_000c458c,"verify failure\n")" identifier (argument_list "(DAT_000c458c,"verify failure\n")" ( identifier , (string_literal ""verify failure\n"" " string_content escape_sequence ") ))) ;) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) }) (else_clause "else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" else (compound_statement "{\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" { (expression_statement "BIO_printf(DAT_000c458c,"verify OK\n");" (call_expression "BIO_printf(DAT_000c458c,"verify OK\n")" identifier (argument_list "(DAT_000c458c,"verify OK\n")" ( identifier , (string_literal ""verify OK\n"" " string_content escape_sequence ") ))) ;) }))) (goto_statement "goto LAB_0004fce0;" goto statement_identifier ;) })) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (labeled_statement "LAB_0004fce0:\n      puVar6 = local_4b4;" statement_identifier : (expression_statement "puVar6 = local_4b4;" (assignment_expression "puVar6 = local_4b4" identifier = identifier) ;)) (if_statement "if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }" if (parenthesized_expression "(((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0))" ( (binary_expression "((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)" (parenthesized_expression "((local_580 & (local_594 ^ 1)) != 0)" ( (binary_expression "(local_580 & (local_594 ^ 1)) != 0" (parenthesized_expression "(local_580 & (local_594 ^ 1))" ( (binary_expression "local_580 & (local_594 ^ 1)" identifier & (parenthesized_expression "(local_594 ^ 1)" ( (binary_expression "local_594 ^ 1" identifier ^ number_literal) ))) )) != number_literal) )) && (parenthesized_expression "((local_584 == 0 && local_56c == 0) && local_520 == 0)" ( (binary_expression "(local_584 == 0 && local_56c == 0) && local_520 == 0" (parenthesized_expression "(local_584 == 0 && local_56c == 0)" ( (binary_expression "local_584 == 0 && local_56c == 0" (binary_expression "local_584 == 0" identifier == number_literal) && (binary_expression "local_56c == 0" identifier == number_literal)) )) && (binary_expression "local_520 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }" { (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" if (parenthesized_expression "((local_518 == (char *)0x0) || (local_50c == (char *)0x0))" ( (binary_expression "(local_518 == (char *)0x0) || (local_50c == (char *)0x0)" (parenthesized_expression "(local_518 == (char *)0x0)" ( (binary_expression "local_518 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_50c == (char *)0x0)" ( (binary_expression "local_50c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        iVar10 = 0x77;\n      }" { (expression_statement "iVar10 = 0x77;" (assignment_expression "iVar10 = 0x77" identifier = number_literal) ;) }) (else_clause "else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" else (compound_statement "{\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" { (expression_statement "iVar10 = strcmp(local_518,local_50c);" (assignment_expression "iVar10 = strcmp(local_518,local_50c)" identifier = (call_expression "strcmp(local_518,local_50c)" identifier (argument_list "(local_518,local_50c)" ( identifier , identifier )))) ;) (expression_statement "iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;" (assignment_expression "iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77" identifier = (binary_expression "(-(uint)(iVar10 == 0) & 0xffffffea) + 0x77" (parenthesized_expression "(-(uint)(iVar10 == 0) & 0xffffffea)" ( (binary_expression "-(uint)(iVar10 == 0) & 0xffffffea" (unary_expression "-(uint)(iVar10 == 0)" - (call_expression "(uint)(iVar10 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }))) (expression_statement "local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);" (assignment_expression "local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6)" identifier = (cast_expression "(BIO *)FUN_00075fa0(local_50c,iVar10,puVar6)" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00075fa0(local_50c,iVar10,puVar6)" identifier (argument_list "(local_50c,iVar10,puVar6)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" if (parenthesized_expression "(local_560 == (BIO *)0x0)" ( (binary_expression "local_560 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" { (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (if_statement "if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }" if (parenthesized_expression "(local_56c != 0)" ( (binary_expression "local_56c != 0" identifier != number_literal) )) (compound_statement "{\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }" { (expression_statement "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (assignment_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;) (if_statement "if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }" if (parenthesized_expression "(pEVar24 == (EVP_PKEY *)0x0)" ( (binary_expression "pEVar24 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }" { (expression_statement "BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);" (call_expression "BIO_printf(DAT_000c458c,"Error getting public key\n",0,0)" identifier (argument_list "(DAT_000c458c,"Error getting public key\n",0,0)" ( identifier , (string_literal ""Error getting public key\n"" " string_content escape_sequence ") , number_literal , number_literal ))) ;) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_564 = local_56c;" (assignment_expression "local_564 = local_56c" identifier = identifier) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "PEM_write_bio_PUBKEY(local_560,pEVar24);" (call_expression "PEM_write_bio_PUBKEY(local_560,pEVar24)" identifier (argument_list "(local_560,pEVar24)" ( identifier , identifier ))) ;) })) (expression_statement "uVar19 = local_4a8;" (assignment_expression "uVar19 = local_4a8" identifier = identifier) ;) (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;) (if_statement "if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }" if (parenthesized_expression "(local_594 == 0)" ( (binary_expression "local_594 == 0" identifier == number_literal) )) (compound_statement "{\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }" { (if_statement "if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }" if (parenthesized_expression "(local_584 == 0)" ( (binary_expression "local_584 == 0" identifier == number_literal) )) (compound_statement "{\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }" { (expression_statement "local_598 = 1;" (assignment_expression "local_598 = 1" identifier = number_literal) ;) (if_statement "if (local_520 == 0) goto LAB_0004fe2d;" if (parenthesized_expression "(local_520 == 0)" ( (binary_expression "local_520 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fe2d;" goto statement_identifier ;)) (expression_statement "local_598 = local_520;" (assignment_expression "local_598 = local_520" identifier = identifier) ;) (if_statement "if (local_53c == 0) goto LAB_00050366;" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050366;" goto statement_identifier ;)) (expression_statement "local_598 = local_53c;" (assignment_expression "local_598 = local_53c" identifier = identifier) ;) (labeled_statement "LAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)X509_get0_pubkey(x);" (assignment_expression "local_570 = (EVP_PKEY *)X509_get0_pubkey(x)" identifier = (cast_expression "(EVP_PKEY *)X509_get0_pubkey(x)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_pubkey(x)" identifier (argument_list "(x)" ( identifier ))))) ;)) (labeled_statement "LAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;" statement_identifier : (expression_statement "puVar6 = PTR_stdout_000bdfa8;" (assignment_expression "puVar6 = PTR_stdout_000bdfa8" identifier = identifier) ;)) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }" if (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" ( (binary_expression "local_570 == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }" { (expression_statement "fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);" (call_expression "fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8)" identifier (argument_list "("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8)" ( (string_literal ""Modulus=unavailable\n"" " string_content escape_sequence ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_000bdfa8" * (cast_expression "(FILE **)PTR_stdout_000bdfa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "local_564 = local_598;" (assignment_expression "local_564 = local_598" identifier = identifier) ;) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) })) (expression_statement "fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);" (call_expression "fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8)" identifier (argument_list "("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8)" ( (string_literal ""Modulus="" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_000bdfa8" * (cast_expression "(FILE **)PTR_stdout_000bdfa8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "iVar10 = EVP_PKEY_base_id(local_570);" (assignment_expression "iVar10 = EVP_PKEY_base_id(local_570)" identifier = (call_expression "EVP_PKEY_base_id(local_570)" identifier (argument_list "(local_570)" ( identifier )))) ;) (if_statement "if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" if (parenthesized_expression "(iVar10 == 6)" ( (binary_expression "iVar10 == 6" identifier == number_literal) )) (compound_statement "{\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }" { (expression_statement "uVar35 = EVP_PKEY_get0_RSA(local_570);" (assignment_expression "uVar35 = EVP_PKEY_get0_RSA(local_570)" identifier = (call_expression "EVP_PKEY_get0_RSA(local_570)" identifier (argument_list "(local_570)" ( identifier )))) ;) (expression_statement "RSA_get0_key(uVar35,&local_4a0,0,0);" (call_expression "RSA_get0_key(uVar35,&local_4a0,0,0)" identifier (argument_list "(uVar35,&local_4a0,0,0)" ( identifier , (pointer_expression "&local_4a0" & identifier) , number_literal , number_literal ))) ;) (expression_statement "BN_print(local_560,(BIGNUM *)local_4a0.flags);" (call_expression "BN_print(local_560,(BIGNUM *)local_4a0.flags)" identifier (argument_list "(local_560,(BIGNUM *)local_4a0.flags)" ( identifier , (cast_expression "(BIGNUM *)local_4a0.flags" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_4a0.flags" identifier . field_identifier)) ))) ;) }) (else_clause "else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" else (compound_statement "{\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" { (expression_statement "fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);" (call_expression "fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6)" identifier (argument_list "("Wrong Algorithm type",1,0x14,*(FILE **)puVar6)" ( (string_literal ""Wrong Algorithm type"" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)puVar6" * (cast_expression "(FILE **)puVar6" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) }))) (expression_statement "fputc(10,*(FILE **)puVar6);" (call_expression "fputc(10,*(FILE **)puVar6)" identifier (argument_list "(10,*(FILE **)puVar6)" ( number_literal , (pointer_expression "*(FILE **)puVar6" * (cast_expression "(FILE **)puVar6" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (goto_statement "goto LAB_0004fe2d;" goto statement_identifier ;) })) (expression_statement "local_598 = local_584;" (assignment_expression "local_598 = local_584" identifier = identifier) ;) (if_statement "if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }" if (parenthesized_expression "(local_53c != 0)" ( (binary_expression "local_53c != 0" identifier != number_literal) )) (compound_statement "{\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }" { (expression_statement "local_598 = local_53c;" (assignment_expression "local_598 = local_53c" identifier = identifier) ;) (labeled_statement "LAB_0004ffc7:\n          uVar35 = FUN_00073120();" statement_identifier : (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;)) (expression_statement "pXVar23 = X509_get_subject_name(x);" (assignment_expression "pXVar23 = X509_get_subject_name(x)" identifier = (call_expression "X509_get_subject_name(x)" identifier (argument_list "(x)" ( identifier )))) ;) (expression_statement "FUN_00073b90(local_560,"subject=",pXVar23,uVar35);" (call_expression "FUN_00073b90(local_560,"subject=",pXVar23,uVar35)" identifier (argument_list "(local_560,"subject=",pXVar23,uVar35)" ( identifier , (string_literal ""subject="" " string_content ") , identifier , identifier ))) ;) (if_statement "if (local_520 == 0) goto LAB_0004fff8;" if (parenthesized_expression "(local_520 == 0)" ( (binary_expression "local_520 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fff8;" goto statement_identifier ;)) (goto_statement "goto LAB_0004fdbe;" goto statement_identifier ;) })) (labeled_statement "LAB_000502e6:\n        uVar35 = FUN_00073120();" statement_identifier : (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;)) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" identifier = (call_expression "X509_REQ_get_subject_name(x_00)" identifier (argument_list "(x_00)" ( identifier )))) ;) (expression_statement "FUN_00073b90(local_560,"subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(local_560,"subject=",uVar25,uVar35)" identifier (argument_list "(local_560,"subject=",uVar25,uVar35)" ( identifier , (string_literal ""subject="" " string_content ") , identifier , identifier ))) ;) (if_statement "if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }" { (labeled_statement "LAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" statement_identifier : (expression_statement "local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (assignment_expression "local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" identifier = (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_REQ_get0_pubkey(x_00)" identifier (argument_list "(x_00)" ( identifier ))))) ;)) (goto_statement "goto LAB_0004fdce;" goto statement_identifier ;) })) (if_statement "if (local_580 == 0) goto LAB_0004fe3b;" if (parenthesized_expression "(local_580 == 0)" ( (binary_expression "local_580 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004fe3b;" goto statement_identifier ;)) (labeled_statement "LAB_0005031e:\n        local_564 = 0;" statement_identifier : (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" identifier = number_literal) ;)) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" if (parenthesized_expression "(local_53c == 0)" ( (binary_expression "local_53c == 0" identifier == number_literal) )) (compound_statement "{\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }" { (expression_statement "uVar22 = FUN_00073120();" (assignment_expression "uVar22 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);" (assignment_expression "local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19)" identifier = (call_expression "X509_REQ_print_ex(local_560,x_00,uVar22,uVar19)" identifier (argument_list "(local_560,x_00,uVar22,uVar19)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }" if (parenthesized_expression "(local_598 == 0)" ( (binary_expression "local_598 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }" { (expression_statement "pcVar11 = "Error printing certificate request\n";" (assignment_expression "pcVar11 = "Error printing certificate request\n"" identifier = (string_literal ""Error printing certificate request\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00050628;" goto statement_identifier ;) })) (if_statement "if (local_584 != 0) goto LAB_000502e6;" if (parenthesized_expression "(local_584 != 0)" ( (binary_expression "local_584 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000502e6;" goto statement_identifier ;)) (if_statement "if (local_520 != 0) goto LAB_00050366;" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00050366;" goto statement_identifier ;)) (labeled_statement "LAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;" statement_identifier : (if_statement "if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;" if (parenthesized_expression "(local_53c != 0 || local_580 != 0)" ( (binary_expression "local_53c != 0 || local_580 != 0" (binary_expression "local_53c != 0" identifier != number_literal) || (binary_expression "local_580 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_0004fff8;" goto statement_identifier ;))) (labeled_statement "LAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" statement_identifier : (if_statement "if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" if (parenthesized_expression "(local_4b4 == (undefined *)0x4)" ( (binary_expression "local_4b4 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }" { (expression_statement "iVar10 = i2d_X509_REQ_bio(local_560,x_00);" (assignment_expression "iVar10 = i2d_X509_REQ_bio(local_560,x_00)" identifier = (call_expression "i2d_X509_REQ_bio(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar35 = extraout_EDX_02;" (assignment_expression "uVar35 = extraout_EDX_02" identifier = identifier) ;) }) (else_clause "else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" else (if_statement "if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }" { (expression_statement "iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);" (assignment_expression "iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00)" identifier = (call_expression "PEM_write_bio_X509_REQ_NEW(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar35 = extraout_EDX_00;" (assignment_expression "uVar35 = extraout_EDX_00" identifier = identifier) ;) }) (else_clause "else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" else (compound_statement "{\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" { (expression_statement "iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);" (assignment_expression "iVar10 = PEM_write_bio_X509_REQ(local_560,x_00)" identifier = (call_expression "PEM_write_bio_X509_REQ(local_560,x_00)" identifier (argument_list "(local_560,x_00)" ( identifier , identifier )))) ;) (expression_statement "uVar35 = extraout_EDX_01;" (assignment_expression "uVar35 = extraout_EDX_01" identifier = identifier) ;) })))))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar10 != 0) goto LAB_0004e57b;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (expression_statement "pcVar11 = "unable to write X509 request\n";" (assignment_expression "pcVar11 = "unable to write X509 request\n"" identifier = (string_literal ""unable to write X509 request\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" else (compound_statement "{\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" { (expression_statement "uVar22 = FUN_00073120();" (assignment_expression "uVar22 = FUN_00073120()" identifier = (call_expression "FUN_00073120()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_598 = X509_print_ex(local_560,x,uVar22,uVar19);" (assignment_expression "local_598 = X509_print_ex(local_560,x,uVar22,uVar19)" identifier = (call_expression "X509_print_ex(local_560,x,uVar22,uVar19)" identifier (argument_list "(local_560,x,uVar22,uVar19)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }" if (parenthesized_expression "(local_598 == 0)" ( (binary_expression "local_598 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }" { (expression_statement "pcVar11 = "Error printing certificate\n";" (assignment_expression "pcVar11 = "Error printing certificate\n"" identifier = (string_literal ""Error printing certificate\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,pcVar11,0,0);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,0,0)" identifier (argument_list "(DAT_000c458c,pcVar11,0,0)" ( identifier , identifier , number_literal , number_literal ))) ;)) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;) })) (if_statement "if (local_584 != 0) goto LAB_0004ffc7;" if (parenthesized_expression "(local_584 != 0)" ( (binary_expression "local_584 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004ffc7;" goto statement_identifier ;)) (if_statement "if (local_520 != 0) goto LAB_0004fdbe;" if (parenthesized_expression "(local_520 != 0)" ( (binary_expression "local_520 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004fdbe;" goto statement_identifier ;)) (labeled_statement "LAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;" statement_identifier : (if_statement "if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;" if (parenthesized_expression "((local_53c & (local_580 ^ 1)) == 0)" ( (binary_expression "(local_53c & (local_580 ^ 1)) == 0" (parenthesized_expression "(local_53c & (local_580 ^ 1))" ( (binary_expression "local_53c & (local_580 ^ 1)" identifier & (parenthesized_expression "(local_580 ^ 1)" ( (binary_expression "local_580 ^ 1" identifier ^ number_literal) ))) )) == number_literal) )) (goto_statement "goto LAB_0005031e;" goto statement_identifier ;))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (x == (X509 *)0x0) goto LAB_0004e57b;" if (parenthesized_expression "(x == (X509 *)0x0)" ( (binary_expression "x == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (if_statement "if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" if (parenthesized_expression "(local_4b4 == (undefined *)0x4)" ( (binary_expression "local_4b4 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar10 = i2d_X509_bio(local_560,x);\n        }" { (expression_statement "iVar10 = i2d_X509_bio(local_560,x);" (assignment_expression "iVar10 = i2d_X509_bio(local_560,x)" identifier = (call_expression "i2d_X509_bio(local_560,x)" identifier (argument_list "(local_560,x)" ( identifier , identifier )))) ;) }) (else_clause "else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" else (compound_statement "{\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" { (expression_statement "iVar10 = PEM_write_bio_X509(local_560,x);" (assignment_expression "iVar10 = PEM_write_bio_X509(local_560,x)" identifier = (call_expression "PEM_write_bio_X509(local_560,x)" identifier (argument_list "(local_560,x)" ( identifier , identifier )))) ;) }))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar10 != 0) goto LAB_0004e57b;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004e57b;" goto statement_identifier ;)) (expression_statement "pcVar11 = "unable to write X509 certificate\n";" (assignment_expression "pcVar11 = "unable to write X509 certificate\n"" identifier = (string_literal ""unable to write X509 certificate\n"" " string_content escape_sequence ")) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) }))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35)" identifier (argument_list "(DAT_000c458c,pcVar11,uVar35,uVar35)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_564 = local_598;" (assignment_expression "local_564 = local_598" identifier = identifier) ;) })))) }) (else_clause "else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" else (compound_statement "{\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" { (expression_statement "local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");" (assignment_expression "local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" identifier = (cast_expression "(BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" identifier (argument_list "(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" ( identifier , identifier , number_literal , identifier , identifier , (string_literal ""Private Key"" " string_content ") ))))) ;) (expression_statement "local_4d0 = local_548;" (assignment_expression "local_4d0 = local_548" identifier = identifier) ;) (if_statement "if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }" if (parenthesized_expression "(local_548 != (BIO *)0x0)" ( (binary_expression "local_548 != (BIO *)0x0" identifier != (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }" { (expression_statement "FUN_00072430(DAT_000c4a98,&DAT_00091821);" (call_expression "FUN_00072430(DAT_000c4a98,&DAT_00091821)" identifier (argument_list "(DAT_000c4a98,&DAT_00091821)" ( identifier , (pointer_expression "&DAT_00091821" & identifier) ))) ;) (goto_statement "goto LAB_0004f1d1;" goto statement_identifier ;) })) (labeled_statement "LAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;" statement_identifier : (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" identifier = (cast_expression "(X509_REQ *)0x0" ( (type_descriptor "X509_REQ *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0004e56a;" goto statement_identifier ;) (while_statement "while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }" while (parenthesized_expression "(iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0)" ( (comma_expression "iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0" (assignment_expression "iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1)" identifier = (call_expression "X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1)" identifier (argument_list "(x_00,iVar10,local_4ec,local_420,-1)" ( identifier , identifier , identifier , identifier , number_literal )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) )) (compound_statement "{\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }" { (labeled_statement "LAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);" statement_identifier : (do_statement "do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);" do (compound_statement "{\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    }" { (expression_statement "local_588 = local_588 + 1;" (assignment_expression "local_588 = local_588 + 1" identifier = (binary_expression "local_588 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = OPENSSL_sk_num(local_548);" (assignment_expression "iVar10 = OPENSSL_sk_num(local_548)" identifier = (call_expression "OPENSSL_sk_num(local_548)" identifier (argument_list "(local_548)" ( identifier )))) ;) (if_statement "if (iVar10 <= local_588) goto LAB_00050951;" if (parenthesized_expression "(iVar10 <= local_588)" ( (binary_expression "iVar10 <= local_588" identifier <= identifier) )) (goto_statement "goto LAB_00050951;" goto statement_identifier ;)) (expression_statement "iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);" (assignment_expression "iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10)" identifier = (call_expression "OPENSSL_sk_value(local_548,local_588,iVar10,iVar10)" identifier (argument_list "(local_548,local_588,iVar10,iVar10)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));" (assignment_expression "iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4))" identifier = (call_expression "OBJ_txt2nid(*(char **)(iVar10 + 4))" identifier (argument_list "(*(char **)(iVar10 + 4))" ( (pointer_expression "*(char **)(iVar10 + 4)" * (cast_expression "(char **)(iVar10 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) )))) ;) }) while (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) ;)) (expression_statement "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);" (assignment_expression "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10)" identifier = (call_expression "FUN_0004de90("_default","Name",iVar10,iVar10)" identifier (argument_list "("_default","Name",iVar10,iVar10)" ( (string_literal ""_default"" " string_content ") , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }" { (labeled_statement "LAB_00050d30:\n      puVar26 = &DAT_000c458c;" statement_identifier : (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" identifier = (pointer_expression "&DAT_000c458c" & identifier)) ;)) (goto_statement "goto LAB_0004f815;" goto statement_identifier ;) })) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" identifier (argument_list "(DAT_000c4a98,(char *)section,pcVar11)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12)" identifier = (call_expression "FUN_0004de90("_value","Name",pcVar12,pcVar12)" identifier (argument_list "("_value","Name",pcVar12,pcVar12)" ( (string_literal ""_value"" " string_content ") , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" identifier = (call_expression "NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" identifier (argument_list "(DAT_000c4a98,(char *)section,pcVar11)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ERR_clear_error();\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" identifier = (call_expression "FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" identifier (argument_list "(&DAT_00087c81,"Name",pcVar12,pcVar12)" ( (pointer_expression "&DAT_00087c81" & identifier) , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" identifier (argument_list "(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&local_4a4" & identifier) )))) ;) (expression_statement "uVar35 = extraout_ECX_00;" (assignment_expression "uVar35 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4a4 = -1;" (assignment_expression "local_4a4 = -1" identifier = number_literal) ;) (expression_statement "uVar35 = extraout_ECX_01;" (assignment_expression "uVar35 = extraout_ECX_01" identifier = identifier) ;) })) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35)" identifier = (call_expression "FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35)" identifier (argument_list "(&DAT_00087c86,"Name",uVar35,uVar35)" ( (pointer_expression "&DAT_00087c86" & identifier) , (string_literal ""Name"" " string_content ") , identifier , identifier )))) ;) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" identifier = (call_expression "NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" identifier (argument_list "(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" ( identifier , (cast_expression "(char *)section" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (pointer_expression "&local_4a0.flags" & (field_expression "local_4a0.flags" identifier . field_identifier)) )))) ;) (if_statement "if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4a0.flags = -1;" (assignment_expression "local_4a0.flags = -1" (field_expression "local_4a0.flags" identifier . field_identifier) = number_literal) ;) })) (expression_statement "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;" (assignment_expression "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" identifier = (call_expression "FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" identifier (argument_list "(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" ( identifier , (field_expression "local_4a0.flags" identifier . field_identifier) , identifier , (string_literal ""Attribute value"" " string_content ") , (string_literal ""Attribute default"" " string_content ") )))) ;) (if_statement "if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }" if (parenthesized_expression "(uVar27 < 2)" ( (binary_expression "uVar27 < 2" identifier < number_literal) )) (compound_statement "{\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }" { (if_statement "if (uVar27 == 0) goto LAB_00050d30;" if (parenthesized_expression "(uVar27 == 0)" ( (binary_expression "uVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00050d30;" goto statement_identifier ;)) (goto_statement "goto LAB_00050afd;" goto statement_identifier ;) })) })) (expression_statement "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);" (assignment_expression "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" identifier = (cast_expression "(undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" identifier (argument_list "(DAT_000c458c,"Error adding attribute\n",0,0)" ( identifier , (string_literal ""Error adding attribute\n"" " string_content escape_sequence ") , number_literal , number_literal ))))) ;) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (labeled_statement "LAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);" statement_identifier : (expression_statement "BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);" (call_expression "BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26)" identifier (argument_list "(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26)" ( identifier , (string_literal ""problems making Certificate Request\n"" " string_content escape_sequence ") , identifier , identifier ))) ;)) (labeled_statement "LAB_0004f82c:\n  local_564 = 1;" statement_identifier : (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" identifier = number_literal) ;)) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" identifier = (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" identifier = (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);" statement_identifier : (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;)) (labeled_statement "LAB_0004e57b:\n  NCONF_free(DAT_000c4a98);" statement_identifier : (expression_statement "NCONF_free(DAT_000c4a98);" (call_expression "NCONF_free(DAT_000c4a98)" identifier (argument_list "(DAT_000c4a98)" ( identifier ))) ;)) (expression_statement "NCONF_free(DAT_000c4a94);" (call_expression "NCONF_free(DAT_000c4a94)" identifier (argument_list "(DAT_000c4a94)" ( identifier ))) ;) (expression_statement "BIO_free(local_550);" (call_expression "BIO_free(local_550)" identifier (argument_list "(local_550)" ( identifier ))) ;) (expression_statement "BIO_free(local_548);" (call_expression "BIO_free(local_548)" identifier (argument_list "(local_548)" ( identifier ))) ;) (expression_statement "BIO_free_all(local_560);" (call_expression "BIO_free_all(local_560)" identifier (argument_list "(local_560)" ( identifier ))) ;) (expression_statement "EVP_PKEY_free((EVP_PKEY *)local_4d0);" (call_expression "EVP_PKEY_free((EVP_PKEY *)local_4d0)" identifier (argument_list "((EVP_PKEY *)local_4d0)" ( (cast_expression "(EVP_PKEY *)local_4d0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);" (call_expression "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570)" identifier (argument_list "((EVP_PKEY_CTX *)local_570)" ( (cast_expression "(EVP_PKEY_CTX *)local_570" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "OPENSSL_sk_free(local_55c);" (call_expression "OPENSSL_sk_free(local_55c)" identifier (argument_list "(local_55c)" ( identifier ))) ;) (expression_statement "OPENSSL_sk_free(local_558);" (call_expression "OPENSSL_sk_free(local_558)" identifier (argument_list "(local_558)" ( identifier ))) ;) (expression_statement "OPENSSL_LH_doall(local_54c,FUN_0004d6e0);" (call_expression "OPENSSL_LH_doall(local_54c,FUN_0004d6e0)" identifier (argument_list "(local_54c,FUN_0004d6e0)" ( identifier , identifier ))) ;) (expression_statement "OPENSSL_LH_free(local_54c);" (call_expression "OPENSSL_LH_free(local_54c)" identifier (argument_list "(local_54c)" ( identifier ))) ;) (expression_statement "ENGINE_free(local_544);" (call_expression "ENGINE_free(local_544)" identifier (argument_list "(local_544)" ( identifier ))) ;) (expression_statement "uVar35 = 0x3cc;" (assignment_expression "uVar35 = 0x3cc" identifier = number_literal) ;) (expression_statement "CRYPTO_free(local_4c8);" (call_expression "CRYPTO_free(local_4c8)" identifier (argument_list "(local_4c8)" ( identifier ))) ;) (expression_statement "X509_REQ_free(x_00);" (call_expression "X509_REQ_free(x_00)" identifier (argument_list "(x_00)" ( identifier ))) ;) (expression_statement "X509_free(x);" (call_expression "X509_free(x)" identifier (argument_list "(x)" ( identifier ))) ;) (expression_statement "ASN1_INTEGER_free(local_554);" (call_expression "ASN1_INTEGER_free(local_554)" identifier (argument_list "(local_554)" ( identifier ))) ;) (expression_statement "FUN_00074230(local_540,pcVar34,uVar35);" (call_expression "FUN_00074230(local_540,pcVar34,uVar35)" identifier (argument_list "(local_540,pcVar34,uVar35)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }" if (parenthesized_expression "(local_4c4 != local_538)" ( (binary_expression "local_4c4 != local_538" identifier != identifier) )) (compound_statement "{\n    CRYPTO_free(local_4c4);\n  }" { (expression_statement "CRYPTO_free(local_4c4);" (call_expression "CRYPTO_free(local_4c4)" identifier (argument_list "(local_4c4)" ( identifier ))) ;) })) (if_statement "if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }" if (parenthesized_expression "(local_4c0 != local_534)" ( (binary_expression "local_4c0 != local_534" identifier != identifier) )) (compound_statement "{\n    CRYPTO_free(local_4c0);\n  }" { (expression_statement "CRYPTO_free(local_4c0);" (call_expression "CRYPTO_free(local_4c0)" identifier (argument_list "(local_4c0)" ( identifier ))) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0007d010();\n  }" { (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_564;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (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 * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != BOOL) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (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 , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;)) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (string_literal " string_content ") )))) ;) (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 ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (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 (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") )))) ;) (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 ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (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 ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") ))))) ;) (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 ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (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 (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_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 *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })))))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) }))) }))))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (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 == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (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 = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })))))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , 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 = (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)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , 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 = (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (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 = 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 = (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)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_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 *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != BOOL) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_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 *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (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 = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT , IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (for_statement for ( ; (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT < IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ")) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , IDENT )))) , (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_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 *)) ) 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)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })))) (labeled_statement statement_identifier : (expression_statement (assignment_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 *)) ) 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)) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_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 *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") )))) ;) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) (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 *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT < IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (for_statement for ( (assignment_expression IDENT = LIT) ; (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT < IDENT))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = (call_expression IDENT (argument_list ( )))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (pointer_expression & (field_expression IDENT . field_identifier)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) , IDENT , (string_literal " string_content ") , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (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 *)) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (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 = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , 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 *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (string_literal " string_content ") , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) })) })) })) })) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (string_literal " string_content ") , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , LIT , 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 = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_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 *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) }))) (labeled_statement statement_identifier : (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) }))) (goto_statement goto statement_identifier ;) })) (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)) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_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 *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (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 = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (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 , (string_literal " string_content escape_sequence ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (labeled_statement statement_identifier : (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 (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT . field_identifier)) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , (string_literal " string_content ") ))))) ;) (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 (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (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 = LIT) ;) }))) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) ;) (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) ;) (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , (pointer_expression & (field_expression IDENT . field_identifier)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) , IDENT , (string_literal " string_content ") , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , LIT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_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 *)) ) 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)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "uint FUN_0004e210(undefined4 param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  bool bVar7;\n  EVP_CIPHER *pEVar8;\n  char **ppcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  BIO *in;\n  ushort **ppuVar13;\n  char *ptr;\n  BIO *pBVar14;\n  ASN1_INTEGER *pAVar15;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar16;\n  byte *pbVar17;\n  int iVar18;\n  ulong uVar19;\n  undefined **ppuVar20;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar21;\n  ulong uVar22;\n  X509_NAME *pXVar23;\n  EVP_PKEY *pEVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  uint uVar27;\n  stack_st_CONF_VALUE *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar28;\n  int set;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 uVar33;\n  char *pcVar34;\n  undefined4 uVar35;\n  stack_st_CONF_VALUE *psVar36;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  int local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  undefined4 local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  int local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  int local_51c;\n  char *local_518;\n  int local_514;\n  int local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  int local_4ec;\n  BIO *local_4d0;\n  int local_4cc;\n  void *local_4c8;\n  char *local_4c4;\n  char *local_4c0;\n  int local_4bc;\n  undefined *local_4b8;\n  undefined *local_4b4;\n  undefined *local_4b0;\n  long local_4ac;\n  ulong local_4a8;\n  long local_4a4;\n  X509V3_CTX local_4a0;\n  stack_st_CONF_VALUE local_484 [5];\n  uchar local_420 [1024];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar32 = 0;\n  bVar31 = false;\n  uStack_14 = 0x4e220;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4d0 = (BIO *)0x0;\n  local_4cc = 0;\n  local_560 = (BIO *)DAT_000c4598;\n  local_4c8 = (void *)0x0;\n  local_4c4 = (char *)0x0;\n  local_4c0 = (char *)0x0;\n  local_4bc = -1;\n  local_4b8 = (undefined *)0x8005;\n  local_4b4 = (undefined *)0x8005;\n  local_4b0 = (undefined *)0x8005;\n  local_4ac = -1;\n  local_4a8 = 0;\n  pEVar8 = EVP_des_ede3_cbc();\n  ppuVar20 = &PTR_DAT_000bb480;\n  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);\n  pcVar34 = "../apps/req.c";\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = 0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = 0;\n  local_50c = (char *)0x0;\n  local_52c = 0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = 0;\n  local_54c = 0;\n  local_558 = 0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = 0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar10 = FUN_00078780();\n  if (iVar10 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar10 = FUN_00079110();\n  if (iVar10 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }\n  pBVar14 = local_4d0;\n  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);\n  bVar29 = bVar31;\n  if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }\n  pcVar11 = (char *)&local_4c4;\n  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);\n  if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }\n  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;\n  if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }\n  iVar10 = FUN_00073330(DAT_000c4a98);\n  if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar11 = pcVar11 + 1;\n  cVar1 = *pcVar11;\n  if (cVar1 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);\n  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;\n  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);\n  if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);\n  if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }\n  *pcVar11 = '\0';\n  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);\n  if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar14;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";\n  pcVar11 = (char *)ppcVar9;\nLAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }\n  if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);\n  ERR_print_errors(DAT_000c458c);\nLAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);\nLAB_0004e57b:\n  NCONF_free(DAT_000c4a98);\n  NCONF_free(DAT_000c4a94);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)local_4d0);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free(local_544);\n  uVar35 = 0x3cc;\n  CRYPTO_free(local_4c8);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  FUN_00074230(local_540,pcVar34,uVar35);\n  if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }\n  if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_564;\n}" (type_identifier "uint") (function_declarator "FUN_0004e210(undefined4 param_1,undefined4 *param_2)" (identifier "FUN_0004e210") (parameter_list "(undefined4 param_1,undefined4 *param_2)" (( "(") (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"))) () ")"))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  undefined *puVar6;\n  bool bVar7;\n  EVP_CIPHER *pEVar8;\n  char **ppcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  BIO *in;\n  ushort **ppuVar13;\n  char *ptr;\n  BIO *pBVar14;\n  ASN1_INTEGER *pAVar15;\n  BIO_METHOD *type;\n  stack_st_CONF_VALUE *psVar16;\n  byte *pbVar17;\n  int iVar18;\n  ulong uVar19;\n  undefined **ppuVar20;\n  stack_st_CONF_VALUE *section;\n  stack_st_CONF_VALUE *psVar21;\n  ulong uVar22;\n  X509_NAME *pXVar23;\n  EVP_PKEY *pEVar24;\n  undefined4 uVar25;\n  undefined4 *puVar26;\n  uint uVar27;\n  stack_st_CONF_VALUE *extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  stack_st_CONF_VALUE *extraout_EDX;\n  undefined4 extraout_EDX_00;\n  undefined4 extraout_EDX_01;\n  undefined4 extraout_EDX_02;\n  byte *pbVar28;\n  int set;\n  X509 *x;\n  X509_REQ *x_00;\n  int in_GS_OFFSET;\n  bool bVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 uVar33;\n  char *pcVar34;\n  undefined4 uVar35;\n  stack_st_CONF_VALUE *psVar36;\n  uint local_598;\n  uint local_594;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  EVP_PKEY *local_570;\n  uint local_56c;\n  uint local_564;\n  BIO *local_560;\n  int local_55c;\n  int local_558;\n  ASN1_INTEGER *local_554;\n  BIO *local_550;\n  int local_54c;\n  BIO *local_548;\n  ENGINE *local_544;\n  undefined4 local_540;\n  uint local_53c;\n  char *local_538;\n  char *local_534;\n  int local_530;\n  int local_52c;\n  char **local_528;\n  stack_st_CONF_VALUE *local_524;\n  uint local_520;\n  int local_51c;\n  char *local_518;\n  int local_514;\n  int local_510;\n  char *local_50c;\n  EVP_CIPHER *local_500;\n  int local_4ec;\n  BIO *local_4d0;\n  int local_4cc;\n  void *local_4c8;\n  char *local_4c4;\n  char *local_4c0;\n  int local_4bc;\n  undefined *local_4b8;\n  undefined *local_4b4;\n  undefined *local_4b0;\n  long local_4ac;\n  ulong local_4a8;\n  long local_4a4;\n  X509V3_CTX local_4a0;\n  stack_st_CONF_VALUE local_484 [5];\n  uchar local_420 [1024];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar32 = 0;\n  bVar31 = false;\n  uStack_14 = 0x4e220;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_4d0 = (BIO *)0x0;\n  local_4cc = 0;\n  local_560 = (BIO *)DAT_000c4598;\n  local_4c8 = (void *)0x0;\n  local_4c4 = (char *)0x0;\n  local_4c0 = (char *)0x0;\n  local_4bc = -1;\n  local_4b8 = (undefined *)0x8005;\n  local_4b4 = (undefined *)0x8005;\n  local_4b0 = (undefined *)0x8005;\n  local_4ac = -1;\n  local_4a8 = 0;\n  pEVar8 = EVP_des_ede3_cbc();\n  ppuVar20 = &PTR_DAT_000bb480;\n  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);\n  pcVar34 = "../apps/req.c";\n  local_588 = 0x1001;\n  bVar4 = false;\n  local_56c = 0;\n  local_584 = 0;\n  bVar5 = false;\n  bVar3 = false;\n  local_594 = 0;\n  local_580 = 0;\n  local_578 = 0;\n  local_57c = 0;\n  local_520 = 0;\n  bVar2 = false;\n  local_530 = 0;\n  local_53c = 0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_518 = (char *)0x0;\n  local_51c = 0;\n  local_524 = (stack_st_CONF_VALUE *)0x0;\n  local_548 = (BIO *)0x0;\n  local_534 = (char *)0x0;\n  local_514 = 0;\n  local_50c = (char *)0x0;\n  local_52c = 0;\n  local_528 = (char **)0x0;\n  local_550 = (BIO *)0x0;\n  local_510 = 0;\n  local_54c = 0;\n  local_558 = 0;\n  local_55c = 0;\n  local_544 = (ENGINE *)0x0;\n  local_540 = 0;\n  local_554 = (ASN1_INTEGER *)0x0;\nLAB_0004e430:\n  iVar10 = FUN_00078780();\n  if (iVar10 != 0) goto LAB_0004e43d;\nLAB_0004e6f0:\n  iVar10 = FUN_00079110();\n  if (iVar10 != 0) goto LAB_0004e51a;\n  local_564 = local_53c ^ 1;\n  if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }\n  pBVar14 = local_4d0;\n  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);\n  bVar29 = bVar31;\n  if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }\n  pcVar11 = (char *)&local_4c4;\n  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);\n  if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }\n  if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }\n  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;\n  if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }\n  iVar10 = FUN_00073330(DAT_000c4a98);\n  if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }\n  goto LAB_0004eb16;\nLAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }\n  local_520 = 1;\n  goto LAB_0004e430;\nLAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();\n  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;\n  pcVar11 = pcVar11 + 1;\n  cVar1 = *pcVar11;\n  if (cVar1 == '\0') goto LAB_0004e51a;\n  goto LAB_0004ea31;\nLAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);\n  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;\n  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);\n  if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }\n  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);\n  if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }\n  if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }\n  *pcVar11 = '\0';\n  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);\n  if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }\n  local_560 = pBVar14;\n  CRYPTO_free(local_560);\nLAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_564 = 1;\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\nLAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";\n  pcVar11 = (char *)ppcVar9;\nLAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n  local_534 = (char *)0x0;\n  local_538 = (char *)0x0;\nLAB_0004e54e:\n  local_564 = 1;\n  local_570 = (EVP_PKEY *)0x0;\n  x_00 = (X509_REQ *)0x0;\n  x = (X509 *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\n  goto LAB_0004e56a;\n  while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }\n  if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }\nLAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }\n  if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }\n  goto LAB_0004e56a;\n  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }\n  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);\n  ERR_print_errors(DAT_000c458c);\nLAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);\nLAB_0004f82c:\n  local_564 = 1;\n  x = (X509 *)0x0;\n  local_570 = (EVP_PKEY *)0x0;\n  local_560 = (BIO *)0x0;\n  local_548 = (BIO *)0x0;\nLAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);\nLAB_0004e57b:\n  NCONF_free(DAT_000c4a98);\n  NCONF_free(DAT_000c4a94);\n  BIO_free(local_550);\n  BIO_free(local_548);\n  BIO_free_all(local_560);\n  EVP_PKEY_free((EVP_PKEY *)local_4d0);\n  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n  OPENSSL_sk_free(local_55c);\n  OPENSSL_sk_free(local_558);\n  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);\n  OPENSSL_LH_free(local_54c);\n  ENGINE_free(local_544);\n  uVar35 = 0x3cc;\n  CRYPTO_free(local_4c8);\n  X509_REQ_free(x_00);\n  X509_free(x);\n  ASN1_INTEGER_free(local_554);\n  FUN_00074230(local_540,pcVar34,uVar35);\n  if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }\n  if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_564;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "EVP_CIPHER *pEVar8;" (type_identifier "EVP_CIPHER") (pointer_declarator "*pEVar8" (* "*") (identifier "pEVar8")) (; ";")) (declaration "char **ppcVar9;" (primitive_type "char") (pointer_declarator "**ppcVar9" (* "*") (pointer_declarator "*ppcVar9" (* "*") (identifier "ppcVar9"))) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "BIO *in;" (type_identifier "BIO") (pointer_declarator "*in" (* "*") (identifier "in")) (; ";")) (declaration "ushort **ppuVar13;" (type_identifier "ushort") (pointer_declarator "**ppuVar13" (* "*") (pointer_declarator "*ppuVar13" (* "*") (identifier "ppuVar13"))) (; ";")) (declaration "char *ptr;" (primitive_type "char") (pointer_declarator "*ptr" (* "*") (identifier "ptr")) (; ";")) (declaration "BIO *pBVar14;" (type_identifier "BIO") (pointer_declarator "*pBVar14" (* "*") (identifier "pBVar14")) (; ";")) (declaration "ASN1_INTEGER *pAVar15;" (type_identifier "ASN1_INTEGER") (pointer_declarator "*pAVar15" (* "*") (identifier "pAVar15")) (; ";")) (declaration "BIO_METHOD *type;" (type_identifier "BIO_METHOD") (pointer_declarator "*type" (* "*") (identifier "type")) (; ";")) (declaration "stack_st_CONF_VALUE *psVar16;" (type_identifier "stack_st_CONF_VALUE") (pointer_declarator "*psVar16" (* "*") (identifier "psVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "ulong uVar19;" (type_identifier "ulong") (identifier "uVar19") (; ";")) (declaration "undefined **ppuVar20;" (type_identifier "undefined") (pointer_declarator "**ppuVar20" (* "*") (pointer_declarator "*ppuVar20" (* "*") (identifier "ppuVar20"))) (; ";")) (declaration "stack_st_CONF_VALUE *section;" (type_identifier "stack_st_CONF_VALUE") (pointer_declarator "*section" (* "*") (identifier "section")) (; ";")) (declaration "stack_st_CONF_VALUE *psVar21;" (type_identifier "stack_st_CONF_VALUE") (pointer_declarator "*psVar21" (* "*") (identifier "psVar21")) (; ";")) (declaration "ulong uVar22;" (type_identifier "ulong") (identifier "uVar22") (; ";")) (declaration "X509_NAME *pXVar23;" (type_identifier "X509_NAME") (pointer_declarator "*pXVar23" (* "*") (identifier "pXVar23")) (; ";")) (declaration "EVP_PKEY *pEVar24;" (type_identifier "EVP_PKEY") (pointer_declarator "*pEVar24" (* "*") (identifier "pEVar24")) (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "undefined4 *puVar26;" (type_identifier "undefined4") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "stack_st_CONF_VALUE *extraout_ECX;" (type_identifier "stack_st_CONF_VALUE") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "undefined4 extraout_ECX_00;" (type_identifier "undefined4") (identifier "extraout_ECX_00") (; ";")) (declaration "undefined4 extraout_ECX_01;" (type_identifier "undefined4") (identifier "extraout_ECX_01") (; ";")) (declaration "stack_st_CONF_VALUE *extraout_EDX;" (type_identifier "stack_st_CONF_VALUE") (pointer_declarator "*extraout_EDX" (* "*") (identifier "extraout_EDX")) (; ";")) (declaration "undefined4 extraout_EDX_00;" (type_identifier "undefined4") (identifier "extraout_EDX_00") (; ";")) (declaration "undefined4 extraout_EDX_01;" (type_identifier "undefined4") (identifier "extraout_EDX_01") (; ";")) (declaration "undefined4 extraout_EDX_02;" (type_identifier "undefined4") (identifier "extraout_EDX_02") (; ";")) (declaration "byte *pbVar28;" (type_identifier "byte") (pointer_declarator "*pbVar28" (* "*") (identifier "pbVar28")) (; ";")) (declaration "int set;" (primitive_type "int") (identifier "set") (; ";")) (declaration "X509 *x;" (type_identifier "X509") (pointer_declarator "*x" (* "*") (identifier "x")) (; ";")) (declaration "X509_REQ *x_00;" (type_identifier "X509_REQ") (pointer_declarator "*x_00" (* "*") (identifier "x_00")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar29;" (primitive_type "bool") (identifier "bVar29") (; ";")) (declaration "bool bVar30;" (primitive_type "bool") (identifier "bVar30") (; ";")) (declaration "bool bVar31;" (primitive_type "bool") (identifier "bVar31") (; ";")) (declaration "byte bVar32;" (type_identifier "byte") (identifier "bVar32") (; ";")) (declaration "undefined8 uVar33;" (type_identifier "undefined8") (identifier "uVar33") (; ";")) (declaration "char *pcVar34;" (primitive_type "char") (pointer_declarator "*pcVar34" (* "*") (identifier "pcVar34")) (; ";")) (declaration "undefined4 uVar35;" (type_identifier "undefined4") (identifier "uVar35") (; ";")) (declaration "stack_st_CONF_VALUE *psVar36;" (type_identifier "stack_st_CONF_VALUE") (pointer_declarator "*psVar36" (* "*") (identifier "psVar36")) (; ";")) (declaration "uint local_598;" (type_identifier "uint") (identifier "local_598") (; ";")) (declaration "uint local_594;" (type_identifier "uint") (identifier "local_594") (; ";")) (declaration "int local_588;" (primitive_type "int") (identifier "local_588") (; ";")) (declaration "uint local_584;" (type_identifier "uint") (identifier "local_584") (; ";")) (declaration "uint local_580;" (type_identifier "uint") (identifier "local_580") (; ";")) (declaration "undefined4 local_57c;" (type_identifier "undefined4") (identifier "local_57c") (; ";")) (declaration "uint local_578;" (type_identifier "uint") (identifier "local_578") (; ";")) (declaration "EVP_PKEY *local_570;" (type_identifier "EVP_PKEY") (pointer_declarator "*local_570" (* "*") (identifier "local_570")) (; ";")) (declaration "uint local_56c;" (type_identifier "uint") (identifier "local_56c") (; ";")) (declaration "uint local_564;" (type_identifier "uint") (identifier "local_564") (; ";")) (declaration "BIO *local_560;" (type_identifier "BIO") (pointer_declarator "*local_560" (* "*") (identifier "local_560")) (; ";")) (declaration "int local_55c;" (primitive_type "int") (identifier "local_55c") (; ";")) (declaration "int local_558;" (primitive_type "int") (identifier "local_558") (; ";")) (declaration "ASN1_INTEGER *local_554;" (type_identifier "ASN1_INTEGER") (pointer_declarator "*local_554" (* "*") (identifier "local_554")) (; ";")) (declaration "BIO *local_550;" (type_identifier "BIO") (pointer_declarator "*local_550" (* "*") (identifier "local_550")) (; ";")) (declaration "int local_54c;" (primitive_type "int") (identifier "local_54c") (; ";")) (declaration "BIO *local_548;" (type_identifier "BIO") (pointer_declarator "*local_548" (* "*") (identifier "local_548")) (; ";")) (declaration "ENGINE *local_544;" (type_identifier "ENGINE") (pointer_declarator "*local_544" (* "*") (identifier "local_544")) (; ";")) (declaration "undefined4 local_540;" (type_identifier "undefined4") (identifier "local_540") (; ";")) (declaration "uint local_53c;" (type_identifier "uint") (identifier "local_53c") (; ";")) (declaration "char *local_538;" (primitive_type "char") (pointer_declarator "*local_538" (* "*") (identifier "local_538")) (; ";")) (declaration "char *local_534;" (primitive_type "char") (pointer_declarator "*local_534" (* "*") (identifier "local_534")) (; ";")) (declaration "int local_530;" (primitive_type "int") (identifier "local_530") (; ";")) (declaration "int local_52c;" (primitive_type "int") (identifier "local_52c") (; ";")) (declaration "char **local_528;" (primitive_type "char") (pointer_declarator "**local_528" (* "*") (pointer_declarator "*local_528" (* "*") (identifier "local_528"))) (; ";")) (declaration "stack_st_CONF_VALUE *local_524;" (type_identifier "stack_st_CONF_VALUE") (pointer_declarator "*local_524" (* "*") (identifier "local_524")) (; ";")) (declaration "uint local_520;" (type_identifier "uint") (identifier "local_520") (; ";")) (declaration "int local_51c;" (primitive_type "int") (identifier "local_51c") (; ";")) (declaration "char *local_518;" (primitive_type "char") (pointer_declarator "*local_518" (* "*") (identifier "local_518")) (; ";")) (declaration "int local_514;" (primitive_type "int") (identifier "local_514") (; ";")) (declaration "int local_510;" (primitive_type "int") (identifier "local_510") (; ";")) (declaration "char *local_50c;" (primitive_type "char") (pointer_declarator "*local_50c" (* "*") (identifier "local_50c")) (; ";")) (declaration "EVP_CIPHER *local_500;" (type_identifier "EVP_CIPHER") (pointer_declarator "*local_500" (* "*") (identifier "local_500")) (; ";")) (declaration "int local_4ec;" (primitive_type "int") (identifier "local_4ec") (; ";")) (declaration "BIO *local_4d0;" (type_identifier "BIO") (pointer_declarator "*local_4d0" (* "*") (identifier "local_4d0")) (; ";")) (declaration "int local_4cc;" (primitive_type "int") (identifier "local_4cc") (; ";")) (declaration "void *local_4c8;" (primitive_type "void") (pointer_declarator "*local_4c8" (* "*") (identifier "local_4c8")) (; ";")) (declaration "char *local_4c4;" (primitive_type "char") (pointer_declarator "*local_4c4" (* "*") (identifier "local_4c4")) (; ";")) (declaration "char *local_4c0;" (primitive_type "char") (pointer_declarator "*local_4c0" (* "*") (identifier "local_4c0")) (; ";")) (declaration "int local_4bc;" (primitive_type "int") (identifier "local_4bc") (; ";")) (declaration "undefined *local_4b8;" (type_identifier "undefined") (pointer_declarator "*local_4b8" (* "*") (identifier "local_4b8")) (; ";")) (declaration "undefined *local_4b4;" (type_identifier "undefined") (pointer_declarator "*local_4b4" (* "*") (identifier "local_4b4")) (; ";")) (declaration "undefined *local_4b0;" (type_identifier "undefined") (pointer_declarator "*local_4b0" (* "*") (identifier "local_4b0")) (; ";")) (declaration "long local_4ac;" (sized_type_specifier "long" (long "long")) (identifier "local_4ac") (; ";")) (declaration "ulong local_4a8;" (type_identifier "ulong") (identifier "local_4a8") (; ";")) (declaration "long local_4a4;" (sized_type_specifier "long" (long "long")) (identifier "local_4a4") (; ";")) (declaration "X509V3_CTX local_4a0;" (type_identifier "X509V3_CTX") (identifier "local_4a0") (; ";")) (declaration "stack_st_CONF_VALUE local_484 [5];" (type_identifier "stack_st_CONF_VALUE") (array_declarator "local_484 [5]" (identifier "local_484") ([ "[") (number_literal "5") (] "]")) (; ";")) (declaration "uchar local_420 [1024];" (type_identifier "uchar") (array_declarator "local_420 [1024]" (identifier "local_420") ([ "[") (number_literal "1024") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar32 = 0;" (assignment_expression "bVar32 = 0" (identifier "bVar32") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" (identifier "bVar31") (= "=") (false "false")) (; ";")) (expression_statement "uStack_14 = 0x4e220;" (assignment_expression "uStack_14 = 0x4e220" (identifier "uStack_14") (= "=") (number_literal "0x4e220")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_4d0 = (BIO *)0x0;" (assignment_expression "local_4d0 = (BIO *)0x0" (identifier "local_4d0") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4cc = 0;" (assignment_expression "local_4cc = 0" (identifier "local_4cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_560 = (BIO *)DAT_000c4598;" (assignment_expression "local_560 = (BIO *)DAT_000c4598" (identifier "local_560") (= "=") (cast_expression "(BIO *)DAT_000c4598" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_000c4598"))) (; ";")) (expression_statement "local_4c8 = (void *)0x0;" (assignment_expression "local_4c8 = (void *)0x0" (identifier "local_4c8") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4c4 = (char *)0x0;" (assignment_expression "local_4c4 = (char *)0x0" (identifier "local_4c4") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4c0 = (char *)0x0;" (assignment_expression "local_4c0 = (char *)0x0" (identifier "local_4c0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4bc = -1;" (assignment_expression "local_4bc = -1" (identifier "local_4bc") (= "=") (number_literal "-1")) (; ";")) (expression_statement "local_4b8 = (undefined *)0x8005;" (assignment_expression "local_4b8 = (undefined *)0x8005" (identifier "local_4b8") (= "=") (cast_expression "(undefined *)0x8005" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8005"))) (; ";")) (expression_statement "local_4b4 = (undefined *)0x8005;" (assignment_expression "local_4b4 = (undefined *)0x8005" (identifier "local_4b4") (= "=") (cast_expression "(undefined *)0x8005" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8005"))) (; ";")) (expression_statement "local_4b0 = (undefined *)0x8005;" (assignment_expression "local_4b0 = (undefined *)0x8005" (identifier "local_4b0") (= "=") (cast_expression "(undefined *)0x8005" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8005"))) (; ";")) (expression_statement "local_4ac = -1;" (assignment_expression "local_4ac = -1" (identifier "local_4ac") (= "=") (number_literal "-1")) (; ";")) (expression_statement "local_4a8 = 0;" (assignment_expression "local_4a8 = 0" (identifier "local_4a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "pEVar8 = EVP_des_ede3_cbc();" (assignment_expression "pEVar8 = EVP_des_ede3_cbc()" (identifier "pEVar8") (= "=") (call_expression "EVP_des_ede3_cbc()" (identifier "EVP_des_ede3_cbc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppuVar20 = &PTR_DAT_000bb480;" (assignment_expression "ppuVar20 = &PTR_DAT_000bb480" (identifier "ppuVar20") (= "=") (pointer_expression "&PTR_DAT_000bb480" (& "&") (identifier "PTR_DAT_000bb480"))) (; ";")) (expression_statement "ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);" (assignment_expression "ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" (identifier "ppcVar9") (= "=") (cast_expression "(char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480)" (identifier "FUN_00077e50") (argument_list "(param_1,param_2,&PTR_DAT_000bb480)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&PTR_DAT_000bb480" (& "&") (identifier "PTR_DAT_000bb480")) () ")"))))) (; ";")) (expression_statement "pcVar34 = "../apps/req.c";" (assignment_expression "pcVar34 = "../apps/req.c"" (identifier "pcVar34") (= "=") (string_literal ""../apps/req.c"" (" """) (string_content "../apps/req.c") (" """))) (; ";")) (expression_statement "local_588 = 0x1001;" (assignment_expression "local_588 = 0x1001" (identifier "local_588") (= "=") (number_literal "0x1001")) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "local_56c = 0;" (assignment_expression "local_56c = 0" (identifier "local_56c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_584 = 0;" (assignment_expression "local_584 = 0" (identifier "local_584") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "local_594 = 0;" (assignment_expression "local_594 = 0" (identifier "local_594") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_580 = 0;" (assignment_expression "local_580 = 0" (identifier "local_580") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_578 = 0;" (assignment_expression "local_578 = 0" (identifier "local_578") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_57c = 0;" (assignment_expression "local_57c = 0" (identifier "local_57c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_520 = 0;" (assignment_expression "local_520 = 0" (identifier "local_520") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "local_530 = 0;" (assignment_expression "local_530 = 0" (identifier "local_530") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_53c = 0;" (assignment_expression "local_53c = 0" (identifier "local_53c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_518 = (char *)0x0;" (assignment_expression "local_518 = (char *)0x0" (identifier "local_518") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" (identifier "local_51c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_524 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)0x0" (identifier "local_524") (= "=") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" (identifier "local_534") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" (identifier "local_514") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50c = (char *)0x0;" (assignment_expression "local_50c = (char *)0x0" (identifier "local_50c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_52c = 0;" (assignment_expression "local_52c = 0" (identifier "local_52c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_528 = (char **)0x0;" (assignment_expression "local_528 = (char **)0x0" (identifier "local_528") (= "=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_550 = (BIO *)0x0;" (assignment_expression "local_550 = (BIO *)0x0" (identifier "local_550") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_510 = 0;" (assignment_expression "local_510 = 0" (identifier "local_510") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54c = 0;" (assignment_expression "local_54c = 0" (identifier "local_54c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_558 = 0;" (assignment_expression "local_558 = 0" (identifier "local_558") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_55c = 0;" (assignment_expression "local_55c = 0" (identifier "local_55c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_544 = (ENGINE *)0x0;" (assignment_expression "local_544 = (ENGINE *)0x0" (identifier "local_544") (= "=") (cast_expression "(ENGINE *)0x0" (( "(") (type_descriptor "ENGINE *" (type_identifier "ENGINE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_540 = 0;" (assignment_expression "local_540 = 0" (identifier "local_540") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_554 = (ASN1_INTEGER *)0x0;" (assignment_expression "local_554 = (ASN1_INTEGER *)0x0" (identifier "local_554") (= "=") (cast_expression "(ASN1_INTEGER *)0x0" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0004e430:\n  iVar10 = FUN_00078780();" (statement_identifier "LAB_0004e430") (: ":") (expression_statement "iVar10 = FUN_00078780();" (assignment_expression "iVar10 = FUN_00078780()" (identifier "iVar10") (= "=") (call_expression "FUN_00078780()" (identifier "FUN_00078780") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar10 != 0) goto LAB_0004e43d;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e43d;" (goto "goto") (statement_identifier "LAB_0004e43d") (; ";"))) (labeled_statement "LAB_0004e6f0:\n  iVar10 = FUN_00079110();" (statement_identifier "LAB_0004e6f0") (: ":") (expression_statement "iVar10 = FUN_00079110();" (assignment_expression "iVar10 = FUN_00079110()" (identifier "iVar10") (= "=") (call_expression "FUN_00079110()" (identifier "FUN_00079110") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar10 != 0) goto LAB_0004e51a;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";"))) (expression_statement "local_564 = local_53c ^ 1;" (assignment_expression "local_564 = local_53c ^ 1" (identifier "local_564") (= "=") (binary_expression "local_53c ^ 1" (identifier "local_53c") (^ "^") (number_literal "1"))) (; ";")) (if_statement "if ((local_530 != 0) && (local_564 != 0)) {\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }" (if "if") (parenthesized_expression "((local_530 != 0) && (local_564 != 0))" (( "(") (binary_expression "(local_530 != 0) && (local_564 != 0)" (parenthesized_expression "(local_530 != 0)" (( "(") (binary_expression "local_530 != 0" (identifier "local_530") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_564 != 0)" (( "(") (binary_expression "local_564 != 0" (identifier "local_564") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");\n  }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");" (call_expression "BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Ignoring -days; not generating a certificate\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Ignoring -days; not generating a certificate\n"" (" """) (string_content "Ignoring -days; not generating a certificate") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pBVar14 = local_4d0;" (assignment_expression "pBVar14 = local_4d0" (identifier "pBVar14") (= "=") (identifier "local_4d0")) (; ";")) (expression_statement "bVar7 = (bool)(local_52c == 0 & (byte)local_53c);" (assignment_expression "bVar7 = (bool)(local_52c == 0 & (byte)local_53c)" (identifier "bVar7") (= "=") (cast_expression "(bool)(local_52c == 0 & (byte)local_53c)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(local_52c == 0 & (byte)local_53c)" (( "(") (binary_expression "local_52c == 0 & (byte)local_53c" (binary_expression "local_52c == 0" (identifier "local_52c") (== "==") (number_literal "0")) (& "&") (cast_expression "(byte)local_53c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_53c"))) () ")")))) (; ";")) (expression_statement "bVar29 = bVar31;" (assignment_expression "bVar29 = bVar31" (identifier "bVar29") (= "=") (identifier "bVar31")) (; ";")) (if_statement "if (bVar7 != false) {\n    bVar31 = bVar7;\n    bVar29 = true;\n  }" (if "if") (parenthesized_expression "(bVar7 != false)" (( "(") (binary_expression "bVar7 != false" (identifier "bVar7") (!= "!=") (false "false")) () ")")) (compound_statement "{\n    bVar31 = bVar7;\n    bVar29 = true;\n  }" ({ "{") (expression_statement "bVar31 = bVar7;" (assignment_expression "bVar31 = bVar7" (identifier "bVar31") (= "=") (identifier "bVar7")) (; ";")) (expression_statement "bVar29 = true;" (assignment_expression "bVar29 = true" (identifier "bVar29") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "pcVar11 = (char *)&local_4c4;" (assignment_expression "pcVar11 = (char *)&local_4c4" (identifier "pcVar11") (= "=") (cast_expression "(char *)&local_4c4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_4c4" (& "&") (identifier "local_4c4")))) (; ";")) (expression_statement "iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);" (assignment_expression "iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0)" (identifier "iVar10") (= "=") (call_expression "FUN_00075b40(local_534,local_548,pcVar11,&local_4c0)" (identifier "FUN_00075b40") (argument_list "(local_534,local_548,pcVar11,&local_4c0)" (( "(") (identifier "local_534") (, ",") (identifier "local_548") (, ",") (identifier "pcVar11") (, ",") (pointer_expression "&local_4c0" (& "&") (identifier "local_4c0")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar12 = "Error getting passwords\n";\n    goto LAB_0004e52c;\n  }" ({ "{") (expression_statement "pcVar12 = "Error getting passwords\n";" (assignment_expression "pcVar12 = "Error getting passwords\n"" (identifier "pcVar12") (= "=") (string_literal ""Error getting passwords\n"" (" """) (string_content "Error getting passwords") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_0004e52c;" (goto "goto") (statement_identifier "LAB_0004e52c") (; ";")) (} "}"))) (if_statement "if (bVar2) {\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }\n  else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n    pcVar11 = (char *)local_560;\n    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }\n  }" ({ "{") (expression_statement "pcVar11 = (char *)local_560;" (assignment_expression "pcVar11 = (char *)local_560" (identifier "pcVar11") (= "=") (cast_expression "(char *)local_560" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_560"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);" (call_expression "BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Using configuration from %s\n",local_560)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Using configuration from %s\n"" (" """) (string_content "Using configuration from %s") (escape_sequence "\n") (" """)) (, ",") (identifier "local_560") () ")"))) (; ";")) (expression_statement "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);" (assignment_expression "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560)" (identifier "DAT_000c4a98") (= "=") (cast_expression "(CONF *)FUN_00075fc0(local_560)" (( "(") (type_descriptor "CONF *" (type_identifier "CONF") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00075fc0(local_560)" (identifier "FUN_00075fc0") (argument_list "(local_560)" (( "(") (identifier "local_560") () ")"))))) (; ";")) (if_statement "if (local_550 != (BIO *)0x0) {\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }" (if "if") (parenthesized_expression "(local_550 != (BIO *)0x0)" (( "(") (binary_expression "local_550 != (BIO *)0x0" (identifier "local_550") (!= "!=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);\n      goto LAB_0004e7d1;\n    }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);" (call_expression "BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Using additional configuration from command line\n",pcVar11)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Using additional configuration from command line\n"" (" """) (string_content "Using additional configuration from command line") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar11") () ")"))) (; ";")) (goto_statement "goto LAB_0004e7d1;" (goto "goto") (statement_identifier "LAB_0004e7d1") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" (else "else") (compound_statement "{\n    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);\n    if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }\n  }" ({ "{") (expression_statement "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);" (assignment_expression "DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560)" (identifier "DAT_000c4a98") (= "=") (cast_expression "(CONF *)FUN_00075fc0(local_560)" (( "(") (type_descriptor "CONF *" (type_identifier "CONF") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00075fc0(local_560)" (identifier "FUN_00075fc0") (argument_list "(local_560)" (( "(") (identifier "local_560") () ")"))))) (; ";")) (if_statement "if (local_550 != (BIO *)0x0) {\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }" (if "if") (parenthesized_expression "(local_550 != (BIO *)0x0)" (( "(") (binary_expression "local_550 != (BIO *)0x0" (identifier "local_550") (!= "!=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);\n    }" ({ "{") (labeled_statement "LAB_0004e7d1:\n      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);" (statement_identifier "LAB_0004e7d1") (: ":") (expression_statement "DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);" (assignment_expression "DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0)" (identifier "DAT_000c4a94") (= "=") (cast_expression "(CONF *)FUN_00073230(local_550,0)" (( "(") (type_descriptor "CONF *" (type_identifier "CONF") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00073230(local_550,0)" (identifier "FUN_00073230") (argument_list "(local_550,0)" (( "(") (identifier "local_550") (, ",") (number_literal "0") () ")"))))) (; ";"))) (} "}"))) (} "}")))) (if_statement "if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))\n  goto LAB_0004eb16;" (if "if") (parenthesized_expression "(((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))" (( "(") (binary_expression "((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0)" (parenthesized_expression "((BIO *)DAT_000c4598 != local_560)" (( "(") (binary_expression "(BIO *)DAT_000c4598 != local_560" (cast_expression "(BIO *)DAT_000c4598" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_000c4598")) (!= "!=") (identifier "local_560")) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0)" (( "(") (comma_expression "iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0" (assignment_expression "iVar10 = FUN_000770d0(DAT_000c4a98)" (identifier "iVar10") (= "=") (call_expression "FUN_000770d0(DAT_000c4a98)" (identifier "FUN_000770d0") (argument_list "(DAT_000c4a98)" (( "(") (identifier "DAT_000c4a98") () ")")))) (, ",") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0004eb16;" (goto "goto") (statement_identifier "LAB_0004eb16") (; ";"))) (if_statement "if (DAT_000c4a98 != (CONF *)0x0) {\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(DAT_000c4a98 != (CONF *)0x0)" (( "(") (binary_expression "DAT_000c4a98 != (CONF *)0x0" (identifier "DAT_000c4a98") (!= "!=") (cast_expression "(CONF *)0x0" (( "(") (type_descriptor "CONF *" (type_identifier "CONF") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar11 = "oid_file";\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }\n  }" ({ "{") (expression_statement "pcVar11 = "oid_file";" (assignment_expression "pcVar11 = "oid_file"" (identifier "pcVar11") (= "=") (string_literal ""oid_file"" (" """) (string_content "oid_file") (" """))) (; ";")) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file")" (identifier "pcVar12") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,(char *)0x0,"oid_file")" (( "(") (identifier "DAT_000c4a98") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (string_literal ""oid_file"" (" """) (string_content "oid_file") (" """)) () ")")))) (; ";")) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      ERR_clear_error();\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" (else "else") (compound_statement "{\n      in = BIO_new_file(pcVar12,"r");\n      if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }\n    }" ({ "{") (expression_statement "in = BIO_new_file(pcVar12,"r");" (assignment_expression "in = BIO_new_file(pcVar12,"r")" (identifier "in") (= "=") (call_expression "BIO_new_file(pcVar12,"r")" (identifier "BIO_new_file") (argument_list "(pcVar12,"r")" (( "(") (identifier "pcVar12") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (if_statement "if (in != (BIO *)0x0) {\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }" (if "if") (parenthesized_expression "(in != (BIO *)0x0)" (( "(") (binary_expression "in != (BIO *)0x0" (identifier "in") (!= "!=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        OBJ_create_objects(in);\n        BIO_free(in);\n      }" ({ "{") (expression_statement "OBJ_create_objects(in);" (call_expression "OBJ_create_objects(in)" (identifier "OBJ_create_objects") (argument_list "(in)" (( "(") (identifier "in") () ")"))) (; ";")) (expression_statement "BIO_free(in);" (call_expression "BIO_free(in)" (identifier "BIO_free") (argument_list "(in)" (( "(") (identifier "in") () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar10 = FUN_00073330(DAT_000c4a98);" (assignment_expression "iVar10 = FUN_00073330(DAT_000c4a98)" (identifier "iVar10") (= "=") (call_expression "FUN_00073330(DAT_000c4a98)" (identifier "FUN_00073330") (argument_list "(DAT_000c4a98)" (( "(") (identifier "DAT_000c4a98") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }\n    if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }\n    if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }\n    local_538 = (char *)0x0;\n    if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    local_534 = (char *)0x0;\n    if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }\n    pcVar11 = "string_mask";\n    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");\n    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }\n    if (local_588 == 0x1000) goto LAB_0004f5da;\n    pcVar11 = "utf8";\n    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");\n    bVar7 = false;\n    bVar30 = pbVar17 == (byte *)0x0;\n    if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }\n    iVar10 = 4;\n    pbVar28 = &DAT_0007e7a8;\n    goto code_r0x0004f105;\n  }" ({ "{") (if_statement "if (local_4cc == 0) {\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }" (if "if") (parenthesized_expression "(local_4cc == 0)" (( "(") (binary_expression "local_4cc == 0" (identifier "local_4cc") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar11 = "default_md";\n      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");\n      if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }\n    }" ({ "{") (expression_statement "pcVar11 = "default_md";" (assignment_expression "pcVar11 = "default_md"" (identifier "pcVar11") (= "=") (string_literal ""default_md"" (" """) (string_content "default_md") (" """))) (; ";")) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md")" (identifier "pcVar12") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,"req","default_md")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","default_md")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""default_md"" (" """) (string_content "default_md") (" """)) () ")")))) (; ";")) (if_statement "if (pcVar12 == (char *)0x0) {\n        ERR_clear_error();\n      }\n      else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        ERR_clear_error();\n      }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" (else "else") (compound_statement "{\n        iVar10 = FUN_000782e0(pcVar12,&local_4cc);\n        if (iVar10 == 0) goto LAB_0004e51a;\n        local_510 = local_4cc;\n      }" ({ "{") (expression_statement "iVar10 = FUN_000782e0(pcVar12,&local_4cc);" (assignment_expression "iVar10 = FUN_000782e0(pcVar12,&local_4cc)" (identifier "iVar10") (= "=") (call_expression "FUN_000782e0(pcVar12,&local_4cc)" (identifier "FUN_000782e0") (argument_list "(pcVar12,&local_4cc)" (( "(") (identifier "pcVar12") (, ",") (pointer_expression "&local_4cc" (& "&") (identifier "local_4cc")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";"))) (expression_statement "local_510 = local_4cc;" (assignment_expression "local_510 = local_4cc" (identifier "local_510") (= "=") (identifier "local_4cc")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_528 == (char **)0x0) {\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }\n    else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" (if "if") (parenthesized_expression "(local_528 == (char **)0x0)" (( "(") (binary_expression "local_528 == (char **)0x0" (identifier "local_528") (== "==") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar11 = "x509_extensions";\n      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");\n      if (local_528 != (char **)0x0) goto LAB_0004e89e;\n      ERR_clear_error();\n    }" ({ "{") (expression_statement "pcVar11 = "x509_extensions";" (assignment_expression "pcVar11 = "x509_extensions"" (identifier "pcVar11") (= "=") (string_literal ""x509_extensions"" (" """) (string_content "x509_extensions") (" """))) (; ";")) (expression_statement "local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");" (assignment_expression "local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" (identifier "local_528") (= "=") (cast_expression "(char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "NCONF_get_string(DAT_000c4a98,"req","x509_extensions")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","x509_extensions")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""x509_extensions"" (" """) (string_content "x509_extensions") (" """)) () ")"))))) (; ";")) (if_statement "if (local_528 != (char **)0x0) goto LAB_0004e89e;" (if "if") (parenthesized_expression "(local_528 != (char **)0x0)" (( "(") (binary_expression "local_528 != (char **)0x0" (identifier "local_528") (!= "!=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004e89e;" (goto "goto") (statement_identifier "LAB_0004e89e") (; ";"))) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" (else "else") (compound_statement "{\nLAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }\n    }" ({ "{") (labeled_statement "LAB_0004e89e:\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (statement_identifier "LAB_0004e89e") (: ":") (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" (identifier "X509V3_set_ctx") (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509_CRL *)0x0" (( "(") (type_descriptor "X509_CRL *" (type_identifier "X509_CRL") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" (identifier "X509V3_set_nconf") (argument_list "(&local_4a0,DAT_000c4a98)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (identifier "DAT_000c4a98") () ")"))) (; ";")) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" (identifier "iVar10") (= "=") (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" (identifier "X509V3_EXT_add_nconf") (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0)" (( "(") (identifier "DAT_000c4a98") (, ",") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (cast_expression "(char *)local_528" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_528")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar12 = "Error Loading extension section %s\n";\n        pcVar11 = (char *)local_528;\n        goto LAB_0004e52c;\n      }" ({ "{") (expression_statement "pcVar12 = "Error Loading extension section %s\n";" (assignment_expression "pcVar12 = "Error Loading extension section %s\n"" (identifier "pcVar12") (= "=") (string_literal ""Error Loading extension section %s\n"" (" """) (string_content "Error Loading extension section %s") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "pcVar11 = (char *)local_528;" (assignment_expression "pcVar11 = (char *)local_528" (identifier "pcVar11") (= "=") (cast_expression "(char *)local_528" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_528"))) (; ";")) (goto_statement "goto LAB_0004e52c;" (goto "goto") (statement_identifier "LAB_0004e52c") (; ";")) (} "}"))) (} "}")))) (if_statement "if (DAT_000c4a94 != (CONF *)0x0) {\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_000c4a94 != (CONF *)0x0)" (( "(") (binary_expression "DAT_000c4a94 != (CONF *)0x0" (identifier "DAT_000c4a94") (!= "!=") (cast_expression "(CONF *)0x0" (( "(") (type_descriptor "CONF *" (type_identifier "CONF") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n      X509V3_set_nconf(&local_4a0,DAT_000c4a94);\n      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);\n      if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }\n    }" ({ "{") (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" (identifier "X509V3_set_ctx") (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509_CRL *)0x0" (( "(") (type_descriptor "X509_CRL *" (type_identifier "X509_CRL") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a94);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a94)" (identifier "X509V3_set_nconf") (argument_list "(&local_4a0,DAT_000c4a94)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (identifier "DAT_000c4a94") () ")"))) (; ";")) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" (identifier "iVar10") (= "=") (call_expression "X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" (identifier "X509V3_EXT_add_nconf") (argument_list "(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0)" (( "(") (identifier "DAT_000c4a94") (, ",") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (string_literal ""default"" (" """) (string_content "default") (" """)) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar12 = "Error Loading command line extensions\n";\n        goto LAB_0004e52c;\n      }" ({ "{") (expression_statement "pcVar12 = "Error Loading command line extensions\n";" (assignment_expression "pcVar12 = "Error Loading command line extensions\n"" (identifier "pcVar12") (= "=") (string_literal ""Error Loading command line extensions\n"" (" """) (string_content "Error Loading command line extensions") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_0004e52c;" (goto "goto") (statement_identifier "LAB_0004e52c") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" (identifier "local_538") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)) {\n      ERR_clear_error();\n    }" (if "if") (parenthesized_expression "((local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0))" (( "(") (binary_expression "(local_4c4 == (char *)0x0) &&\n       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)" (parenthesized_expression "(local_4c4 == (char *)0x0)" (( "(") (binary_expression "local_4c4 == (char *)0x0" (identifier "local_4c4") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0)" (( "(") (comma_expression "local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,\n       local_538 == (char *)0x0" (assignment_expression "local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password")" (identifier "local_538") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,"req","input_password")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","input_password")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""input_password"" (" """) (string_content "input_password") (" """)) () ")")))) (, ",") (comma_expression "local_4c4 = local_538,\n       local_538 == (char *)0x0" (assignment_expression "local_4c4 = local_538" (identifier "local_4c4") (= "=") (identifier "local_538")) (, ",") (binary_expression "local_538 == (char *)0x0" (identifier "local_538") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n      ERR_clear_error();\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" (identifier "local_534") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)) {\n      ERR_clear_error();\n    }" (if "if") (parenthesized_expression "((local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0))" (( "(") (binary_expression "(local_4c0 == (char *)0x0) &&\n       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)" (parenthesized_expression "(local_4c0 == (char *)0x0)" (( "(") (binary_expression "local_4c0 == (char *)0x0" (identifier "local_4c0") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0)" (( "(") (comma_expression "local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,\n       local_534 == (char *)0x0" (assignment_expression "local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password")" (identifier "local_534") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,"req","output_password")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","output_password")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""output_password"" (" """) (string_content "output_password") (" """)) () ")")))) (, ",") (comma_expression "local_4c0 = local_534,\n       local_534 == (char *)0x0" (assignment_expression "local_4c0 = local_534" (identifier "local_4c0") (= "=") (identifier "local_534")) (, ",") (binary_expression "local_534 == (char *)0x0" (identifier "local_534") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n      ERR_clear_error();\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar11 = "string_mask";" (assignment_expression "pcVar11 = "string_mask"" (identifier "pcVar11") (= "=") (string_literal ""string_mask"" (" """) (string_content "string_mask") (" """))) (; ";")) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask")" (identifier "psVar16") (= "=") (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask")" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "NCONF_get_string(DAT_000c4a98,"req","string_mask")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","string_mask")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""string_mask"" (" """) (string_content "string_mask") (" """)) () ")"))))) (; ";")) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n      ERR_clear_error();\n    }\n    else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" (if "if") (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" (identifier "psVar16") (== "==") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      ERR_clear_error();\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" (else "else") (compound_statement "{\n      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);\n      if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }\n    }" ({ "{") (expression_statement "iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);" (assignment_expression "iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16)" (identifier "iVar10") (= "=") (call_expression "ASN1_STRING_set_default_mask_asc((char *)psVar16)" (identifier "ASN1_STRING_set_default_mask_asc") (argument_list "((char *)psVar16)" (( "(") (cast_expression "(char *)psVar16" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "psVar16")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar11 = "Invalid global string mask setting %s\n";\n        goto LAB_0004fba6;\n      }" ({ "{") (expression_statement "pcVar11 = "Invalid global string mask setting %s\n";" (assignment_expression "pcVar11 = "Invalid global string mask setting %s\n"" (identifier "pcVar11") (= "=") (string_literal ""Invalid global string mask setting %s\n"" (" """) (string_content "Invalid global string mask setting %s") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_0004fba6;" (goto "goto") (statement_identifier "LAB_0004fba6") (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_588 == 0x1000) goto LAB_0004f5da;" (if "if") (parenthesized_expression "(local_588 == 0x1000)" (( "(") (binary_expression "local_588 == 0x1000" (identifier "local_588") (== "==") (number_literal "0x1000")) () ")")) (goto_statement "goto LAB_0004f5da;" (goto "goto") (statement_identifier "LAB_0004f5da") (; ";"))) (expression_statement "pcVar11 = "utf8";" (assignment_expression "pcVar11 = "utf8"" (identifier "pcVar11") (= "=") (string_literal ""utf8"" (" """) (string_content "utf8") (" """))) (; ";")) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8")" (identifier "pbVar17") (= "=") (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","utf8")" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "NCONF_get_string(DAT_000c4a98,"req","utf8")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","utf8")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""utf8"" (" """) (string_content "utf8") (" """)) () ")"))))) (; ";")) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" (identifier "bVar7") (= "=") (false "false")) (; ";")) (expression_statement "bVar30 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar30 = pbVar17 == (byte *)0x0" (identifier "bVar30") (= "=") (binary_expression "pbVar17 == (byte *)0x0" (identifier "pbVar17") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar30) {\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }" (if "if") (parenthesized_expression "(bVar30)" (( "(") (identifier "bVar30") () ")")) (compound_statement "{\n      ERR_clear_error();\n      local_4ec = 0x1001;\n      goto LAB_0004f11f;\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4ec = 0x1001;" (assignment_expression "local_4ec = 0x1001" (identifier "local_4ec") (= "=") (number_literal "0x1001")) (; ";")) (goto_statement "goto LAB_0004f11f;" (goto "goto") (statement_identifier "LAB_0004f11f") (; ";")) (} "}"))) (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" (identifier "iVar10") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar28 = &DAT_0007e7a8;" (assignment_expression "pbVar28 = &DAT_0007e7a8" (identifier "pbVar28") (= "=") (pointer_expression "&DAT_0007e7a8" (& "&") (identifier "DAT_0007e7a8"))) (; ";")) (goto_statement "goto code_r0x0004f105;" (goto "goto") (statement_identifier "code_r0x0004f105") (; ";")) (} "}"))) (goto_statement "goto LAB_0004eb16;" (goto "goto") (statement_identifier "LAB_0004eb16") (; ";")) (labeled_statement "LAB_0004e43d:\n  while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" (statement_identifier "LAB_0004e43d") (: ":") (while_statement "while (iVar10 != 0x15) {\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" (while "while") (parenthesized_expression "(iVar10 != 0x15)" (( "(") (binary_expression "iVar10 != 0x15" (identifier "iVar10") (!= "!=") (number_literal "0x15")) () ")")) (compound_statement "{\n    if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }\n    if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }\n    if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }\n    if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }\n    if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }\n    if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }\n    if (iVar10 != 0x1c) goto LAB_0004e430;\n    uVar35 = FUN_00078b30();\n    iVar10 = FUN_000738d0(&local_4a8,uVar35);\n    if (iVar10 == 0) goto LAB_0004e51a;\n    iVar10 = FUN_00078780();\n    if (iVar10 == 0) goto LAB_0004e6f0;\n  }" ({ "{") (if_statement "if (iVar10 < 0x16) {\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }" (if "if") (parenthesized_expression "(iVar10 < 0x16)" (( "(") (binary_expression "iVar10 < 0x16" (identifier "iVar10") (< "<") (number_literal "0x16")) () ")")) (compound_statement "{\n      if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }\njoined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;\n      goto LAB_0004e430;\n    }" ({ "{") (if_statement "if (iVar10 == 10) {\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }\n      else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" (if "if") (parenthesized_expression "(iVar10 == 10)" (( "(") (binary_expression "iVar10 == 10" (identifier "iVar10") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n        uVar35 = FUN_00078b30();\n        ppuVar20 = &local_4b0;\n        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);\n      }" ({ "{") (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" (identifier "uVar35") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppuVar20 = &local_4b0;" (assignment_expression "ppuVar20 = &local_4b0" (identifier "ppuVar20") (= "=") (pointer_expression "&local_4b0" (& "&") (identifier "local_4b0"))) (; ";")) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20)" (identifier "pAVar15") (= "=") (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20)" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00077fb0(uVar35,0x7be,ppuVar20)" (identifier "FUN_00077fb0") (argument_list "(uVar35,0x7be,ppuVar20)" (( "(") (identifier "uVar35") (, ",") (number_literal "0x7be") (, ",") (identifier "ppuVar20") () ")"))))) (; ";")) (} "}")) (else_clause "else if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" (else "else") (if_statement "if (iVar10 < 0xb) {\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }\n      else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" (if "if") (parenthesized_expression "(iVar10 < 0xb)" (( "(") (binary_expression "iVar10 < 0xb" (identifier "iVar10") (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\n        if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }\n        if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }\n        if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n      }" ({ "{") (if_statement "if (iVar10 == 4) {\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }" (if "if") (parenthesized_expression "(iVar10 == 4)" (( "(") (binary_expression "iVar10 == 4" (identifier "iVar10") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          uVar35 = FUN_00078b30();\n          local_540 = FUN_00074050(uVar35,0);\n          goto LAB_0004e430;\n        }" ({ "{") (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" (identifier "uVar35") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_540 = FUN_00074050(uVar35,0);" (assignment_expression "local_540 = FUN_00074050(uVar35,0)" (identifier "local_540") (= "=") (call_expression "FUN_00074050(uVar35,0)" (identifier "FUN_00074050") (argument_list "(uVar35,0)" (( "(") (identifier "uVar35") (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (4 < iVar10) {\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }" (if "if") (parenthesized_expression "(4 < iVar10)" (( "(") (binary_expression "4 < iVar10" (number_literal "4") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n          if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }\n          if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }\n          pcVar11 = (char *)FUN_00078b30();\n          local_544 = ENGINE_by_id(pcVar11);\n          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;\n          ppuVar20 = (undefined **)*param_2;\n          pcVar11 = "Can\'t find keygen engine %s\n";\nLAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);\n          goto LAB_0004e51a;\n        }" ({ "{") (if_statement "if (iVar10 == 7) {\n            local_56c = 1;\n            goto LAB_0004e430;\n          }" (if "if") (parenthesized_expression "(iVar10 == 7)" (( "(") (binary_expression "iVar10 == 7" (identifier "iVar10") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n            local_56c = 1;\n            goto LAB_0004e430;\n          }" ({ "{") (expression_statement "local_56c = 1;" (assignment_expression "local_56c = 1" (identifier "local_56c") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (7 < iVar10) {\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" (if "if") (parenthesized_expression "(7 < iVar10)" (( "(") (binary_expression "7 < iVar10" (number_literal "7") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n            if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" ({ "{") (if_statement "if (iVar10 == 8) {\n              bVar31 = true;\n            }\n            else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" (if "if") (parenthesized_expression "(iVar10 == 8)" (( "(") (binary_expression "iVar10 == 8" (identifier "iVar10") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n              bVar31 = true;\n            }" ({ "{") (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" (identifier "bVar31") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" (else "else") (if_statement "if (iVar10 == 9) {\n              local_560 = (BIO *)FUN_00078b30();\n            }" (if "if") (parenthesized_expression "(iVar10 == 9)" (( "(") (binary_expression "iVar10 == 9" (identifier "iVar10") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n              local_560 = (BIO *)FUN_00078b30();\n            }" ({ "{") (expression_statement "local_560 = (BIO *)FUN_00078b30();" (assignment_expression "local_560 = (BIO *)FUN_00078b30()" (identifier "local_560") (= "=") (cast_expression "(BIO *)FUN_00078b30()" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 != 5) {\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" (if "if") (parenthesized_expression "(iVar10 != 5)" (( "(") (binary_expression "iVar10 != 5" (identifier "iVar10") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n            if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }\n            goto LAB_0004e430;\n          }" ({ "{") (if_statement "if (iVar10 == 6) {\n              local_514 = FUN_00078b30();\n            }" (if "if") (parenthesized_expression "(iVar10 == 6)" (( "(") (binary_expression "iVar10 == 6" (identifier "iVar10") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n              local_514 = FUN_00078b30();\n            }" ({ "{") (expression_statement "local_514 = FUN_00078b30();" (assignment_expression "local_514 = FUN_00078b30()" (identifier "local_514") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_00078b30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_544 = ENGINE_by_id(pcVar11);" (assignment_expression "local_544 = ENGINE_by_id(pcVar11)" (identifier "local_544") (= "=") (call_expression "ENGINE_by_id(pcVar11)" (identifier "ENGINE_by_id") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")")))) (; ";")) (if_statement "if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;" (if "if") (parenthesized_expression "(local_544 != (ENGINE *)0x0)" (( "(") (binary_expression "local_544 != (ENGINE *)0x0" (identifier "local_544") (!= "!=") (cast_expression "(ENGINE *)0x0" (( "(") (type_descriptor "ENGINE *" (type_identifier "ENGINE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";"))) (expression_statement "ppuVar20 = (undefined **)*param_2;" (assignment_expression "ppuVar20 = (undefined **)*param_2" (identifier "ppuVar20") (= "=") (cast_expression "(undefined **)*param_2" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "pcVar11 = "Can\'t find keygen engine %s\n";" (assignment_expression "pcVar11 = "Can\'t find keygen engine %s\n"" (identifier "pcVar11") (= "=") (string_literal ""Can\'t find keygen engine %s\n"" (" """) (string_content "Can") (escape_sequence "\'") (string_content "t find keygen engine %s") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_0004e4a9:\n          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);" (statement_identifier "LAB_0004e4a9") (: ":") (expression_statement "BIO_printf(DAT_000c458c,pcVar11,ppuVar20);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,ppuVar20)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar11,ppuVar20)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar11") (, ",") (identifier "ppuVar20") () ")"))) (; ";"))) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";")) (} "}"))) (if_statement "if (iVar10 == 1) {\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }" (if "if") (parenthesized_expression "(iVar10 == 1)" (( "(") (binary_expression "iVar10 == 1" (identifier "iVar10") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          x_00 = (X509_REQ *)0x0;\n          x = (X509 *)0x0;\n          FUN_00079140(&PTR_DAT_000bb480);\n          local_564 = 0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          goto LAB_0004e57b;\n        }" ({ "{") (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_00079140(&PTR_DAT_000bb480);" (call_expression "FUN_00079140(&PTR_DAT_000bb480)" (identifier "FUN_00079140") (argument_list "(&PTR_DAT_000bb480)" (( "(") (pointer_expression "&PTR_DAT_000bb480" (& "&") (identifier "PTR_DAT_000bb480")) () ")"))) (; ";")) (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" (identifier "local_564") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" (identifier "local_534") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" (identifier "local_538") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e57b;" (goto "goto") (statement_identifier "LAB_0004e57b") (; ";")) (} "}"))) (if_statement "if (iVar10 < 2) {\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }" (if "if") (parenthesized_expression "(iVar10 < 2)" (( "(") (binary_expression "iVar10 < 2" (identifier "iVar10") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          if (iVar10 != -1) goto LAB_0004e430;\n          goto LAB_0004e51a;\n        }" ({ "{") (if_statement "if (iVar10 != -1) goto LAB_0004e430;" (if "if") (parenthesized_expression "(iVar10 != -1)" (( "(") (binary_expression "iVar10 != -1" (identifier "iVar10") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";"))) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";")) (} "}"))) (if_statement "if (iVar10 == 2) {\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }\n        else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" (if "if") (parenthesized_expression "(iVar10 == 2)" (( "(") (binary_expression "iVar10 == 2" (identifier "iVar10") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b8;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" ({ "{") (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" (identifier "uVar35") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppuVar20 = &local_4b8;" (assignment_expression "ppuVar20 = &local_4b8" (identifier "ppuVar20") (= "=") (pointer_expression "&local_4b8" (& "&") (identifier "local_4b8"))) (; ";")) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" (identifier "pAVar15") (= "=") (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00077fb0(uVar35,2,ppuVar20)" (identifier "FUN_00077fb0") (argument_list "(uVar35,2,ppuVar20)" (( "(") (identifier "uVar35") (, ",") (number_literal "2") (, ",") (identifier "ppuVar20") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" (else "else") (compound_statement "{\n          if (iVar10 != 3) goto LAB_0004e430;\n          uVar35 = FUN_00078b30();\n          ppuVar20 = &local_4b4;\n          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);\n        }" ({ "{") (if_statement "if (iVar10 != 3) goto LAB_0004e430;" (if "if") (parenthesized_expression "(iVar10 != 3)" (( "(") (binary_expression "iVar10 != 3" (identifier "iVar10") (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";"))) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" (identifier "uVar35") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppuVar20 = &local_4b4;" (assignment_expression "ppuVar20 = &local_4b4" (identifier "ppuVar20") (= "=") (pointer_expression "&local_4b4" (& "&") (identifier "local_4b4"))) (; ";")) (expression_statement "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" (identifier "pAVar15") (= "=") (cast_expression "(ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20)" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00077fb0(uVar35,2,ppuVar20)" (identifier "FUN_00077fb0") (argument_list "(uVar35,2,ppuVar20)" (( "(") (identifier "uVar35") (, ",") (number_literal "2") (, ",") (identifier "ppuVar20") () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" (else "else") (compound_statement "{\n        if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }\n        if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }\n        if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }\n      }" ({ "{") (if_statement "if (iVar10 == 0xf) {\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0xf)" (( "(") (binary_expression "iVar10 == 0xf" (identifier "iVar10") (== "==") (number_literal "0xf")) () ")")) (compound_statement "{\n          local_548 = (BIO *)FUN_00078b30();\n          goto LAB_0004e430;\n        }" ({ "{") (expression_statement "local_548 = (BIO *)FUN_00078b30();" (assignment_expression "local_548 = (BIO *)FUN_00078b30()" (identifier "local_548") (= "=") (cast_expression "(BIO *)FUN_00078b30()" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 < 0x10) {\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }" (if "if") (parenthesized_expression "(iVar10 < 0x10)" (( "(") (binary_expression "iVar10 < 0x10" (identifier "iVar10") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n          if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }\n          goto LAB_0004e430;\n        }" ({ "{") (if_statement "if (iVar10 == 0xc) {\n            local_50c = (char *)FUN_00078b30();\n          }\n          else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" (if "if") (parenthesized_expression "(iVar10 == 0xc)" (( "(") (binary_expression "iVar10 == 0xc" (identifier "iVar10") (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n            local_50c = (char *)FUN_00078b30();\n          }" ({ "{") (expression_statement "local_50c = (char *)FUN_00078b30();" (assignment_expression "local_50c = (char *)FUN_00078b30()" (identifier "local_50c") (= "=") (cast_expression "(char *)FUN_00078b30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" (else "else") (if_statement "if (iVar10 < 0xc) {\n            local_52c = FUN_00078b30();\n          }\n          else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" (if "if") (parenthesized_expression "(iVar10 < 0xc)" (( "(") (binary_expression "iVar10 < 0xc" (identifier "iVar10") (< "<") (number_literal "0xc")) () ")")) (compound_statement "{\n            local_52c = FUN_00078b30();\n          }" ({ "{") (expression_statement "local_52c = FUN_00078b30();" (assignment_expression "local_52c = FUN_00078b30()" (identifier "local_52c") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" (else "else") (if_statement "if (iVar10 == 0xd) {\n            local_518 = (char *)FUN_00078b30();\n          }\n          else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" (if "if") (parenthesized_expression "(iVar10 == 0xd)" (( "(") (binary_expression "iVar10 == 0xd" (identifier "iVar10") (== "==") (number_literal "0xd")) () ")")) (compound_statement "{\n            local_518 = (char *)FUN_00078b30();\n          }" ({ "{") (expression_statement "local_518 = (char *)FUN_00078b30();" (assignment_expression "local_518 = (char *)FUN_00078b30()" (identifier "local_518") (= "=") (cast_expression "(char *)FUN_00078b30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" (else "else") (if_statement "if (iVar10 == 0xe) {\n            local_534 = (char *)FUN_00078b30();\n          }" (if "if") (parenthesized_expression "(iVar10 == 0xe)" (( "(") (binary_expression "iVar10 == 0xe" (identifier "iVar10") (== "==") (number_literal "0xe")) () ")")) (compound_statement "{\n            local_534 = (char *)FUN_00078b30();\n          }" ({ "{") (expression_statement "local_534 = (char *)FUN_00078b30();" (assignment_expression "local_534 = (char *)FUN_00078b30()" (identifier "local_534") (= "=") (cast_expression "(char *)FUN_00078b30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))))))))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x12) {\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }\n        else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" (if "if") (parenthesized_expression "(iVar10 == 0x12)" (( "(") (binary_expression "iVar10 == 0x12" (identifier "iVar10") (== "==") (number_literal "0x12")) () ")")) (compound_statement "{\n          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);\n        }" ({ "{") (if_statement "if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))\n          goto LAB_0004e51a;" (if "if") (parenthesized_expression "((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))" (( "(") (binary_expression "(local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0)" (parenthesized_expression "(local_558 == 0)" (( "(") (binary_expression "local_558 == 0" (identifier "local_558") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_558 = OPENSSL_sk_new_null(), local_558 == 0)" (( "(") (comma_expression "local_558 = OPENSSL_sk_new_null(), local_558 == 0" (assignment_expression "local_558 = OPENSSL_sk_new_null()" (identifier "local_558") (= "=") (call_expression "OPENSSL_sk_new_null()" (identifier "OPENSSL_sk_new_null") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "local_558 == 0" (identifier "local_558") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";"))) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" (identifier "uVar35") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35)" (identifier "pAVar15") (= "=") (cast_expression "(ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35)" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "OPENSSL_sk_push(local_558,uVar35)" (identifier "OPENSSL_sk_push") (argument_list "(local_558,uVar35)" (( "(") (identifier "local_558") (, ",") (identifier "uVar35") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" (else "else") (compound_statement "{\n          if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }\n          if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }\n          if (iVar10 != 0x11) goto LAB_0004e430;\n          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;\n          uVar35 = FUN_00078b30();\n          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);\n        }" ({ "{") (if_statement "if (0x12 < iVar10) {\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }" (if "if") (parenthesized_expression "(0x12 < iVar10)" (( "(") (binary_expression "0x12 < iVar10" (number_literal "0x12") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n            if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }\n            goto LAB_0004e430;\n          }" ({ "{") (if_statement "if (iVar10 == 0x13) {\n              DAT_000c4a90 = 1;\n            }\n            else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" (if "if") (parenthesized_expression "(iVar10 == 0x13)" (( "(") (binary_expression "iVar10 == 0x13" (identifier "iVar10") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n              DAT_000c4a90 = 1;\n            }" ({ "{") (expression_statement "DAT_000c4a90 = 1;" (assignment_expression "DAT_000c4a90 = 1" (identifier "DAT_000c4a90") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" (else "else") (if_statement "if (iVar10 == 0x14) {\n              bVar5 = true;\n            }" (if "if") (parenthesized_expression "(iVar10 == 0x14)" (( "(") (binary_expression "iVar10 == 0x14" (identifier "iVar10") (== "==") (number_literal "0x14")) () ")")) (compound_statement "{\n              bVar5 = true;\n            }" ({ "{") (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";")) (} "}"))))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x10) {\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }" (if "if") (parenthesized_expression "(iVar10 == 0x10)" (( "(") (binary_expression "iVar10 == 0x10" (identifier "iVar10") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n            local_570 = (EVP_PKEY *)FUN_00078b30();\n            bVar31 = true;\n            goto LAB_0004e430;\n          }" ({ "{") (expression_statement "local_570 = (EVP_PKEY *)FUN_00078b30();" (assignment_expression "local_570 = (EVP_PKEY *)FUN_00078b30()" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)FUN_00078b30()" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" (identifier "bVar31") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 != 0x11) goto LAB_0004e430;" (if "if") (parenthesized_expression "(iVar10 != 0x11)" (( "(") (binary_expression "iVar10 != 0x11" (identifier "iVar10") (!= "!=") (number_literal "0x11")) () ")")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";"))) (if_statement "if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))\n          goto LAB_0004e51a;" (if "if") (parenthesized_expression "((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))" (( "(") (binary_expression "(local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0)" (parenthesized_expression "(local_55c == 0)" (( "(") (binary_expression "local_55c == 0" (identifier "local_55c") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_55c = OPENSSL_sk_new_null(), local_55c == 0)" (( "(") (comma_expression "local_55c = OPENSSL_sk_new_null(), local_55c == 0" (assignment_expression "local_55c = OPENSSL_sk_new_null()" (identifier "local_55c") (= "=") (call_expression "OPENSSL_sk_new_null()" (identifier "OPENSSL_sk_new_null") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "local_55c == 0" (identifier "local_55c") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";"))) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" (identifier "uVar35") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);" (assignment_expression "pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35)" (identifier "pAVar15") (= "=") (cast_expression "(ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35)" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "OPENSSL_sk_push(local_55c,uVar35)" (identifier "OPENSSL_sk_push") (argument_list "(local_55c,uVar35)" (( "(") (identifier "local_55c") (, ",") (identifier "uVar35") () ")"))))) (; ";")) (} "}")))) (} "}")))))) (labeled_statement "joined_r0x0004ee90:\n      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;" (statement_identifier "joined_r0x0004ee90") (: ":") (if_statement "if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;" (if "if") (parenthesized_expression "(pAVar15 == (ASN1_INTEGER *)0x0)" (( "(") (binary_expression "pAVar15 == (ASN1_INTEGER *)0x0" (identifier "pAVar15") (== "==") (cast_expression "(ASN1_INTEGER *)0x0" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";")))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x20) {\n      local_53c = 1;\n      goto LAB_0004e430;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0x20)" (( "(") (binary_expression "iVar10 == 0x20" (identifier "iVar10") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      local_53c = 1;\n      goto LAB_0004e430;\n    }" ({ "{") (expression_statement "local_53c = 1;" (assignment_expression "local_53c = 1" (identifier "local_53c") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (0x20 < iVar10) {\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }" (if "if") (parenthesized_expression "(0x20 < iVar10)" (( "(") (binary_expression "0x20 < iVar10" (number_literal "0x20") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n      if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }\n      if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }\n      if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }\n      if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }\n      if (iVar10 != 0x24) goto LAB_0004e430;\n      pcVar11 = (char *)FUN_00078b30();\n      if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }\n      cVar1 = *pcVar11;\n      if (cVar1 != '\0') goto LAB_0004ea31;\n      goto LAB_0004ea4d;\n    }" ({ "{") (if_statement "if (iVar10 == 0x25) {\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x25)" (( "(") (binary_expression "iVar10 == 0x25" (identifier "iVar10") (== "==") (number_literal "0x25")) () ")")) (compound_statement "{\n        local_528 = (char **)FUN_00078b30();\n        goto LAB_0004e430;\n      }" ({ "{") (expression_statement "local_528 = (char **)FUN_00078b30();" (assignment_expression "local_528 = (char **)FUN_00078b30()" (identifier "local_528") (= "=") (cast_expression "(char **)FUN_00078b30()" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (0x25 < iVar10) {\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }" (if "if") (parenthesized_expression "(0x25 < iVar10)" (( "(") (binary_expression "0x25 < iVar10" (number_literal "0x25") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n        if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }\n        if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }\n        if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }\n        goto LAB_0004e430;\n      }" ({ "{") (if_statement "if (iVar10 == 0x28) {\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0x28)" (( "(") (binary_expression "iVar10 == 0x28" (identifier "iVar10") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n          uVar35 = FUN_000790d0();\n          iVar10 = FUN_000782e0(uVar35,&local_4cc);\n          if (iVar10 == 0) goto LAB_0004e51a;\n          local_510 = local_4cc;\n          goto LAB_0004e430;\n        }" ({ "{") (expression_statement "uVar35 = FUN_000790d0();" (assignment_expression "uVar35 = FUN_000790d0()" (identifier "uVar35") (= "=") (call_expression "FUN_000790d0()" (identifier "FUN_000790d0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = FUN_000782e0(uVar35,&local_4cc);" (assignment_expression "iVar10 = FUN_000782e0(uVar35,&local_4cc)" (identifier "iVar10") (= "=") (call_expression "FUN_000782e0(uVar35,&local_4cc)" (identifier "FUN_000782e0") (argument_list "(uVar35,&local_4cc)" (( "(") (identifier "uVar35") (, ",") (pointer_expression "&local_4cc" (& "&") (identifier "local_4cc")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";"))) (expression_statement "local_510 = local_4cc;" (assignment_expression "local_510 = local_4cc" (identifier "local_510") (= "=") (identifier "local_4cc")) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (0x28 < iVar10) {\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }" (if "if") (parenthesized_expression "(0x28 < iVar10)" (( "(") (binary_expression "0x28 < iVar10" (number_literal "0x28") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;\n          goto LAB_0004eb16;\n        }" ({ "{") (if_statement "if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))\n          goto LAB_0004e430;" (if "if") (parenthesized_expression "((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))" (( "(") (binary_expression "(1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0)" (parenthesized_expression "(1 < iVar10 - 0x5ddU)" (( "(") (binary_expression "1 < iVar10 - 0x5ddU" (number_literal "1") (< "<") (binary_expression "iVar10 - 0x5ddU" (identifier "iVar10") (- "-") (number_literal "0x5ddU"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = FUN_00072560(iVar10), iVar10 != 0)" (( "(") (comma_expression "iVar10 = FUN_00072560(iVar10), iVar10 != 0" (assignment_expression "iVar10 = FUN_00072560(iVar10)" (identifier "iVar10") (= "=") (call_expression "FUN_00072560(iVar10)" (identifier "FUN_00072560") (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";"))) (goto_statement "goto LAB_0004eb16;" (goto "goto") (statement_identifier "LAB_0004eb16") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x26) {\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }\n        else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0x26)" (( "(") (binary_expression "iVar10 == 0x26" (identifier "iVar10") (== "==") (number_literal "0x26")) () ")")) (compound_statement "{\n          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();\n        }" ({ "{") (expression_statement "local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)FUN_00078b30()" (identifier "local_524") (= "=") (cast_expression "(stack_st_CONF_VALUE *)FUN_00078b30()" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" (else "else") (if_statement "if (iVar10 == 0x27) {\n          bVar31 = true;\n          bVar4 = true;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0x27)" (( "(") (binary_expression "iVar10 == 0x27" (identifier "iVar10") (== "==") (number_literal "0x27")) () ")")) (compound_statement "{\n          bVar31 = true;\n          bVar4 = true;\n        }" ({ "{") (expression_statement "bVar31 = true;" (assignment_expression "bVar31 = true" (identifier "bVar31") (= "=") (true "true")) (; ";")) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (} "}"))))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x22) {\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x22)" (( "(") (binary_expression "iVar10 == 0x22" (identifier "iVar10") (== "==") (number_literal "0x22")) () ")")) (compound_statement "{\n        pcVar11 = (char *)FUN_00078b30();\n        ppuVar20 = (undefined **)0xa;\n        local_530 = strtol(pcVar11,(char **)0x0,10);\n        goto LAB_0004e430;\n      }" ({ "{") (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_00078b30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "ppuVar20 = (undefined **)0xa;" (assignment_expression "ppuVar20 = (undefined **)0xa" (identifier "ppuVar20") (= "=") (cast_expression "(undefined **)0xa" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0xa"))) (; ";")) (expression_statement "local_530 = strtol(pcVar11,(char **)0x0,10);" (assignment_expression "local_530 = strtol(pcVar11,(char **)0x0,10)" (identifier "local_530") (= "=") (call_expression "strtol(pcVar11,(char **)0x0,10)" (identifier "strtol") (argument_list "(pcVar11,(char **)0x0,10)" (( "(") (identifier "pcVar11") (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 < 0x22) {\n        local_57c = 1;\n        goto LAB_0004e430;\n      }" (if "if") (parenthesized_expression "(iVar10 < 0x22)" (( "(") (binary_expression "iVar10 < 0x22" (identifier "iVar10") (< "<") (number_literal "0x22")) () ")")) (compound_statement "{\n        local_57c = 1;\n        goto LAB_0004e430;\n      }" ({ "{") (expression_statement "local_57c = 1;" (assignment_expression "local_57c = 1" (identifier "local_57c") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x23) {\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x23)" (( "(") (binary_expression "iVar10 == 0x23" (identifier "iVar10") (== "==") (number_literal "0x23")) () ")")) (compound_statement "{\n        if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }\n        pcVar11 = (char *)FUN_00078b30();\n        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);\n        pAVar15 = local_554;\n        goto joined_r0x0004ee90;\n      }" ({ "{") (if_statement "if (local_554 != (ASN1_INTEGER *)0x0) {\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }" (if "if") (parenthesized_expression "(local_554 != (ASN1_INTEGER *)0x0)" (( "(") (binary_expression "local_554 != (ASN1_INTEGER *)0x0" (identifier "local_554") (!= "!=") (cast_expression "(ASN1_INTEGER *)0x0" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar11 = "Serial number supplied twice\n";\n          goto LAB_0004e4a9;\n        }" ({ "{") (expression_statement "pcVar11 = "Serial number supplied twice\n";" (assignment_expression "pcVar11 = "Serial number supplied twice\n"" (identifier "pcVar11") (= "=") (string_literal ""Serial number supplied twice\n"" (" """) (string_content "Serial number supplied twice") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_0004e4a9;" (goto "goto") (statement_identifier "LAB_0004e4a9") (; ";")) (} "}"))) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_00078b30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);" (assignment_expression "local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11)" (identifier "local_554") (= "=") (call_expression "s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11)" (identifier "s2i_ASN1_INTEGER") (argument_list "((X509V3_EXT_METHOD *)0x0,pcVar11)" (( "(") (cast_expression "(X509V3_EXT_METHOD *)0x0" (( "(") (type_descriptor "X509V3_EXT_METHOD *" (type_identifier "X509V3_EXT_METHOD") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (identifier "pcVar11") () ")")))) (; ";")) (expression_statement "pAVar15 = local_554;" (assignment_expression "pAVar15 = local_554" (identifier "pAVar15") (= "=") (identifier "local_554")) (; ";")) (goto_statement "goto joined_r0x0004ee90;" (goto "goto") (statement_identifier "joined_r0x0004ee90") (; ";")) (} "}"))) (if_statement "if (iVar10 != 0x24) goto LAB_0004e430;" (if "if") (parenthesized_expression "(iVar10 != 0x24)" (( "(") (binary_expression "iVar10 != 0x24" (identifier "iVar10") (!= "!=") (number_literal "0x24")) () ")")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";"))) (expression_statement "pcVar11 = (char *)FUN_00078b30();" (assignment_expression "pcVar11 = (char *)FUN_00078b30()" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_00078b30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (local_54c == 0) {\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }" (if "if") (parenthesized_expression "(local_54c == 0)" (( "(") (binary_expression "local_54c == 0" (identifier "local_54c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);\n        type = BIO_s_mem();\n        local_550 = BIO_new(type);\n        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }\n      }" ({ "{") (expression_statement "local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);" (assignment_expression "local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0)" (identifier "local_54c") (= "=") (call_expression "OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0)" (identifier "OPENSSL_LH_new") (argument_list "(FUN_0004d7c0,FUN_0004d6b0)" (( "(") (identifier "FUN_0004d7c0") (, ",") (identifier "FUN_0004d6b0") () ")")))) (; ";")) (expression_statement "type = BIO_s_mem();" (assignment_expression "type = BIO_s_mem()" (identifier "type") (= "=") (call_expression "BIO_s_mem()" (identifier "BIO_s_mem") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_550 = BIO_new(type);" (assignment_expression "local_550 = BIO_new(type)" (identifier "local_550") (= "=") (call_expression "BIO_new(type)" (identifier "BIO_new") (argument_list "(type)" (( "(") (identifier "type") () ")")))) (; ";")) (if_statement "if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }" (if "if") (parenthesized_expression "((local_54c == 0) || (local_550 == (BIO *)0x0))" (( "(") (binary_expression "(local_54c == 0) || (local_550 == (BIO *)0x0)" (parenthesized_expression "(local_54c == 0)" (( "(") (binary_expression "local_54c == 0" (identifier "local_54c") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_550 == (BIO *)0x0)" (( "(") (binary_expression "local_550 == (BIO *)0x0" (identifier "local_550") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n          x = (X509 *)0x0;\n          x_00 = (X509_REQ *)0x0;\n          local_534 = (char *)0x0;\n          local_538 = (char *)0x0;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          local_548 = (BIO *)0x0;\n          local_564 = 1;\n          goto LAB_0004e56a;\n        }" ({ "{") (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" (identifier "local_534") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" (identifier "local_538") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (} "}"))) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" (identifier "cVar1") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (if_statement "if (cVar1 != '\0') goto LAB_0004ea31;" (if "if") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004ea31;" (goto "goto") (statement_identifier "LAB_0004ea31") (; ";"))) (goto_statement "goto LAB_0004ea4d;" (goto "goto") (statement_identifier "LAB_0004ea4d") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x1a) {\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0x1a)" (( "(") (binary_expression "iVar10 == 0x1a" (identifier "iVar10") (== "==") (number_literal "0x1a")) () ")")) (compound_statement "{\n      local_588 = 0x1000;\n      goto LAB_0004e430;\n    }" ({ "{") (expression_statement "local_588 = 0x1000;" (assignment_expression "local_588 = 0x1000" (identifier "local_588") (= "=") (number_literal "0x1000")) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 < 0x1b) {\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }" (if "if") (parenthesized_expression "(iVar10 < 0x1b)" (( "(") (binary_expression "iVar10 < 0x1b" (identifier "iVar10") (< "<") (number_literal "0x1b")) () ")")) (compound_statement "{\n      if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }\n      goto LAB_0004e430;\n    }" ({ "{") (if_statement "if (iVar10 == 0x17) {\n        bVar3 = true;\n      }\n      else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x17)" (( "(") (binary_expression "iVar10 == 0x17" (identifier "iVar10") (== "==") (number_literal "0x17")) () ")")) (compound_statement "{\n        bVar3 = true;\n      }" ({ "{") (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" (else "else") (if_statement "if (iVar10 < 0x17) {\n        local_578 = 1;\n      }\n      else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" (if "if") (parenthesized_expression "(iVar10 < 0x17)" (( "(") (binary_expression "iVar10 < 0x17" (identifier "iVar10") (< "<") (number_literal "0x17")) () ")")) (compound_statement "{\n        local_578 = 1;\n      }" ({ "{") (expression_statement "local_578 = 1;" (assignment_expression "local_578 = 1" (identifier "local_578") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" (else "else") (if_statement "if (iVar10 == 0x18) {\n        local_580 = 1;\n      }\n      else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x18)" (( "(") (binary_expression "iVar10 == 0x18" (identifier "iVar10") (== "==") (number_literal "0x18")) () ")")) (compound_statement "{\n        local_580 = 1;\n      }" ({ "{") (expression_statement "local_580 = 1;" (assignment_expression "local_580 = 1" (identifier "local_580") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" (else "else") (if_statement "if (iVar10 == 0x19) {\n        bVar2 = true;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x19)" (( "(") (binary_expression "iVar10 == 0x19" (identifier "iVar10") (== "==") (number_literal "0x19")) () ")")) (compound_statement "{\n        bVar2 = true;\n      }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}"))))))))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x1d) {\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0x1d)" (( "(") (binary_expression "iVar10 == 0x1d" (identifier "iVar10") (== "==") (number_literal "0x1d")) () ")")) (compound_statement "{\n      local_51c = FUN_00078b30();\n      goto LAB_0004e430;\n    }" ({ "{") (expression_statement "local_51c = FUN_00078b30();" (assignment_expression "local_51c = FUN_00078b30()" (identifier "local_51c") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (0x1d < iVar10) {\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }" (if "if") (parenthesized_expression "(0x1d < iVar10)" (( "(") (binary_expression "0x1d < iVar10" (number_literal "0x1d") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n      if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }\n      goto LAB_0004e430;\n    }" ({ "{") (if_statement "if (iVar10 == 0x1e) {\n        local_584 = 1;\n      }\n      else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x1e)" (( "(") (binary_expression "iVar10 == 0x1e" (identifier "iVar10") (== "==") (number_literal "0x1e")) () ")")) (compound_statement "{\n        local_584 = 1;\n      }" ({ "{") (expression_statement "local_584 = 1;" (assignment_expression "local_584 = 1" (identifier "local_584") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" (else "else") (if_statement "if (iVar10 == 0x1f) {\n        local_594 = 1;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x1f)" (( "(") (binary_expression "iVar10 == 0x1f" (identifier "iVar10") (== "==") (number_literal "0x1f")) () ")")) (compound_statement "{\n        local_594 = 1;\n      }" ({ "{") (expression_statement "local_594 = 1;" (assignment_expression "local_594 = 1" (identifier "local_594") (= "=") (number_literal "1")) (; ";")) (} "}"))))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (if_statement "if (iVar10 == 0x1b) {\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0x1b)" (( "(") (binary_expression "iVar10 == 0x1b" (identifier "iVar10") (== "==") (number_literal "0x1b")) () ")")) (compound_statement "{\n      uVar35 = FUN_00078b30();\n      iVar10 = FUN_00073960(uVar35);\n      if (iVar10 != 0) goto LAB_0004e430;\n      goto LAB_0004e51a;\n    }" ({ "{") (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" (identifier "uVar35") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = FUN_00073960(uVar35);" (assignment_expression "iVar10 = FUN_00073960(uVar35)" (identifier "iVar10") (= "=") (call_expression "FUN_00073960(uVar35)" (identifier "FUN_00073960") (argument_list "(uVar35)" (( "(") (identifier "uVar35") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_0004e430;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";"))) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";")) (} "}"))) (if_statement "if (iVar10 != 0x1c) goto LAB_0004e430;" (if "if") (parenthesized_expression "(iVar10 != 0x1c)" (( "(") (binary_expression "iVar10 != 0x1c" (identifier "iVar10") (!= "!=") (number_literal "0x1c")) () ")")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";"))) (expression_statement "uVar35 = FUN_00078b30();" (assignment_expression "uVar35 = FUN_00078b30()" (identifier "uVar35") (= "=") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = FUN_000738d0(&local_4a8,uVar35);" (assignment_expression "iVar10 = FUN_000738d0(&local_4a8,uVar35)" (identifier "iVar10") (= "=") (call_expression "FUN_000738d0(&local_4a8,uVar35)" (identifier "FUN_000738d0") (argument_list "(&local_4a8,uVar35)" (( "(") (pointer_expression "&local_4a8" (& "&") (identifier "local_4a8")) (, ",") (identifier "uVar35") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_0004e51a;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";"))) (expression_statement "iVar10 = FUN_00078780();" (assignment_expression "iVar10 = FUN_00078780()" (identifier "iVar10") (= "=") (call_expression "FUN_00078780()" (identifier "FUN_00078780") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_0004e6f0;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e6f0;" (goto "goto") (statement_identifier "LAB_0004e6f0") (; ";"))) (} "}")))) (expression_statement "local_520 = 1;" (assignment_expression "local_520 = 1" (identifier "local_520") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (labeled_statement "LAB_0004ea31:\n  ppuVar13 = __ctype_b_loc();" (statement_identifier "LAB_0004ea31") (: ":") (expression_statement "ppuVar13 = __ctype_b_loc();" (assignment_expression "ppuVar13 = __ctype_b_loc()" (identifier "ppuVar13") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;" (if "if") (parenthesized_expression "((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20)" (( "(") (binary_expression "*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)*ppuVar13 + cVar1 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*ppuVar13 + cVar1 * 2 + 1)" (( "(") (binary_expression "(int)*ppuVar13 + cVar1 * 2 + 1" (binary_expression "(int)*ppuVar13 + cVar1 * 2" (cast_expression "(int)*ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppuVar13" (* "*") (identifier "ppuVar13"))) (+ "+") (binary_expression "cVar1 * 2" (identifier "cVar1") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ea4d;" (goto "goto") (statement_identifier "LAB_0004ea4d") (; ";"))) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar11;" (assignment_expression "cVar1 = *pcVar11" (identifier "cVar1") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (if_statement "if (cVar1 == '\0') goto LAB_0004e51a;" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";"))) (goto_statement "goto LAB_0004ea31;" (goto "goto") (statement_identifier "LAB_0004ea31") (; ";")) (labeled_statement "LAB_0004ea4d:\n  pcVar12 = strchr(pcVar11,0x3d);" (statement_identifier "LAB_0004ea4d") (: ":") (expression_statement "pcVar12 = strchr(pcVar11,0x3d);" (assignment_expression "pcVar12 = strchr(pcVar11,0x3d)" (identifier "pcVar12") (= "=") (call_expression "strchr(pcVar11,0x3d)" (identifier "strchr") (argument_list "(pcVar11,0x3d)" (( "(") (identifier "pcVar11") (, ",") (number_literal "0x3d") () ")")))) (; ";"))) (if_statement "if (pcVar12 == (char *)0x0) goto LAB_0004e51a;" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";"))) (expression_statement "ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);" (assignment_expression "ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd)" (identifier "ptr") (= "=") (call_expression "CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd)" (identifier "CRYPTO_strdup") (argument_list "(pcVar11,"../apps/req.c",0xbd)" (( "(") (identifier "pcVar11") (, ",") (string_literal ""../apps/req.c"" (" """) (string_content "../apps/req.c") (" """)) (, ",") (number_literal "0xbd") () ")")))) (; ";")) (if_statement "if (ptr == (char *)0x0) {\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }" (if "if") (parenthesized_expression "(ptr == (char *)0x0)" (( "(") (binary_expression "ptr == (char *)0x0" (identifier "ptr") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_534 = (char *)0x0;\n    local_538 = (char *)0x0;\n    local_548 = (BIO *)0x0;\n    goto LAB_0004f60c;\n  }" ({ "{") (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" (identifier "local_534") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" (identifier "local_538") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004f60c;" (goto "goto") (statement_identifier "LAB_0004f60c") (; ";")) (} "}"))) (expression_statement "pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);" (assignment_expression "pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11)" (identifier "pcVar11") (= "=") (binary_expression "ptr + ((int)pcVar12 - (int)pcVar11)" (identifier "ptr") (+ "+") (parenthesized_expression "((int)pcVar12 - (int)pcVar11)" (( "(") (binary_expression "(int)pcVar12 - (int)pcVar11" (cast_expression "(int)pcVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar12")) (- "-") (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11"))) () ")")))) (; ";")) (if_statement "if (ptr < pcVar11) {\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }" (if "if") (parenthesized_expression "(ptr < pcVar11)" (( "(") (binary_expression "ptr < pcVar11" (identifier "ptr") (< "<") (identifier "pcVar11")) () ")")) (compound_statement "{\n    ppuVar13 = __ctype_b_loc();\n    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }\n  }" ({ "{") (expression_statement "ppuVar13 = __ctype_b_loc();" (assignment_expression "ppuVar13 = __ctype_b_loc()" (identifier "ppuVar13") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (while_statement "while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }" (while "while") (parenthesized_expression "((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20)" (( "(") (binary_expression "*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" (* "*") (cast_expression "(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*ppuVar13 + pcVar11[-1] * 2 + 1)" (( "(") (binary_expression "(int)*ppuVar13 + pcVar11[-1] * 2 + 1" (binary_expression "(int)*ppuVar13 + pcVar11[-1] * 2" (cast_expression "(int)*ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppuVar13" (* "*") (identifier "ppuVar13"))) (+ "+") (binary_expression "pcVar11[-1] * 2" (subscript_expression "pcVar11[-1]" (identifier "pcVar11") ([ "[") (number_literal "-1") (] "]")) (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar11 = pcVar11 + -1;\n      if (ptr == pcVar11) goto LAB_0004f4ba;\n    }" ({ "{") (expression_statement "pcVar11 = pcVar11 + -1;" (assignment_expression "pcVar11 = pcVar11 + -1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + -1" (identifier "pcVar11") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (ptr == pcVar11) goto LAB_0004f4ba;" (if "if") (parenthesized_expression "(ptr == pcVar11)" (( "(") (binary_expression "ptr == pcVar11" (identifier "ptr") (== "==") (identifier "pcVar11")) () ")")) (goto_statement "goto LAB_0004f4ba;" (goto "goto") (statement_identifier "LAB_0004f4ba") (; ";"))) (} "}"))) (} "}"))) (if_statement "if (pcVar11 == ptr) {\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }" (if "if") (parenthesized_expression "(pcVar11 == ptr)" (( "(") (binary_expression "pcVar11 == ptr" (identifier "pcVar11") (== "==") (identifier "ptr")) () ")")) (compound_statement "{\nLAB_0004f4ba:\n    CRYPTO_free(ptr);\n    goto LAB_0004e51a;\n  }" ({ "{") (labeled_statement "LAB_0004f4ba:\n    CRYPTO_free(ptr);" (statement_identifier "LAB_0004f4ba") (: ":") (expression_statement "CRYPTO_free(ptr);" (call_expression "CRYPTO_free(ptr)" (identifier "CRYPTO_free") (argument_list "(ptr)" (( "(") (identifier "ptr") () ")"))) (; ";"))) (goto_statement "goto LAB_0004e51a;" (goto "goto") (statement_identifier "LAB_0004e51a") (; ";")) (} "}"))) (expression_statement "*pcVar11 = '\0';" (assignment_expression "*pcVar11 = '\0'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);" (assignment_expression "pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr)" (identifier "pBVar14") (= "=") (cast_expression "(BIO *)OPENSSL_LH_insert(local_54c,ptr)" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "OPENSSL_LH_insert(local_54c,ptr)" (identifier "OPENSSL_LH_insert") (argument_list "(local_54c,ptr)" (( "(") (identifier "local_54c") (, ",") (identifier "ptr") () ")"))))) (; ";")) (if_statement "if ((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }" (if "if") (parenthesized_expression "((pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0))" (( "(") (binary_expression "(pBVar14 == (BIO *)0x0) &&\n     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)" (parenthesized_expression "(pBVar14 == (BIO *)0x0)" (( "(") (binary_expression "pBVar14 == (BIO *)0x0" (identifier "pBVar14") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)" (( "(") (comma_expression "iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0" (assignment_expression "iVar10 = OPENSSL_LH_error(local_54c)" (identifier "iVar10") (= "=") (call_expression "OPENSSL_LH_error(local_54c)" (identifier "OPENSSL_LH_error") (argument_list "(local_54c)" (( "(") (identifier "local_54c") () ")")))) (, ",") (comma_expression "pBVar14 = (BIO *)ptr, iVar10 == 0" (assignment_expression "pBVar14 = (BIO *)ptr" (identifier "pBVar14") (= "=") (cast_expression "(BIO *)ptr" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ptr"))) (, ",") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n    ppuVar20 = (undefined **)FUN_00078b30();\n    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);\n    if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }\n    goto LAB_0004e430;\n  }" ({ "{") (expression_statement "ppuVar20 = (undefined **)FUN_00078b30();" (assignment_expression "ppuVar20 = (undefined **)FUN_00078b30()" (identifier "ppuVar20") (= "=") (cast_expression "(undefined **)FUN_00078b30()" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "FUN_00078b30()" (identifier "FUN_00078b30") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);" (assignment_expression "iVar10 = BIO_printf(local_550,"%s\n",ppuVar20)" (identifier "iVar10") (= "=") (call_expression "BIO_printf(local_550,"%s\n",ppuVar20)" (identifier "BIO_printf") (argument_list "(local_550,"%s\n",ppuVar20)" (( "(") (identifier "local_550") (, ",") (string_literal ""%s\n"" (" """) (string_content "%s") (escape_sequence "\n") (" """)) (, ",") (identifier "ppuVar20") () ")")))) (; ";")) (if_statement "if (iVar10 < 0) {\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }" (if "if") (parenthesized_expression "(iVar10 < 0)" (( "(") (binary_expression "iVar10 < 0" (identifier "iVar10") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      x = (X509 *)0x0;\n      x_00 = (X509_REQ *)0x0;\n      local_534 = (char *)0x0;\n      local_538 = (char *)0x0;\n      local_570 = (EVP_PKEY *)0x0;\n      local_548 = (BIO *)0x0;\n      local_564 = 1;\n      local_560 = (BIO *)0x0;\n      goto LAB_0004e56a;\n    }" ({ "{") (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" (identifier "local_534") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" (identifier "local_538") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (goto_statement "goto LAB_0004e430;" (goto "goto") (statement_identifier "LAB_0004e430") (; ";")) (} "}"))) (expression_statement "local_560 = pBVar14;" (assignment_expression "local_560 = pBVar14" (identifier "local_560") (= "=") (identifier "pBVar14")) (; ";")) (expression_statement "CRYPTO_free(local_560);" (call_expression "CRYPTO_free(local_560)" (identifier "CRYPTO_free") (argument_list "(local_560)" (( "(") (identifier "local_560") () ")"))) (; ";")) (labeled_statement "LAB_0004eb16:\n  x_00 = (X509_REQ *)0x0;" (statement_identifier "LAB_0004eb16") (: ":") (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" (identifier "local_534") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" (identifier "local_538") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (labeled_statement "LAB_0004e51a:\n  pcVar12 = "%s: Use -help for summary.\n";" (statement_identifier "LAB_0004e51a") (: ":") (expression_statement "pcVar12 = "%s: Use -help for summary.\n";" (assignment_expression "pcVar12 = "%s: Use -help for summary.\n"" (identifier "pcVar12") (= "=") (string_literal ""%s: Use -help for summary.\n"" (" """) (string_content "%s: Use -help for summary.") (escape_sequence "\n") (" """))) (; ";"))) (expression_statement "pcVar11 = (char *)ppcVar9;" (assignment_expression "pcVar11 = (char *)ppcVar9" (identifier "pcVar11") (= "=") (cast_expression "(char *)ppcVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppcVar9"))) (; ";")) (labeled_statement "LAB_0004e52c:\n  BIO_printf(DAT_000c458c,pcVar12,pcVar11);" (statement_identifier "LAB_0004e52c") (: ":") (expression_statement "BIO_printf(DAT_000c458c,pcVar12,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar12,pcVar11)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar11") () ")"))) (; ";"))) (expression_statement "local_534 = (char *)0x0;" (assignment_expression "local_534 = (char *)0x0" (identifier "local_534") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_538 = (char *)0x0;" (assignment_expression "local_538 = (char *)0x0" (identifier "local_538") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0004e54e:\n  local_564 = 1;" (statement_identifier "LAB_0004e54e") (: ":") (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";"))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (while_statement "while( true ) {\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar10 = iVar10 + -1;\n    bVar7 = *pbVar17 < *pbVar28;\n    bVar30 = *pbVar17 == *pbVar28;\n    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n    if (!bVar30) break;\ncode_r0x0004f105:\n    if (iVar10 == 0) break;\n  }" ({ "{") (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar7 = *pbVar17 < *pbVar28;" (assignment_expression "bVar7 = *pbVar17 < *pbVar28" (identifier "bVar7") (= "=") (binary_expression "*pbVar17 < *pbVar28" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")))) (; ";")) (expression_statement "bVar30 = *pbVar17 == *pbVar28;" (assignment_expression "bVar30 = *pbVar17 == *pbVar28" (identifier "bVar30") (= "=") (binary_expression "*pbVar17 == *pbVar28" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar32 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar32")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar28 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar32 * -2" (identifier "pbVar28") (+ "+") (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar32")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (!bVar30) break;" (if "if") (parenthesized_expression "(!bVar30)" (( "(") (unary_expression "!bVar30" (! "!") (identifier "bVar30")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "code_r0x0004f105:\n    if (iVar10 == 0) break;" (statement_identifier "code_r0x0004f105") (: ":") (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";")))) (} "}"))) (if_statement "if ((!bVar7 && !bVar30) == bVar7) {\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }\n  else {\n    local_4ec = 0x1001;\n  }" (if "if") (parenthesized_expression "((!bVar7 && !bVar30) == bVar7)" (( "(") (binary_expression "(!bVar7 && !bVar30) == bVar7" (parenthesized_expression "(!bVar7 && !bVar30)" (( "(") (binary_expression "!bVar7 && !bVar30" (unary_expression "!bVar7" (! "!") (identifier "bVar7")) (&& "&&") (unary_expression "!bVar30" (! "!") (identifier "bVar30"))) () ")")) (== "==") (identifier "bVar7")) () ")")) (compound_statement "{\nLAB_0004f5da:\n    local_4ec = 0x1000;\n  }" ({ "{") (labeled_statement "LAB_0004f5da:\n    local_4ec = 0x1000;" (statement_identifier "LAB_0004f5da") (: ":") (expression_statement "local_4ec = 0x1000;" (assignment_expression "local_4ec = 0x1000" (identifier "local_4ec") (= "=") (number_literal "0x1000")) (; ";"))) (} "}")) (else_clause "else {\n    local_4ec = 0x1001;\n  }" (else "else") (compound_statement "{\n    local_4ec = 0x1001;\n  }" ({ "{") (expression_statement "local_4ec = 0x1001;" (assignment_expression "local_4ec = 0x1001" (identifier "local_4ec") (= "=") (number_literal "0x1001")) (; ";")) (} "}")))) (labeled_statement "LAB_0004f11f:\n  if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" (statement_identifier "LAB_0004f11f") (: ":") (if_statement "if (local_524 == (stack_st_CONF_VALUE *)0x0) {\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }\n  else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" (if "if") (parenthesized_expression "(local_524 == (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "local_524 == (stack_st_CONF_VALUE *)0x0" (identifier "local_524") (== "==") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar11 = "req_extensions";\n    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");\n    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;\n    ERR_clear_error();\n  }" ({ "{") (expression_statement "pcVar11 = "req_extensions";" (assignment_expression "pcVar11 = "req_extensions"" (identifier "pcVar11") (= "=") (string_literal ""req_extensions"" (" """) (string_content "req_extensions") (" """))) (; ";")) (expression_statement "local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions")" (identifier "local_524") (= "=") (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions")" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "NCONF_get_string(DAT_000c4a98,"req","req_extensions")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","req_extensions")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""req_extensions"" (" """) (string_content "req_extensions") (" """)) () ")"))))) (; ";")) (if_statement "if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;" (if "if") (parenthesized_expression "(local_524 != (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "local_524 != (stack_st_CONF_VALUE *)0x0" (identifier "local_524") (!= "!=") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004f12b;" (goto "goto") (statement_identifier "LAB_0004f12b") (; ";"))) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" (else "else") (compound_statement "{\nLAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);\n    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);\n    if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }\n  }" ({ "{") (labeled_statement "LAB_0004f12b:\n    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (statement_identifier "LAB_0004f12b") (: ":") (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" (identifier "X509V3_set_ctx") (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509_CRL *)0x0" (( "(") (type_descriptor "X509_CRL *" (type_identifier "X509_CRL") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" (identifier "X509V3_set_nconf") (argument_list "(&local_4a0,DAT_000c4a98)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (identifier "DAT_000c4a98") () ")"))) (; ";")) (expression_statement "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" (identifier "iVar10") (= "=") (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" (identifier "X509V3_EXT_add_nconf") (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0)" (( "(") (identifier "DAT_000c4a98") (, ",") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (cast_expression "(char *)local_524" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_524")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar11 = "Error Loading request extension section %s\n";\n      psVar16 = local_524;\nLAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);\n      goto LAB_0004e54e;\n    }" ({ "{") (expression_statement "pcVar11 = "Error Loading request extension section %s\n";" (assignment_expression "pcVar11 = "Error Loading request extension section %s\n"" (identifier "pcVar11") (= "=") (string_literal ""Error Loading request extension section %s\n"" (" """) (string_content "Error Loading request extension section %s") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "psVar16 = local_524;" (assignment_expression "psVar16 = local_524" (identifier "psVar16") (= "=") (identifier "local_524")) (; ";")) (labeled_statement "LAB_0004fba6:\n      BIO_printf(DAT_000c458c,pcVar11,psVar16);" (statement_identifier "LAB_0004fba6") (: ":") (expression_statement "BIO_printf(DAT_000c458c,pcVar11,psVar16);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,psVar16)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar11,psVar16)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar11") (, ",") (identifier "psVar16") () ")"))) (; ";"))) (goto_statement "goto LAB_0004e54e;" (goto "goto") (statement_identifier "LAB_0004e54e") (; ";")) (} "}"))) (} "}"))))) (if_statement "if (local_514 == 0) {\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }\n  else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" (if "if") (parenthesized_expression "(local_514 == 0)" (( "(") (binary_expression "local_514 == 0" (identifier "local_514") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }\n  }" ({ "{") (labeled_statement "LAB_0004f1d1:\n    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" (statement_identifier "LAB_0004f1d1") (: ":") (if_statement "if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }\n    else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" (if "if") (parenthesized_expression "((local_4d0 == (BIO *)0x0) && (bVar31 != false))" (( "(") (binary_expression "(local_4d0 == (BIO *)0x0) && (bVar31 != false)" (parenthesized_expression "(local_4d0 == (BIO *)0x0)" (( "(") (binary_expression "local_4d0 == (BIO *)0x0" (identifier "local_4d0") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(bVar31 != false)" (( "(") (binary_expression "bVar31 != false" (identifier "bVar31") (!= "!=") (false "false")) () ")"))) () ")")) (compound_statement "{\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);\n      if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }\n    }" ({ "{") (expression_statement "FUN_00072430(DAT_000c4a98,&DAT_00091821);" (call_expression "FUN_00072430(DAT_000c4a98,&DAT_00091821)" (identifier "FUN_00072430") (argument_list "(DAT_000c4a98,&DAT_00091821)" (( "(") (identifier "DAT_000c4a98") (, ",") (pointer_expression "&DAT_00091821" (& "&") (identifier "DAT_00091821")) () ")"))) (; ";")) (expression_statement "iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);" (assignment_expression "iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac)" (identifier "iVar10") (= "=") (call_expression "NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac)" (identifier "NCONF_get_number_e") (argument_list "(DAT_000c4a98,"req","default_bits",&local_4ac)" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""default_bits"" (" """) (string_content "default_bits") (" """)) (, ",") (pointer_expression "&local_4ac" (& "&") (identifier "local_4ac")) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }\n      else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_4ac = 0x800;\n        if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }\nLAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;\n        x_00 = (X509_REQ *)0x0;\nLAB_000501da:\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n        local_564 = 1;\n      }" ({ "{") (expression_statement "local_4ac = 0x800;" (assignment_expression "local_4ac = 0x800" (identifier "local_4ac") (= "=") (number_literal "0x800")) (; ";")) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }" (if "if") (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" (( "(") (binary_expression "local_570 == (EVP_PKEY *)0x0" (identifier "local_570") (== "==") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);\n          if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }\n          goto LAB_0004f2bc;\n        }" ({ "{") (labeled_statement "LAB_000500d7:\n          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" (statement_identifier "LAB_000500d7") (: ":") (expression_statement "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" (assignment_expression "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0004d840(&local_4c8,local_544)" (identifier "FUN_0004d840") (argument_list "(&local_4c8,local_544)" (( "(") (pointer_expression "&local_4c8" (& "&") (identifier "local_4c8")) (, ",") (identifier "local_544") () ")"))))) (; ";"))) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }" (if "if") (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" (( "(") (binary_expression "local_570 == (EVP_PKEY *)0x0" (identifier "local_570") (== "==") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            x_00 = (X509_REQ *)0x0;\n            x = (X509 *)0x0;\n            local_560 = (BIO *)0x0;\n            local_548 = (BIO *)0x0;\n            local_564 = 1;\n            goto LAB_0004e56a;\n          }" ({ "{") (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (goto_statement "goto LAB_0004f2bc;" (goto "goto") (statement_identifier "LAB_0004f2bc") (; ";")) (} "}"))) (labeled_statement "LAB_0004f245:\n        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" (statement_identifier "LAB_0004f245") (: ":") (expression_statement "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);" (assignment_expression "local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)FUN_0004d840(&local_4c8,local_544)" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0004d840(&local_4c8,local_544)" (identifier "FUN_0004d840") (argument_list "(&local_4c8,local_544)" (( "(") (pointer_expression "&local_4c8" (& "&") (identifier "local_4c8")) (, ",") (identifier "local_544") () ")"))))) (; ";"))) (if_statement "if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;" (if "if") (parenthesized_expression "(local_570 != (EVP_PKEY *)0x0)" (( "(") (binary_expression "local_570 != (EVP_PKEY *)0x0" (identifier "local_570") (!= "!=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004f275;" (goto "goto") (statement_identifier "LAB_0004f275") (; ";"))) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000501da:\n        x = (X509 *)0x0;" (statement_identifier "LAB_000501da") (: ":") (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" (else "else") (compound_statement "{\n        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;\nLAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }\nLAB_0004ff7c:\n        local_564 = 1;\n        x_00 = (X509_REQ *)0x0;\n        x = (X509 *)0x0;\n        local_560 = (BIO *)0x0;\n        local_548 = (BIO *)0x0;\n      }" ({ "{") (if_statement "if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;" (if "if") (parenthesized_expression "(local_570 != (EVP_PKEY *)0x0)" (( "(") (binary_expression "local_570 != (EVP_PKEY *)0x0" (identifier "local_570") (!= "!=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004f245;" (goto "goto") (statement_identifier "LAB_0004f245") (; ";"))) (labeled_statement "LAB_0004f275:\n        if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" (statement_identifier "LAB_0004f275") (: ":") (if_statement "if (local_4ac < 0x200) {\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }\n        else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" (if "if") (parenthesized_expression "(local_4ac < 0x200)" (( "(") (binary_expression "local_4ac < 0x200" (identifier "local_4ac") (< "<") (number_literal "0x200")) () ")")) (compound_statement "{\n          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;\n          BIO_printf(DAT_000c458c,"private key length is too short,\n");\n          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);\n        }" ({ "{") (if_statement "if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;" (if "if") (parenthesized_expression "((local_4bc != 0x74) && (local_4bc != 6))" (( "(") (binary_expression "(local_4bc != 0x74) && (local_4bc != 6)" (parenthesized_expression "(local_4bc != 0x74)" (( "(") (binary_expression "local_4bc != 0x74" (identifier "local_4bc") (!= "!=") (number_literal "0x74")) () ")")) (&& "&&") (parenthesized_expression "(local_4bc != 6)" (( "(") (binary_expression "local_4bc != 6" (identifier "local_4bc") (!= "!=") (number_literal "6")) () ")"))) () ")")) (goto_statement "goto LAB_0004f2b0;" (goto "goto") (statement_identifier "LAB_0004f2b0") (; ";"))) (expression_statement "BIO_printf(DAT_000c458c,"private key length is too short,\n");" (call_expression "BIO_printf(DAT_000c458c,"private key length is too short,\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"private key length is too short,\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""private key length is too short,\n"" (" """) (string_content "private key length is too short,") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""it needs to be at least %d bits, not %ld\n"" (" """) (string_content "it needs to be at least %d bits, not %ld") (escape_sequence "\n") (" """)) (, ",") (number_literal "0x200") (, ",") (identifier "local_4ac") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" (else "else") (compound_statement "{\n          if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }\n          if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }\nLAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;\nLAB_0004f2bc:\n          iVar10 = 0;\n          if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }\n          if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }\n          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);\n          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);\n          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);\n          if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }\n          BIO_puts(DAT_000c458c,"Error Generating Key\n");\n        }" ({ "{") (if_statement "if ((0x4000 < local_4ac) && (local_4bc == 6)) {\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }" (if "if") (parenthesized_expression "((0x4000 < local_4ac) && (local_4bc == 6))" (( "(") (binary_expression "(0x4000 < local_4ac) && (local_4bc == 6)" (parenthesized_expression "(0x4000 < local_4ac)" (( "(") (binary_expression "0x4000 < local_4ac" (number_literal "0x4000") (< "<") (identifier "local_4ac")) () ")")) (&& "&&") (parenthesized_expression "(local_4bc == 6)" (( "(") (binary_expression "local_4bc == 6" (identifier "local_4bc") (== "==") (number_literal "6")) () ")"))) () ")")) (compound_statement "{\n            pcVar11 = (char *)0x4000;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);\n          }" ({ "{") (expression_statement "pcVar11 = (char *)0x4000;" (assignment_expression "pcVar11 = (char *)0x4000" (identifier "pcVar11") (= "=") (cast_expression "(char *)0x4000" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4000"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,0x4000,local_4ac)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"" (" """) (string_content "Warning: It is not recommended to use more than %d bit for RSA keys.") (escape_sequence "\n") (string_content "         Your key size is %ld! Larger key size may behave not as expected.") (escape_sequence "\n") (" """)) (, ",") (number_literal "0x4000") (, ",") (identifier "local_4ac") () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_4bc == 0x74) && (10000 < local_4ac)) {\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }" (if "if") (parenthesized_expression "((local_4bc == 0x74) && (10000 < local_4ac))" (( "(") (binary_expression "(local_4bc == 0x74) && (10000 < local_4ac)" (parenthesized_expression "(local_4bc == 0x74)" (( "(") (binary_expression "local_4bc == 0x74" (identifier "local_4bc") (== "==") (number_literal "0x74")) () ")")) (&& "&&") (parenthesized_expression "(10000 < local_4ac)" (( "(") (binary_expression "10000 < local_4ac" (number_literal "10000") (< "<") (identifier "local_4ac")) () ")"))) () ")")) (compound_statement "{\n            pcVar11 = (char *)0x2710;\n            BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);\n          }" ({ "{") (expression_statement "pcVar11 = (char *)0x2710;" (assignment_expression "pcVar11 = (char *)0x2710" (identifier "pcVar11") (= "=") (cast_expression "(char *)0x2710" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2710"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac);" (call_expression "BIO_printf(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,\n                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"\n                       ,10000,local_4ac)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"" (" """) (string_content "Warning: It is not recommended to use more than %d bit for DSA keys.") (escape_sequence "\n") (string_content "         Your key size is %ld! Larger key size may behave not as expected.") (escape_sequence "\n") (" """)) (, ",") (number_literal "10000") (, ",") (identifier "local_4ac") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0004f2b0:\n          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;" (statement_identifier "LAB_0004f2b0") (: ":") (if_statement "if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;" (if "if") (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" (( "(") (binary_expression "local_570 == (EVP_PKEY *)0x0" (identifier "local_570") (== "==") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000500d7;" (goto "goto") (statement_identifier "LAB_000500d7") (; ";")))) (labeled_statement "LAB_0004f2bc:\n          iVar10 = 0;" (statement_identifier "LAB_0004f2bc") (: ":") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_55c != 0) {\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(local_55c != 0)" (( "(") (binary_expression "local_55c != 0" (identifier "local_55c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }\n          }" ({ "{") (for_statement "for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }" (for "for") (( "(") (; ";") (comma_expression "iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(local_55c)" (identifier "iVar18") (= "=") (call_expression "OPENSSL_sk_num(local_55c)" (identifier "OPENSSL_sk_num") (argument_list "(local_55c)" (( "(") (identifier "local_55c") () ")")))) (, ",") (binary_expression "iVar10 < iVar18" (identifier "iVar10") (< "<") (identifier "iVar18"))) (; ";") (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n              uVar35 = OPENSSL_sk_value(local_55c,iVar10);\n              iVar18 = FUN_00075300(local_570,uVar35);\n              if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }\n            }" ({ "{") (expression_statement "uVar35 = OPENSSL_sk_value(local_55c,iVar10);" (assignment_expression "uVar35 = OPENSSL_sk_value(local_55c,iVar10)" (identifier "uVar35") (= "=") (call_expression "OPENSSL_sk_value(local_55c,iVar10)" (identifier "OPENSSL_sk_value") (argument_list "(local_55c,iVar10)" (( "(") (identifier "local_55c") (, ",") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "iVar18 = FUN_00075300(local_570,uVar35);" (assignment_expression "iVar18 = FUN_00075300(local_570,uVar35)" (identifier "iVar18") (= "=") (call_expression "FUN_00075300(local_570,uVar35)" (identifier "FUN_00075300") (argument_list "(local_570,uVar35)" (( "(") (identifier "local_570") (, ",") (identifier "uVar35") () ")")))) (; ";")) (if_statement "if (iVar18 < 1) {\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }" (if "if") (parenthesized_expression "(iVar18 < 1)" (( "(") (binary_expression "iVar18 < 1" (identifier "iVar18") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);\n                ERR_print_errors(DAT_000c458c);\n                goto LAB_0004ff7c;\n              }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);" (call_expression "BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"parameter error \"%s\"\n",uVar35)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""parameter error \"%s\"\n"" (" """) (string_content "parameter error ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar35") () ")"))) (; ";")) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (goto_statement "goto LAB_0004ff7c;" (goto "goto") (statement_identifier "LAB_0004ff7c") (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (local_4bc == 0x198) {\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }\n          else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" (if "if") (parenthesized_expression "(local_4bc == 0x198)" (( "(") (binary_expression "local_4bc == 0x198" (identifier "local_4bc") (== "==") (number_literal "0x198")) () ")")) (compound_statement "{\n            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);\n          }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);" (call_expression "BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Generating an EC private key\n",pcVar11)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Generating an EC private key\n"" (" """) (string_content "Generating an EC private key") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar11") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" (else "else") (compound_statement "{\n            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);\n          }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);" (call_expression "BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Generating a %s private key\n",local_4c8)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Generating a %s private key\n"" (" """) (string_content "Generating a %s private key") (escape_sequence "\n") (" """)) (, ",") (identifier "local_4c8") () ")"))) (; ";")) (} "}")))) (expression_statement "EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);" (call_expression "EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710)" (identifier "EVP_PKEY_CTX_set_cb") (argument_list "((EVP_PKEY_CTX *)local_570,FUN_0004d710)" (( "(") (cast_expression "(EVP_PKEY_CTX *)local_570" (( "(") (type_descriptor "EVP_PKEY_CTX *" (type_identifier "EVP_PKEY_CTX") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_570")) (, ",") (identifier "FUN_0004d710") () ")"))) (; ";")) (expression_statement "EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);" (call_expression "EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c)" (identifier "EVP_PKEY_CTX_set_app_data") (argument_list "((EVP_PKEY_CTX *)local_570,DAT_000c458c)" (( "(") (cast_expression "(EVP_PKEY_CTX *)local_570" (( "(") (type_descriptor "EVP_PKEY_CTX *" (type_identifier "EVP_PKEY_CTX") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_570")) (, ",") (identifier "DAT_000c458c") () ")"))) (; ";")) (expression_statement "iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);" (assignment_expression "iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" (identifier "iVar10") (= "=") (call_expression "EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" (identifier "EVP_PKEY_keygen") (argument_list "((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0)" (( "(") (cast_expression "(EVP_PKEY_CTX *)local_570" (( "(") (type_descriptor "EVP_PKEY_CTX *" (type_identifier "EVP_PKEY_CTX") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_570")) (, ",") (cast_expression "(EVP_PKEY **)&local_4d0" (( "(") (type_descriptor "EVP_PKEY **" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_4d0" (& "&") (identifier "local_4d0"))) () ")")))) (; ";")) (if_statement "if (0 < iVar10) {\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }" (if "if") (parenthesized_expression "(0 < iVar10)" (( "(") (binary_expression "0 < iVar10" (number_literal "0") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);\n            if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }\n            BIO_printf(DAT_000c458c,pcVar12,pcVar11);\n            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);\n            if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }\n            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");\n            bVar31 = pbVar17 == (byte *)0x0;\n            if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }\n            pEVar8 = (EVP_CIPHER *)0x0;\n            if (!bVar3) {\n              pEVar8 = local_500;\n            }\n            iVar10 = 0;\n            while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }\n            BIO_free(local_560);\n            BIO_printf(DAT_000c458c,"-----\n");\n            goto LAB_0004f6c0;\n          }" ({ "{") (expression_statement "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);" (call_expression "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570)" (identifier "EVP_PKEY_CTX_free") (argument_list "((EVP_PKEY_CTX *)local_570)" (( "(") (cast_expression "(EVP_PKEY_CTX *)local_570" (( "(") (type_descriptor "EVP_PKEY_CTX *" (type_identifier "EVP_PKEY_CTX") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_570")) () ")"))) (; ";")) (if_statement "if (local_518 == (char *)0x0) {\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }\n            else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" (if "if") (parenthesized_expression "(local_518 == (char *)0x0)" (( "(") (binary_expression "local_518 == (char *)0x0" (identifier "local_518") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pcVar11 = "default_keyfile";\n              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");\n              if (local_518 != (char *)0x0) goto LAB_0004f392;\n              ERR_clear_error();\n              pcVar12 = "writing new private key to stdout\n";\n            }" ({ "{") (expression_statement "pcVar11 = "default_keyfile";" (assignment_expression "pcVar11 = "default_keyfile"" (identifier "pcVar11") (= "=") (string_literal ""default_keyfile"" (" """) (string_content "default_keyfile") (" """))) (; ";")) (expression_statement "local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");" (assignment_expression "local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile")" (identifier "local_518") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,"req","default_keyfile")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","default_keyfile")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""default_keyfile"" (" """) (string_content "default_keyfile") (" """)) () ")")))) (; ";")) (if_statement "if (local_518 != (char *)0x0) goto LAB_0004f392;" (if "if") (parenthesized_expression "(local_518 != (char *)0x0)" (( "(") (binary_expression "local_518 != (char *)0x0" (identifier "local_518") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004f392;" (goto "goto") (statement_identifier "LAB_0004f392") (; ";"))) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar12 = "writing new private key to stdout\n";" (assignment_expression "pcVar12 = "writing new private key to stdout\n"" (identifier "pcVar12") (= "=") (string_literal ""writing new private key to stdout\n"" (" """) (string_content "writing new private key to stdout") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" (else "else") (compound_statement "{\nLAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";\n              pcVar11 = local_518;\n            }" ({ "{") (labeled_statement "LAB_0004f392:\n              pcVar12 = "writing new private key to \'%s\'\n";" (statement_identifier "LAB_0004f392") (: ":") (expression_statement "pcVar12 = "writing new private key to \'%s\'\n";" (assignment_expression "pcVar12 = "writing new private key to \'%s\'\n"" (identifier "pcVar12") (= "=") (string_literal ""writing new private key to \'%s\'\n"" (" """) (string_content "writing new private key to ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (escape_sequence "\n") (" """))) (; ";"))) (expression_statement "pcVar11 = local_518;" (assignment_expression "pcVar11 = local_518" (identifier "pcVar11") (= "=") (identifier "local_518")) (; ";")) (} "}")))) (expression_statement "BIO_printf(DAT_000c458c,pcVar12,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar12,pcVar11)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar11") () ")"))) (; ";")) (expression_statement "local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);" (assignment_expression "local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" (identifier "local_560") (= "=") (cast_expression "(BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0)" (identifier "FUN_00076e70") (argument_list "(local_518,local_4b4,pBVar14 == (BIO *)0x0)" (( "(") (identifier "local_518") (, ",") (identifier "local_4b4") (, ",") (binary_expression "pBVar14 == (BIO *)0x0" (identifier "pBVar14") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (if_statement "if (local_560 == (BIO *)0x0) {\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }" (if "if") (parenthesized_expression "(local_560 == (BIO *)0x0)" (( "(") (binary_expression "local_560 == (BIO *)0x0" (identifier "local_560") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              x_00 = (X509_REQ *)0x0;\n              x = (X509 *)0x0;\n              local_570 = (EVP_PKEY *)0x0;\n              local_548 = (BIO *)0x0;\n              local_564 = 1;\n              goto LAB_0004e56a;\n            }" ({ "{") (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" (identifier "pbVar17") (= "=") (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","encrypt_rsa_key")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""encrypt_rsa_key"" (" """) (string_content "encrypt_rsa_key") (" """)) () ")"))))) (; ";")) (expression_statement "bVar31 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar31 = pbVar17 == (byte *)0x0" (identifier "bVar31") (= "=") (binary_expression "pbVar17 == (byte *)0x0" (identifier "pbVar17") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar31) {\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }\n            else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" (if "if") (parenthesized_expression "(bVar31)" (( "(") (identifier "bVar31") () ")")) (compound_statement "{\n              ERR_clear_error();\n              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");\n              bVar31 = pbVar17 == (byte *)0x0;\n              if (!bVar31) goto LAB_0004f40c;\n              ERR_clear_error();\n              local_500 = pEVar8;\n            }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");" (assignment_expression "pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" (identifier "pbVar17") (= "=") (cast_expression "(byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "NCONF_get_string(DAT_000c4a98,"req","encrypt_key")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","encrypt_key")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""encrypt_key"" (" """) (string_content "encrypt_key") (" """)) () ")"))))) (; ";")) (expression_statement "bVar31 = pbVar17 == (byte *)0x0;" (assignment_expression "bVar31 = pbVar17 == (byte *)0x0" (identifier "bVar31") (= "=") (binary_expression "pbVar17 == (byte *)0x0" (identifier "pbVar17") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (!bVar31) goto LAB_0004f40c;" (if "if") (parenthesized_expression "(!bVar31)" (( "(") (unary_expression "!bVar31" (! "!") (identifier "bVar31")) () ")")) (goto_statement "goto LAB_0004f40c;" (goto "goto") (statement_identifier "LAB_0004f40c") (; ";"))) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_500 = pEVar8;" (assignment_expression "local_500 = pEVar8" (identifier "local_500") (= "=") (identifier "pEVar8")) (; ";")) (} "}")) (else_clause "else {\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" (else "else") (compound_statement "{\nLAB_0004f40c:\n              bVar29 = false;\n              iVar10 = 3;\n              pbVar28 = &DAT_0007e9a6;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);\n              local_500 = (EVP_CIPHER *)0x0;\n              if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }\n            }" ({ "{") (labeled_statement "LAB_0004f40c:\n              bVar29 = false;" (statement_identifier "LAB_0004f40c") (: ":") (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" (identifier "bVar29") (= "=") (false "false")) (; ";"))) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" (identifier "iVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar28 = &DAT_0007e9a6;" (assignment_expression "pbVar28 = &DAT_0007e9a6" (identifier "pbVar28") (= "=") (pointer_expression "&DAT_0007e9a6" (& "&") (identifier "DAT_0007e9a6"))) (; ";")) (do_statement "do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              } while (bVar31);" (do "do") (compound_statement "{\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar29 = *pbVar17 < *pbVar28;\n                bVar31 = *pbVar17 == *pbVar28;\n                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;\n                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar29 = *pbVar17 < *pbVar28;" (assignment_expression "bVar29 = *pbVar17 < *pbVar28" (identifier "bVar29") (= "=") (binary_expression "*pbVar17 < *pbVar28" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")))) (; ";")) (expression_statement "bVar31 = *pbVar17 == *pbVar28;" (assignment_expression "bVar31 = *pbVar17 == *pbVar28" (identifier "bVar31") (= "=") (binary_expression "*pbVar17 == *pbVar28" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar32 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar32")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar28 + (uint)bVar32 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar32 * -2" (identifier "pbVar28") (+ "+") (binary_expression "(uint)bVar32 * -2" (cast_expression "(uint)bVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar32")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar31)" (( "(") (identifier "bVar31") () ")")) (; ";")) (expression_statement "local_500 = (EVP_CIPHER *)0x0;" (assignment_expression "local_500 = (EVP_CIPHER *)0x0" (identifier "local_500") (= "=") (cast_expression "(EVP_CIPHER *)0x0" (( "(") (type_descriptor "EVP_CIPHER *" (type_identifier "EVP_CIPHER") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((!bVar29 && !bVar31) != bVar29) {\n                local_500 = pEVar8;\n              }" (if "if") (parenthesized_expression "((!bVar29 && !bVar31) != bVar29)" (( "(") (binary_expression "(!bVar29 && !bVar31) != bVar29" (parenthesized_expression "(!bVar29 && !bVar31)" (( "(") (binary_expression "!bVar29 && !bVar31" (unary_expression "!bVar29" (! "!") (identifier "bVar29")) (&& "&&") (unary_expression "!bVar31" (! "!") (identifier "bVar31"))) () ")")) (!= "!=") (identifier "bVar29")) () ")")) (compound_statement "{\n                local_500 = pEVar8;\n              }" ({ "{") (expression_statement "local_500 = pEVar8;" (assignment_expression "local_500 = pEVar8" (identifier "local_500") (= "=") (identifier "pEVar8")) (; ";")) (} "}"))) (} "}")))) (expression_statement "pEVar8 = (EVP_CIPHER *)0x0;" (assignment_expression "pEVar8 = (EVP_CIPHER *)0x0" (identifier "pEVar8") (= "=") (cast_expression "(EVP_CIPHER *)0x0" (( "(") (type_descriptor "EVP_CIPHER *" (type_identifier "EVP_CIPHER") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (!bVar3) {\n              pEVar8 = local_500;\n            }" (if "if") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")")) (compound_statement "{\n              pEVar8 = local_500;\n            }" ({ "{") (expression_statement "pEVar8 = local_500;" (assignment_expression "pEVar8 = local_500" (identifier "pEVar8") (= "=") (identifier "local_500")) (; ";")) (} "}"))) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (while_statement "while (iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }" (while "while") (parenthesized_expression "(iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0)" (( "(") (comma_expression "iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0), iVar18 == 0" (assignment_expression "iVar18 = PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" (identifier "iVar18") (= "=") (call_expression "PEM_write_bio_PrivateKey\n                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" (identifier "PEM_write_bio_PrivateKey") (argument_list "(local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,\n                                       (undefined1 *)0x0,local_4c0)" (( "(") (identifier "local_560") (, ",") (cast_expression "(EVP_PKEY *)local_4d0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_4d0")) (, ",") (identifier "pEVar8") (, ",") (cast_expression "(uchar *)0x0" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "0") (, ",") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (identifier "local_4c0") () ")")))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n              uVar19 = ERR_peek_error();\n              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }\n              ERR_clear_error();\n              iVar10 = iVar10 + 1;\n            }" ({ "{") (expression_statement "uVar19 = ERR_peek_error();" (assignment_expression "uVar19 = ERR_peek_error()" (identifier "uVar19") (= "=") (call_expression "ERR_peek_error()" (identifier "ERR_peek_error") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }" (if "if") (parenthesized_expression "(((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3))" (( "(") (binary_expression "((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)" (parenthesized_expression "((uVar19 & 0xfff) != 0x6d)" (( "(") (binary_expression "(uVar19 & 0xfff) != 0x6d" (parenthesized_expression "(uVar19 & 0xfff)" (( "(") (binary_expression "uVar19 & 0xfff" (identifier "uVar19") (& "&") (number_literal "0xfff")) () ")")) (!= "!=") (number_literal "0x6d")) () ")")) (|| "||") (parenthesized_expression "(iVar10 == 3)" (( "(") (binary_expression "iVar10 == 3" (identifier "iVar10") (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n                local_564 = 1;\n                x_00 = (X509_REQ *)0x0;\n                x = (X509 *)0x0;\n                local_570 = (EVP_PKEY *)0x0;\n                local_548 = (BIO *)0x0;\n                goto LAB_0004e56a;\n              }" ({ "{") (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "BIO_free(local_560);" (call_expression "BIO_free(local_560)" (identifier "BIO_free") (argument_list "(local_560)" (( "(") (identifier "local_560") () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"-----\n");" (call_expression "BIO_printf(DAT_000c458c,"-----\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"-----\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""-----\n"" (" """) (string_content "-----") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0004f6c0;" (goto "goto") (statement_identifier "LAB_0004f6c0") (; ";")) (} "}"))) (expression_statement "BIO_puts(DAT_000c458c,"Error Generating Key\n");" (call_expression "BIO_puts(DAT_000c458c,"Error Generating Key\n")" (identifier "BIO_puts") (argument_list "(DAT_000c458c,"Error Generating Key\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Error Generating Key\n"" (" """) (string_content "Error Generating Key") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))))) (labeled_statement "LAB_0004ff7c:\n        local_564 = 1;" (statement_identifier "LAB_0004ff7c") (: ":") (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";"))) (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" (else "else") (compound_statement "{\n      if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }\n      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);\n      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;\n      if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }\n      if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }\n      bVar31 = local_51c != 0;\n      x = (X509 *)0x0;\nLAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }\nLAB_0004fc7f:\n      local_564 = local_578 & local_564;\n      if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }\nLAB_0004fce0:\n      puVar6 = local_4b4;\n      if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }\n      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }\n      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);\n      if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }\n      if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }\n      uVar19 = local_4a8;\n      local_564 = 0;\n      if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }\n      if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }\n      local_570 = (EVP_PKEY *)0x0;\n      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);\n      local_564 = local_598;\n    }" ({ "{") (if_statement "if (bVar29) {\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }" (if "if") (parenthesized_expression "(bVar29)" (( "(") (identifier "bVar29") () ")")) (compound_statement "{\nLAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }\n        x_00 = X509_REQ_new();\n        pBVar14 = local_4d0;\n        if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");\n        if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }\n        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");\n        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }\n        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);\n        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }\n        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");\n        if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }\n        uVar35 = 0;\n        psVar36 = psVar21;\n        iVar10 = X509_REQ_set_version(x_00,0);\n        if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }\n        if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }\n        iVar10 = FUN_0004dcf0(local_57c);\n        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;\n        if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }\nLAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);\n        X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }\n        goto LAB_0004f82c;\n      }" ({ "{") (labeled_statement "LAB_0004f6c0:\n        if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" (statement_identifier "LAB_0004f6c0") (: ":") (if_statement "if (local_4d0 == (BIO *)0x0) {\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" (if "if") (parenthesized_expression "(local_4d0 == (BIO *)0x0)" (( "(") (binary_expression "local_4d0 == (BIO *)0x0" (identifier "local_4d0") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          x_00 = (X509_REQ *)0x0;\n          local_548 = (BIO *)0x0;\nLAB_000505b7:\n          x = (X509 *)0x0;\n          BIO_printf(DAT_000c458c,"you need to specify a private key\n");\n          local_564 = 1;\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n          goto LAB_0004e56a;\n        }" ({ "{") (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000505b7:\n          x = (X509 *)0x0;" (statement_identifier "LAB_000505b7") (: ":") (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "BIO_printf(DAT_000c458c,"you need to specify a private key\n");" (call_expression "BIO_printf(DAT_000c458c,"you need to specify a private key\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"you need to specify a private key\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""you need to specify a private key\n"" (" """) (string_content "you need to specify a private key") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}")))) (expression_statement "x_00 = X509_REQ_new();" (assignment_expression "x_00 = X509_REQ_new()" (identifier "x_00") (= "=") (call_expression "X509_REQ_new()" (identifier "X509_REQ_new") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pBVar14 = local_4d0;" (assignment_expression "pBVar14 = local_4d0" (identifier "pBVar14") (= "=") (identifier "local_4d0")) (; ";")) (if_statement "if (x_00 == (X509_REQ *)0x0) {\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }" (if "if") (parenthesized_expression "(x_00 == (X509_REQ *)0x0)" (( "(") (binary_expression "x_00 == (X509_REQ *)0x0" (identifier "x_00") (== "==") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_000501da;\n        }" ({ "{") (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000501da;" (goto "goto") (statement_identifier "LAB_000501da") (; ";")) (} "}"))) (expression_statement "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");" (assignment_expression "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt")" (identifier "pcVar11") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,"req","prompt")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","prompt")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""prompt"" (" """) (string_content "prompt") (" """)) () ")")))) (; ";")) (if_statement "if (pcVar11 == (char *)0x0) {\n          ERR_clear_error();\n          bVar31 = false;\n        }\n        else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" (if "if") (parenthesized_expression "(pcVar11 == (char *)0x0)" (( "(") (binary_expression "pcVar11 == (char *)0x0" (identifier "pcVar11") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          ERR_clear_error();\n          bVar31 = false;\n        }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" (identifier "bVar31") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" (else "else") (compound_statement "{\n          iVar10 = strcmp(pcVar11,"no");\n          bVar31 = iVar10 == 0;\n        }" ({ "{") (expression_statement "iVar10 = strcmp(pcVar11,"no");" (assignment_expression "iVar10 = strcmp(pcVar11,"no")" (identifier "iVar10") (= "=") (call_expression "strcmp(pcVar11,"no")" (identifier "strcmp") (argument_list "(pcVar11,"no")" (( "(") (identifier "pcVar11") (, ",") (string_literal ""no"" (" """) (string_content "no") (" """)) () ")")))) (; ";")) (expression_statement "bVar31 = iVar10 == 0;" (assignment_expression "bVar31 = iVar10 == 0" (identifier "bVar31") (= "=") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) (; ";")) (} "}")))) (expression_statement "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");" (assignment_expression "pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name")" (identifier "pcVar11") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,"req","distinguished_name")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","distinguished_name")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""distinguished_name"" (" """) (string_content "distinguished_name") (" """)) () ")")))) (; ";")) (if_statement "if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }" (if "if") (parenthesized_expression "((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "(stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0" (cast_expression "(stack_st_CONF_VALUE *)pcVar11" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar11")) (== "==") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar12 = "unable to find \'%s\' in config\n";\n          pcVar11 = "distinguished_name";\n          psVar16 = extraout_ECX;\nLAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);\n          goto LAB_0004f815;\n        }" ({ "{") (expression_statement "pcVar12 = "unable to find \'%s\' in config\n";" (assignment_expression "pcVar12 = "unable to find \'%s\' in config\n"" (identifier "pcVar12") (= "=") (string_literal ""unable to find \'%s\' in config\n"" (" """) (string_content "unable to find ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " in config") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "pcVar11 = "distinguished_name";" (assignment_expression "pcVar11 = "distinguished_name"" (identifier "pcVar11") (= "=") (string_literal ""distinguished_name"" (" """) (string_content "distinguished_name") (" """))) (; ";")) (expression_statement "psVar16 = extraout_ECX;" (assignment_expression "psVar16 = extraout_ECX" (identifier "psVar16") (= "=") (identifier "extraout_ECX")) (; ";")) (labeled_statement "LAB_0005074a:\n          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);" (statement_identifier "LAB_0005074a") (: ":") (expression_statement "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);" (assignment_expression "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar12,pcVar11,psVar16)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar11") (, ",") (identifier "psVar16") () ")"))))) (; ";"))) (goto_statement "goto LAB_0004f815;" (goto "goto") (statement_identifier "LAB_0004f815") (; ";")) (} "}"))) (expression_statement "psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);" (assignment_expression "psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11)" (identifier "psVar16") (= "=") (call_expression "NCONF_get_section(DAT_000c4a98,pcVar11)" (identifier "NCONF_get_section") (argument_list "(DAT_000c4a98,pcVar11)" (( "(") (identifier "DAT_000c4a98") (, ",") (identifier "pcVar11") () ")")))) (; ";")) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) {\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }" (if "if") (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" (identifier "psVar16") (== "==") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar12 = "unable to get \'%s\' section\n";\n          psVar16 = extraout_EDX;\n          goto LAB_0005074a;\n        }" ({ "{") (expression_statement "pcVar12 = "unable to get \'%s\' section\n";" (assignment_expression "pcVar12 = "unable to get \'%s\' section\n"" (identifier "pcVar12") (= "=") (string_literal ""unable to get \'%s\' section\n"" (" """) (string_content "unable to get ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " section") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "psVar16 = extraout_EDX;" (assignment_expression "psVar16 = extraout_EDX" (identifier "psVar16") (= "=") (identifier "extraout_EDX")) (; ";")) (goto_statement "goto LAB_0005074a;" (goto "goto") (statement_identifier "LAB_0005074a") (; ";")) (} "}"))) (expression_statement "section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");" (assignment_expression "section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes")" (identifier "section") (= "=") (cast_expression "(stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes")" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "NCONF_get_string(DAT_000c4a98,"req","attributes")" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,"req","attributes")" (( "(") (identifier "DAT_000c4a98") (, ",") (string_literal ""req"" (" """) (string_content "req") (" """)) (, ",") (string_literal ""attributes"" (" """) (string_content "attributes") (" """)) () ")"))))) (; ";")) (if_statement "if (section == (stack_st_CONF_VALUE *)0x0) {\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }\n        else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" (if "if") (parenthesized_expression "(section == (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "section == (stack_st_CONF_VALUE *)0x0" (identifier "section") (== "==") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          psVar21 = section;\n          ERR_clear_error();\n          local_548 = (BIO *)0x0;\n        }" ({ "{") (expression_statement "psVar21 = section;" (assignment_expression "psVar21 = section" (identifier "psVar21") (= "=") (identifier "section")) (; ";")) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" (else "else") (compound_statement "{\n          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);\n          local_548 = (BIO *)psVar21;\n          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }\n        }" ({ "{") (expression_statement "psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);" (assignment_expression "psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section)" (identifier "psVar21") (= "=") (call_expression "NCONF_get_section(DAT_000c4a98,(char *)section)" (identifier "NCONF_get_section") (argument_list "(DAT_000c4a98,(char *)section)" (( "(") (identifier "DAT_000c4a98") (, ",") (cast_expression "(char *)section" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "section")) () ")")))) (; ";")) (expression_statement "local_548 = (BIO *)psVar21;" (assignment_expression "local_548 = (BIO *)psVar21" (identifier "local_548") (= "=") (cast_expression "(BIO *)psVar21" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "psVar21"))) (; ";")) (if_statement "if (psVar21 == (stack_st_CONF_VALUE *)0x0) {\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }" (if "if") (parenthesized_expression "(psVar21 == (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "psVar21 == (stack_st_CONF_VALUE *)0x0" (identifier "psVar21") (== "==") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar12 = "unable to get \'%s\' section\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)section;\n            goto LAB_0005074a;\n          }" ({ "{") (expression_statement "pcVar12 = "unable to get \'%s\' section\n";" (assignment_expression "pcVar12 = "unable to get \'%s\' section\n"" (identifier "pcVar12") (= "=") (string_literal ""unable to get \'%s\' section\n"" (" """) (string_content "unable to get ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " section") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)0x0" (identifier "psVar16") (= "=") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar11 = (char *)section;" (assignment_expression "pcVar11 = (char *)section" (identifier "pcVar11") (= "=") (cast_expression "(char *)section" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "section"))) (; ";")) (goto_statement "goto LAB_0005074a;" (goto "goto") (statement_identifier "LAB_0005074a") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar36 = psVar21;" (assignment_expression "psVar36 = psVar21" (identifier "psVar36") (= "=") (identifier "psVar21")) (; ";")) (expression_statement "iVar10 = X509_REQ_set_version(x_00,0);" (assignment_expression "iVar10 = X509_REQ_set_version(x_00,0)" (identifier "iVar10") (= "=") (call_expression "X509_REQ_set_version(x_00,0)" (identifier "X509_REQ_set_version") (argument_list "(x_00,0)" (( "(") (identifier "x_00") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004f80b:\n          puVar26 = &DAT_000c458c;\n          goto LAB_0004f815;\n        }" ({ "{") (labeled_statement "LAB_0004f80b:\n          puVar26 = &DAT_000c458c;" (statement_identifier "LAB_0004f80b") (: ":") (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" (identifier "puVar26") (= "=") (pointer_expression "&DAT_000c458c" (& "&") (identifier "DAT_000c458c"))) (; ";"))) (goto_statement "goto LAB_0004f815;" (goto "goto") (statement_identifier "LAB_0004f815") (; ";")) (} "}"))) (if_statement "if (local_51c == 0) {\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }" (if "if") (parenthesized_expression "(local_51c == 0)" (( "(") (binary_expression "local_51c == 0" (identifier "local_51c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }\n          goto LAB_0005074a;\n        }" ({ "{") (if_statement "if (bVar31) {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }\n          else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" (if "if") (parenthesized_expression "(bVar31)" (( "(") (identifier "bVar31") () ")")) (compound_statement "{\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }\n            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }\nLAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";\n            pcVar11 = (char *)psVar16;\n          }" ({ "{") (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" (identifier "pXVar23") (= "=") (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" (( "(") (type_descriptor "X509_NAME *" (type_identifier "X509_NAME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" (identifier "X509_REQ_get_subject_name") (argument_list "(x_00,uVar35,psVar21,psVar36)" (( "(") (identifier "x_00") (, ",") (identifier "uVar35") (, ",") (identifier "psVar21") (, ",") (identifier "psVar36") () ")"))))) (; ";")) (for_statement "for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)\n            {\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }" (for "for") (( "(") (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";") (comma_expression "iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(psVar16)" (identifier "iVar18") (= "=") (call_expression "OPENSSL_sk_num(psVar16)" (identifier "OPENSSL_sk_num") (argument_list "(psVar16)" (( "(") (identifier "psVar16") () ")")))) (, ",") (binary_expression "iVar10 < iVar18" (identifier "iVar10") (< "<") (identifier "iVar18"))) (; ";") (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n              iVar18 = OPENSSL_sk_value(psVar16,iVar10);\n              pbVar17 = *(byte **)(iVar18 + 4);\n              bVar32 = *pbVar17;\n              pbVar28 = pbVar17;\n              if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }\n              iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);\n              if (iVar18 == 0) goto LAB_0004f80b;\n            }" ({ "{") (expression_statement "iVar18 = OPENSSL_sk_value(psVar16,iVar10);" (assignment_expression "iVar18 = OPENSSL_sk_value(psVar16,iVar10)" (identifier "iVar18") (= "=") (call_expression "OPENSSL_sk_value(psVar16,iVar10)" (identifier "OPENSSL_sk_value") (argument_list "(psVar16,iVar10)" (( "(") (identifier "psVar16") (, ",") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "pbVar17 = *(byte **)(iVar18 + 4);" (assignment_expression "pbVar17 = *(byte **)(iVar18 + 4)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(iVar18 + 4)" (* "*") (cast_expression "(byte **)(iVar18 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "bVar32 = *pbVar17;" (assignment_expression "bVar32 = *pbVar17" (identifier "bVar32") (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";")) (expression_statement "pbVar28 = pbVar17;" (assignment_expression "pbVar28 = pbVar17" (identifier "pbVar28") (= "=") (identifier "pbVar17")) (; ";")) (if_statement "if (bVar32 == 0) {\n                set = 0;\n              }\n              else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" (if "if") (parenthesized_expression "(bVar32 == 0)" (( "(") (binary_expression "bVar32 == 0" (identifier "bVar32") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                set = 0;\n              }" ({ "{") (expression_statement "set = 0;" (assignment_expression "set = 0" (identifier "set") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" (else "else") (compound_statement "{\n                do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);\n                set = 0;\n                if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }\n              }" ({ "{") (do_statement "do {\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                } while (bVar32 != 0);" (do "do") (compound_statement "{\n                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }\n                  pbVar28 = (byte *)((int)pbVar28 + 1);\n                  bVar32 = *pbVar28;\n                }" ({ "{") (if_statement "if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }" (if "if") (parenthesized_expression "(((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a))" (( "(") (binary_expression "((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)" (parenthesized_expression "((bVar32 & 0xfd) == 0x2c)" (( "(") (binary_expression "(bVar32 & 0xfd) == 0x2c" (parenthesized_expression "(bVar32 & 0xfd)" (( "(") (binary_expression "bVar32 & 0xfd" (identifier "bVar32") (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0x2c")) () ")")) (|| "||") (parenthesized_expression "(bVar32 == 0x3a)" (( "(") (binary_expression "bVar32 == 0x3a" (identifier "bVar32") (== "==") (number_literal "0x3a")) () ")"))) () ")")) (compound_statement "{\n                    if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }\n                    break;\n                  }" ({ "{") (if_statement "if (*(byte *)((int)pbVar28 + 1) != 0) {\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }" (if "if") (parenthesized_expression "(*(byte *)((int)pbVar28 + 1) != 0)" (( "(") (binary_expression "*(byte *)((int)pbVar28 + 1) != 0" (pointer_expression "*(byte *)((int)pbVar28 + 1)" (* "*") (cast_expression "(byte *)((int)pbVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pbVar28 + 1)" (( "(") (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (+ "+") (number_literal "1")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      pbVar17 = (byte *)((int)pbVar28 + 1);\n                    }" ({ "{") (expression_statement "pbVar17 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar17 = (byte *)((int)pbVar28 + 1)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)((int)pbVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pbVar28 + 1)" (( "(") (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pbVar28 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar28 = (byte *)((int)pbVar28 + 1)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)pbVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pbVar28 + 1)" (( "(") (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar32 = *pbVar28;" (assignment_expression "bVar32 = *pbVar28" (identifier "bVar32") (= "=") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar32 != 0)" (( "(") (binary_expression "bVar32 != 0" (identifier "bVar32") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "set = 0;" (assignment_expression "set = 0" (identifier "set") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*pbVar17 == 0x2b) {\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }" (if "if") (parenthesized_expression "(*pbVar17 == 0x2b)" (( "(") (binary_expression "*pbVar17 == 0x2b" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (number_literal "0x2b")) () ")")) (compound_statement "{\n                  pbVar17 = pbVar17 + 1;\n                  set = -1;\n                }" ({ "{") (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "set = -1;" (assignment_expression "set = -1" (identifier "set") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set);" (assignment_expression "iVar18 = X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" (identifier "iVar18") (= "=") (call_expression "X509_NAME_add_entry_by_txt\n                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" (identifier "X509_NAME_add_entry_by_txt") (argument_list "(pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,\n                                  set)" (( "(") (identifier "pXVar23") (, ",") (cast_expression "(char *)pbVar17" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar17")) (, ",") (identifier "local_4ec") (, ",") (pointer_expression "*(uchar **)(iVar18 + 8)" (* "*") (cast_expression "(uchar **)(iVar18 + 8)" (( "(") (type_descriptor "uchar **" (type_identifier "uchar") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "-1") (, ",") (number_literal "-1") (, ",") (identifier "set") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) goto LAB_0004f80b;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004f80b;" (goto "goto") (statement_identifier "LAB_0004f80b") (; ";"))) (} "}"))) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" (identifier "psVar16") (= "=") (cast_expression "(stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_NAME_entry_count(pXVar23)" (identifier "X509_NAME_entry_count") (argument_list "(pXVar23)" (( "(") (identifier "pXVar23") () ")"))))) (; ";")) (if_statement "if (psVar16 != (stack_st_CONF_VALUE *)0x0) {\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }" (if "if") (parenthesized_expression "(psVar16 != (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "psVar16 != (stack_st_CONF_VALUE *)0x0" (identifier "psVar16") (!= "!=") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }\n              goto LAB_0004f80b;\n            }" ({ "{") (if_statement "if (local_53c == 0) {\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }\n              else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" (if "if") (parenthesized_expression "(local_53c == 0)" (( "(") (binary_expression "local_53c == 0" (identifier "local_53c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }\nLAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) goto LAB_0004fbe2;\n              }" ({ "{") (for_statement "for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18; iVar10 = iVar10 + 1) {\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }" (for "for") (( "(") (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";") (comma_expression "iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,\n                    iVar10 < iVar18" (assignment_expression "iVar18 = OPENSSL_sk_num(local_548)" (identifier "iVar18") (= "=") (call_expression "OPENSSL_sk_num(local_548)" (identifier "OPENSSL_sk_num") (argument_list "(local_548)" (( "(") (identifier "local_548") () ")")))) (, ",") (comma_expression "pcVar11 = (char *)local_548,\n                    iVar10 < iVar18" (assignment_expression "pcVar11 = (char *)local_548" (identifier "pcVar11") (= "=") (cast_expression "(char *)local_548" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_548"))) (, ",") (binary_expression "iVar10 < iVar18" (identifier "iVar10") (< "<") (identifier "iVar18")))) (; ";") (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);\n                  iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);\n                  if (iVar18 == 0) goto LAB_0004f80b;\n                }" ({ "{") (expression_statement "iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);" (assignment_expression "iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18)" (identifier "iVar18") (= "=") (call_expression "OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18)" (identifier "OPENSSL_sk_value") (argument_list "(local_548,iVar10,iVar18,iVar18)" (( "(") (identifier "local_548") (, ",") (identifier "iVar10") (, ",") (identifier "iVar18") (, ",") (identifier "iVar18") () ")")))) (; ";")) (expression_statement "iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1);" (assignment_expression "iVar18 = X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" (identifier "iVar18") (= "=") (call_expression "X509_REQ_add1_attr_by_txt\n                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" (identifier "X509_REQ_add1_attr_by_txt") (argument_list "(x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),\n                                      -1)" (( "(") (identifier "x_00") (, ",") (pointer_expression "*(char **)(iVar18 + 4)" (* "*") (cast_expression "(char **)(iVar18 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "local_4ec") (, ",") (pointer_expression "*(uchar **)(iVar18 + 8)" (* "*") (cast_expression "(uchar **)(iVar18 + 8)" (( "(") (type_descriptor "uchar **" (type_identifier "uchar") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "-1") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) goto LAB_0004f80b;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004f80b;" (goto "goto") (statement_identifier "LAB_0004f80b") (; ";"))) (} "}"))) (labeled_statement "LAB_00050951:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" (statement_identifier "LAB_00050951") (: ":") (expression_statement "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" (identifier "iVar10") (= "=") (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" (identifier "X509_REQ_set_pubkey") (argument_list "(x_00,(EVP_PKEY *)pBVar14)" (( "(") (identifier "x_00") (, ",") (cast_expression "(EVP_PKEY *)pBVar14" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pBVar14")) () ")")))) (; ";"))) (if_statement "if (iVar10 != 0) goto LAB_0004fbe2;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004fbe2;" (goto "goto") (statement_identifier "LAB_0004fbe2") (; ";"))) (} "}")) (else_clause "else {\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" (else "else") (compound_statement "{\nLAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);\n                if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }\n              }" ({ "{") (labeled_statement "LAB_00051084:\n                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" (statement_identifier "LAB_00051084") (: ":") (expression_statement "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" (identifier "iVar10") (= "=") (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" (identifier "X509_REQ_set_pubkey") (argument_list "(x_00,(EVP_PKEY *)pBVar14)" (( "(") (identifier "x_00") (, ",") (cast_expression "(EVP_PKEY *)pBVar14" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pBVar14")) () ")")))) (; ";"))) (if_statement "if (iVar10 != 0) {\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_548 = (BIO *)0x0;\n                  goto LAB_0004f99b;\n                }" ({ "{") (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004f99b;" (goto "goto") (statement_identifier "LAB_0004f99b") (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_0004f80b;" (goto "goto") (statement_identifier "LAB_0004f80b") (; ";")) (} "}"))) (labeled_statement "LAB_000510a8:\n            pcVar12 = "error, no objects specified in config file\n";" (statement_identifier "LAB_000510a8") (: ":") (expression_statement "pcVar12 = "error, no objects specified in config file\n";" (assignment_expression "pcVar12 = "error, no objects specified in config file\n"" (identifier "pcVar12") (= "=") (string_literal ""error, no objects specified in config file\n"" (" """) (string_content "error, no objects specified in config file") (escape_sequence "\n") (" """))) (; ";"))) (expression_statement "pcVar11 = (char *)psVar16;" (assignment_expression "pcVar11 = (char *)psVar16" (identifier "pcVar11") (= "=") (cast_expression "(char *)psVar16" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "psVar16"))) (; ";")) (} "}")) (else_clause "else {\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" (else "else") (compound_statement "{\n            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);\n            if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }\n            iVar10 = OPENSSL_sk_num(psVar16);\n            local_52c = -1;\n            if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }\n            pcVar12 = "No template, please set one up.\n";\n            psVar16 = (stack_st_CONF_VALUE *)0x0;\n            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;\n          }" ({ "{") (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" (identifier "pXVar23") (= "=") (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" (( "(") (type_descriptor "X509_NAME *" (type_identifier "X509_NAME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36)" (identifier "X509_REQ_get_subject_name") (argument_list "(x_00,uVar35,psVar21,psVar36)" (( "(") (identifier "x_00") (, ",") (identifier "uVar35") (, ",") (identifier "psVar21") (, ",") (identifier "psVar36") () ")"))))) (; ";")) (if_statement "if (DAT_000c4a90 == 0) {\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }" (if "if") (parenthesized_expression "(DAT_000c4a90 == 0)" (( "(") (binary_expression "DAT_000c4a90 == 0" (identifier "DAT_000c4a90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);\n              BIO_printf(DAT_000c458c,"into your certificate request.\n");\n              BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );\n              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;\n              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");\n              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");\n              BIO_printf(DAT_000c458c,"-----\n");\n            }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23);" (call_expression "BIO_printf(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,\n                         "You are about to be asked to enter information that will be incorporated\n"\n                         ,pXVar23,pXVar23)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""You are about to be asked to enter information that will be incorporated\n"" (" """) (string_content "You are about to be asked to enter information that will be incorporated") (escape_sequence "\n") (" """)) (, ",") (identifier "pXVar23") (, ",") (identifier "pXVar23") () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"into your certificate request.\n");" (call_expression "BIO_printf(DAT_000c458c,"into your certificate request.\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"into your certificate request.\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""into your certificate request.\n"" (" """) (string_content "into your certificate request.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        );" (call_expression "BIO_printf(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        )" (identifier "BIO_printf") (argument_list "(DAT_000c458c,\n                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"\n                        )" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""What you are about to enter is what is called a Distinguished Name or a DN.\n"" (" """) (string_content "What you are about to enter is what is called a Distinguished Name or a DN.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")\n              ;" (call_expression "BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""There are quite a few fields but you can leave some blank\n"" (" """) (string_content "There are quite a few fields but you can leave some blank") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");" (call_expression "BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"For some fields there will be a default value,\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""For some fields there will be a default value,\n"" (" """) (string_content "For some fields there will be a default value,") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");" (call_expression "BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""If you enter \'.\', the field will be left blank.\n"" (" """) (string_content "If you enter ") (escape_sequence "\'") (string_content ".") (escape_sequence "\'") (string_content ", the field will be left blank.") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"-----\n");" (call_expression "BIO_printf(DAT_000c458c,"-----\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"-----\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""-----\n"" (" """) (string_content "-----") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar10 = OPENSSL_sk_num(psVar16);" (assignment_expression "iVar10 = OPENSSL_sk_num(psVar16)" (identifier "iVar10") (= "=") (call_expression "OPENSSL_sk_num(psVar16)" (identifier "OPENSSL_sk_num") (argument_list "(psVar16)" (( "(") (identifier "psVar16") () ")")))) (; ";")) (expression_statement "local_52c = -1;" (assignment_expression "local_52c = -1" (identifier "local_52c") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (iVar10 != 0) {\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);\n              puVar26 = &DAT_000c458c;\n              goto LAB_0004f815;\n            }" ({ "{") (labeled_statement "LAB_000509ca:\n              do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);" (statement_identifier "LAB_000509ca") (: ":") (do_statement "do {\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              } while (iVar10 != 0);" (do "do") (compound_statement "{\n                do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);\n                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }\n                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);\n                if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }\n                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);\n                if (iVar18 == 0) break;\n                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;\n                if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }\n                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");\n                if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }\n                iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);\n              }" ({ "{") (do_statement "do {\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                } while (iVar10 == 0);" (do "do") (compound_statement "{\n                  do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));\n                  bVar32 = *pbVar17;\n                  pbVar28 = pbVar17;\n                  if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }\n                  iVar10 = OBJ_txt2nid((char *)pbVar17);\n                }" ({ "{") (do_statement "do {\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));" (do "do") (compound_statement "{\n                    local_52c = local_52c + 1;\n                    iVar10 = OPENSSL_sk_num(psVar16);\n                    if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }\n                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);\n                    pbVar17 = *(byte **)(iVar10 + 4);\n                    iVar10 = FUN_0004d7e0();\n                  }" ({ "{") (expression_statement "local_52c = local_52c + 1;" (assignment_expression "local_52c = local_52c + 1" (identifier "local_52c") (= "=") (binary_expression "local_52c + 1" (identifier "local_52c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = OPENSSL_sk_num(psVar16);" (assignment_expression "iVar10 = OPENSSL_sk_num(psVar16)" (identifier "iVar10") (= "=") (call_expression "OPENSSL_sk_num(psVar16)" (identifier "OPENSSL_sk_num") (argument_list "(psVar16)" (( "(") (identifier "psVar16") () ")")))) (; ";")) (if_statement "if (iVar10 <= local_52c) {\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }" (if "if") (parenthesized_expression "(iVar10 <= local_52c)" (( "(") (binary_expression "iVar10 <= local_52c" (identifier "iVar10") (<= "<=") (identifier "local_52c")) () ")")) (compound_statement "{\n                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);\n                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;\n                      if (local_53c != 0) goto LAB_00051084;\n                      if (local_548 == (BIO *)0x0) goto LAB_00050951;\n                      uVar33 = OPENSSL_sk_num(local_548);\n                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);\n                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }\n                      local_588 = -1;\n                      pcVar11 = (char *)local_484;\n                      goto LAB_00050afd;\n                    }" ({ "{") (expression_statement "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" (identifier "psVar16") (= "=") (cast_expression "(stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23)" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_NAME_entry_count(pXVar23)" (identifier "X509_NAME_entry_count") (argument_list "(pXVar23)" (( "(") (identifier "pXVar23") () ")"))))) (; ";")) (if_statement "if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;" (if "if") (parenthesized_expression "(psVar16 == (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "psVar16 == (stack_st_CONF_VALUE *)0x0" (identifier "psVar16") (== "==") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000510a8;" (goto "goto") (statement_identifier "LAB_000510a8") (; ";"))) (if_statement "if (local_53c != 0) goto LAB_00051084;" (if "if") (parenthesized_expression "(local_53c != 0)" (( "(") (binary_expression "local_53c != 0" (identifier "local_53c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00051084;" (goto "goto") (statement_identifier "LAB_00051084") (; ";"))) (if_statement "if (local_548 == (BIO *)0x0) goto LAB_00050951;" (if "if") (parenthesized_expression "(local_548 == (BIO *)0x0)" (( "(") (binary_expression "local_548 == (BIO *)0x0" (identifier "local_548") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00050951;" (goto "goto") (statement_identifier "LAB_00050951") (; ";"))) (expression_statement "uVar33 = OPENSSL_sk_num(local_548);" (assignment_expression "uVar33 = OPENSSL_sk_num(local_548)" (identifier "uVar33") (= "=") (call_expression "OPENSSL_sk_num(local_548)" (identifier "OPENSSL_sk_num") (argument_list "(local_548)" (( "(") (identifier "local_548") () ")")))) (; ";")) (expression_statement "uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);" (assignment_expression "uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20)" (identifier "uVar35") (= "=") (call_expression "(undefined4)((ulonglong)uVar33 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)uVar33 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }" (if "if") (parenthesized_expression "((0 < (int)uVar33) && (DAT_000c4a90 == 0))" (( "(") (binary_expression "(0 < (int)uVar33) && (DAT_000c4a90 == 0)" (parenthesized_expression "(0 < (int)uVar33)" (( "(") (binary_expression "0 < (int)uVar33" (number_literal "0") (< "<") (cast_expression "(int)uVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar33"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_000c4a90 == 0)" (( "(") (binary_expression "DAT_000c4a90 == 0" (identifier "DAT_000c4a90") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                        BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);\n                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");\n                      }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35);" (call_expression "BIO_printf(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,\n                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,\n                                   uVar35)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""\nPlease enter the following \'extra\' attributes\n"" (" """) (escape_sequence "\n") (string_content "Please enter the following ") (escape_sequence "\'") (string_content "extra") (escape_sequence "\'") (string_content " attributes") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar35") (, ",") (identifier "uVar35") () ")"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");" (call_expression "BIO_printf(DAT_000c458c,"to be sent with your certificate request\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"to be sent with your certificate request\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""to be sent with your certificate request\n"" (" """) (string_content "to be sent with your certificate request") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_588 = -1;" (assignment_expression "local_588 = -1" (identifier "local_588") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar11 = (char *)local_484;" (assignment_expression "pcVar11 = (char *)local_484" (identifier "pcVar11") (= "=") (cast_expression "(char *)local_484" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_484"))) (; ";")) (goto_statement "goto LAB_00050afd;" (goto "goto") (statement_identifier "LAB_00050afd") (; ";")) (} "}"))) (expression_statement "iVar10 = OPENSSL_sk_value(psVar16,local_52c);" (assignment_expression "iVar10 = OPENSSL_sk_value(psVar16,local_52c)" (identifier "iVar10") (= "=") (call_expression "OPENSSL_sk_value(psVar16,local_52c)" (identifier "OPENSSL_sk_value") (argument_list "(psVar16,local_52c)" (( "(") (identifier "psVar16") (, ",") (identifier "local_52c") () ")")))) (; ";")) (expression_statement "pbVar17 = *(byte **)(iVar10 + 4);" (assignment_expression "pbVar17 = *(byte **)(iVar10 + 4)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(iVar10 + 4)" (* "*") (cast_expression "(byte **)(iVar10 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 4)" (( "(") (binary_expression "iVar10 + 4" (identifier "iVar10") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar10 = FUN_0004d7e0();" (assignment_expression "iVar10 = FUN_0004d7e0()" (identifier "iVar10") (= "=") (call_expression "FUN_0004d7e0()" (identifier "FUN_0004d7e0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0))" (( "(") (binary_expression "(((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                          (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "(((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0))" (( "(") (binary_expression "((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||\n                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0))" (( "(") (binary_expression "(iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)" (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" (( "(") (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" (identifier "iVar10") (= "=") (call_expression "FUN_0004d7e0()" (identifier "FUN_0004d7e0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" (( "(") (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" (identifier "iVar10") (= "=") (call_expression "FUN_0004d7e0()" (identifier "FUN_0004d7e0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = FUN_0004d7e0(), iVar10 == 0)" (( "(") (comma_expression "iVar10 = FUN_0004d7e0(), iVar10 == 0" (assignment_expression "iVar10 = FUN_0004d7e0()" (identifier "iVar10") (= "=") (call_expression "FUN_0004d7e0()" (identifier "FUN_0004d7e0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) () ")"))) () ")")) (; ";")) (expression_statement "bVar32 = *pbVar17;" (assignment_expression "bVar32 = *pbVar17" (identifier "bVar32") (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";")) (expression_statement "pbVar28 = pbVar17;" (assignment_expression "pbVar28 = pbVar17" (identifier "pbVar28") (= "=") (identifier "pbVar17")) (; ";")) (if_statement "if (bVar32 == 0) {\n                    local_514 = 0;\n                  }\n                  else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" (if "if") (parenthesized_expression "(bVar32 == 0)" (( "(") (binary_expression "bVar32 == 0" (identifier "bVar32") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    local_514 = 0;\n                  }" ({ "{") (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" (identifier "local_514") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" (else "else") (compound_statement "{\n                    do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);\n                    local_514 = 0;\n                    if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }\n                  }" ({ "{") (do_statement "do {\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    } while (bVar32 != 0);" (do "do") (compound_statement "{\n                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }\n                      pbVar28 = (byte *)((int)pbVar28 + 1);\n                      bVar32 = *pbVar28;\n                    }" ({ "{") (if_statement "if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }" (if "if") (parenthesized_expression "(((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a))" (( "(") (binary_expression "((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)" (parenthesized_expression "((bVar32 & 0xfd) == 0x2c)" (( "(") (binary_expression "(bVar32 & 0xfd) == 0x2c" (parenthesized_expression "(bVar32 & 0xfd)" (( "(") (binary_expression "bVar32 & 0xfd" (identifier "bVar32") (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0x2c")) () ")")) (|| "||") (parenthesized_expression "(bVar32 == 0x3a)" (( "(") (binary_expression "bVar32 == 0x3a" (identifier "bVar32") (== "==") (number_literal "0x3a")) () ")"))) () ")")) (compound_statement "{\n                        if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }\n                        break;\n                      }" ({ "{") (if_statement "if (*(byte *)((int)pbVar28 + 1) != 0) {\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }" (if "if") (parenthesized_expression "(*(byte *)((int)pbVar28 + 1) != 0)" (( "(") (binary_expression "*(byte *)((int)pbVar28 + 1) != 0" (pointer_expression "*(byte *)((int)pbVar28 + 1)" (* "*") (cast_expression "(byte *)((int)pbVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pbVar28 + 1)" (( "(") (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (+ "+") (number_literal "1")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          pbVar17 = (byte *)((int)pbVar28 + 1);\n                        }" ({ "{") (expression_statement "pbVar17 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar17 = (byte *)((int)pbVar28 + 1)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)((int)pbVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pbVar28 + 1)" (( "(") (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pbVar28 = (byte *)((int)pbVar28 + 1);" (assignment_expression "pbVar28 = (byte *)((int)pbVar28 + 1)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)pbVar28 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pbVar28 + 1)" (( "(") (binary_expression "(int)pbVar28 + 1" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar32 = *pbVar28;" (assignment_expression "bVar32 = *pbVar28" (identifier "bVar32") (= "=") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar32 != 0)" (( "(") (binary_expression "bVar32 != 0" (identifier "bVar32") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_514 = 0;" (assignment_expression "local_514 = 0" (identifier "local_514") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*pbVar17 == 0x2b) {\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }" (if "if") (parenthesized_expression "(*pbVar17 == 0x2b)" (( "(") (binary_expression "*pbVar17 == 0x2b" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (number_literal "0x2b")) () ")")) (compound_statement "{\n                      local_514 = -1;\n                      pbVar17 = pbVar17 + 1;\n                    }" ({ "{") (expression_statement "local_514 = -1;" (assignment_expression "local_514 = -1" (identifier "local_514") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar10 = OBJ_txt2nid((char *)pbVar17);" (assignment_expression "iVar10 = OBJ_txt2nid((char *)pbVar17)" (identifier "iVar10") (= "=") (call_expression "OBJ_txt2nid((char *)pbVar17)" (identifier "OBJ_txt2nid") (argument_list "((char *)pbVar17)" (( "(") (cast_expression "(char *)pbVar17" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar17")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);" (assignment_expression "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10)" (identifier "iVar18") (= "=") (call_expression "FUN_0004de90("_default","Name",iVar10,iVar10)" (identifier "FUN_0004de90") (argument_list "("_default","Name",iVar10,iVar10)" (( "(") (string_literal ""_default"" (" """) (string_content "_default") (" """)) (, ",") (string_literal ""Name"" (" """) (string_content "Name") (" """)) (, ",") (identifier "iVar10") (, ",") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) break;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" (identifier "pcVar12") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484)" (( "(") (identifier "DAT_000c4a98") (, ",") (identifier "pcVar11") (, ",") (cast_expression "(char *)local_484" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_484")) () ")")))) (; ";")) (if_statement "if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  ERR_clear_error();\n                  pcVar12 = "";\n                }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar12 = "";" (assignment_expression "pcVar12 = """ (identifier "pcVar12") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12)" (identifier "iVar18") (= "=") (call_expression "FUN_0004de90("_value","Name",pcVar12,pcVar12)" (identifier "FUN_0004de90") (argument_list "("_value","Name",pcVar12,pcVar12)" (( "(") (string_literal ""_value"" (" """) (string_content "_value") (" """)) (, ",") (string_literal ""Name"" (" """) (string_content "Name") (" """)) (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar12") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) break;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" (identifier "pcVar12") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484)" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484)" (( "(") (identifier "DAT_000c4a98") (, ",") (identifier "pcVar11") (, ",") (cast_expression "(char *)local_484" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_484")) () ")")))) (; ";")) (if_statement "if (pcVar12 == (char *)0x0) {\n                  ERR_clear_error();\n                }" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  ERR_clear_error();\n                }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" (identifier "iVar18") (= "=") (call_expression "FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" (identifier "FUN_0004de90") (argument_list "(&DAT_00087c81,"Name",pcVar12,pcVar12)" (( "(") (pointer_expression "&DAT_00087c81" (& "&") (identifier "DAT_00087c81")) (, ",") (string_literal ""Name"" (" """) (string_content "Name") (" """)) (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar12") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) break;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" (identifier "iVar18") (= "=") (call_expression "NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" (identifier "NCONF_get_number_e") (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4)" (( "(") (identifier "DAT_000c4a98") (, ",") (identifier "pcVar11") (, ",") (cast_expression "(char *)local_484" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_484")) (, ",") (pointer_expression "&local_4a4" (& "&") (identifier "local_4a4")) () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  ERR_clear_error();\n                  local_4a4 = -1;\n                }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4a4 = -1;" (assignment_expression "local_4a4 = -1" (identifier "local_4a4") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18)" (identifier "iVar18") (= "=") (call_expression "FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18)" (identifier "FUN_0004de90") (argument_list "(&DAT_00087c86,"Name",iVar18,iVar18)" (( "(") (pointer_expression "&DAT_00087c86" (& "&") (identifier "DAT_00087c86")) (, ",") (string_literal ""Name"" (" """) (string_content "Name") (" """)) (, ",") (identifier "iVar18") (, ",") (identifier "iVar18") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) break;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)\n                ;" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" (identifier "iVar18") (= "=") (call_expression "NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" (identifier "NCONF_get_number_e") (argument_list "(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)" (( "(") (identifier "DAT_000c4a98") (, ",") (identifier "pcVar11") (, ",") (cast_expression "(char *)local_484" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_484")) (, ",") (pointer_expression "&local_4a0.flags" (& "&") (field_expression "local_4a0.flags" (identifier "local_4a0") (. ".") (field_identifier "flags"))) () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  ERR_clear_error();\n                  local_4a0.flags = -1;\n                }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4a0.flags = -1;" (assignment_expression "local_4a0.flags = -1" (field_expression "local_4a0.flags" (identifier "local_4a0") (. ".") (field_identifier "flags")) (= "=") (number_literal "-1")) (; ";")) (} "}"))) (expression_statement "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");" (assignment_expression "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" (identifier "uVar27") (= "=") (call_expression "FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" (identifier "FUN_0004df30") (argument_list "(local_4a4,local_4a0.flags,local_420,"DN value","DN default")" (( "(") (identifier "local_4a4") (, ",") (field_expression "local_4a0.flags" (identifier "local_4a0") (. ".") (field_identifier "flags")) (, ",") (identifier "local_420") (, ",") (string_literal ""DN value"" (" """) (string_content "DN value") (" """)) (, ",") (string_literal ""DN default"" (" """) (string_content "DN default") (" """)) () ")")))) (; ";")) (if_statement "if (uVar27 < 2) {\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }" (if "if") (parenthesized_expression "(uVar27 < 2)" (( "(") (binary_expression "uVar27 < 2" (identifier "uVar27") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                  if (uVar27 == 0) break;\n                  goto LAB_000509ca;\n                }" ({ "{") (if_statement "if (uVar27 == 0) break;" (if "if") (parenthesized_expression "(uVar27 == 0)" (( "(") (binary_expression "uVar27 == 0" (identifier "uVar27") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_000509ca;" (goto "goto") (statement_identifier "LAB_000509ca") (; ";")) (} "}"))) (expression_statement "iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);" (assignment_expression "iVar10 = X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" (identifier "iVar10") (= "=") (call_expression "X509_NAME_add_entry_by_NID\n                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" (identifier "X509_NAME_add_entry_by_NID") (argument_list "(pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514)" (( "(") (identifier "pXVar23") (, ",") (identifier "iVar10") (, ",") (identifier "local_4ec") (, ",") (identifier "local_420") (, ",") (number_literal "-1") (, ",") (number_literal "-1") (, ",") (identifier "local_514") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" (identifier "puVar26") (= "=") (pointer_expression "&DAT_000c458c" (& "&") (identifier "DAT_000c458c"))) (; ";")) (goto_statement "goto LAB_0004f815;" (goto "goto") (statement_identifier "LAB_0004f815") (; ";")) (} "}"))) (expression_statement "pcVar12 = "No template, please set one up.\n";" (assignment_expression "pcVar12 = "No template, please set one up.\n"" (identifier "pcVar12") (= "=") (string_literal ""No template, please set one up.\n"" (" """) (string_content "No template, please set one up.") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "psVar16 = (stack_st_CONF_VALUE *)0x0;" (assignment_expression "psVar16 = (stack_st_CONF_VALUE *)0x0" (identifier "psVar16") (= "=") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;" (assignment_expression "pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0" (identifier "pcVar11") (= "=") (cast_expression "(char *)(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (} "}")))) (goto_statement "goto LAB_0005074a;" (goto "goto") (statement_identifier "LAB_0005074a") (; ";")) (} "}"))) (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" (identifier "iVar10") (= "=") (call_expression "FUN_0004dcf0(local_57c)" (identifier "FUN_0004dcf0") (argument_list "(local_57c)" (( "(") (identifier "local_57c") () ")")))) (; ";")) (if_statement "if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))\n        goto LAB_0004f80b;" (if "if") (parenthesized_expression "((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))" (( "(") (binary_expression "(iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0)" (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0)" (( "(") (comma_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0" (assignment_expression "iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" (identifier "iVar10") (= "=") (call_expression "X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14)" (identifier "X509_REQ_set_pubkey") (argument_list "(x_00,(EVP_PKEY *)pBVar14)" (( "(") (identifier "x_00") (, ",") (cast_expression "(EVP_PKEY *)pBVar14" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pBVar14")) () ")")))) (, ",") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0004f80b;" (goto "goto") (statement_identifier "LAB_0004f80b") (; ";"))) (if_statement "if (local_53c != 0) {\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }" (if "if") (parenthesized_expression "(local_53c != 0)" (( "(") (binary_expression "local_53c != 0" (identifier "local_53c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_548 = (BIO *)0x0;\n          local_51c = 0;\nLAB_0004f99b:\n          x = X509_new();\n          if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }\n          goto LAB_0004fb6e;\n        }" ({ "{") (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_51c = 0;" (assignment_expression "local_51c = 0" (identifier "local_51c") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0004f99b:\n          x = X509_new();" (statement_identifier "LAB_0004f99b") (: ":") (expression_statement "x = X509_new();" (assignment_expression "x = X509_new()" (identifier "x") (= "=") (call_expression "X509_new()" (identifier "X509_new") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if ((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "((x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0))))" (( "(") (binary_expression "(x != (X509 *)0x0) &&\n             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))" (parenthesized_expression "(x != (X509 *)0x0)" (( "(") (binary_expression "x != (X509 *)0x0" (identifier "x") (!= "!=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)))" (( "(") (parenthesized_expression "((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0))" (( "(") (binary_expression "(local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||\n              (iVar10 = X509_set_version(x,2), iVar10 != 0)" (parenthesized_expression "(local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0))" (( "(") (binary_expression "local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)" (binary_expression "local_528 == (char **)0x0" (identifier "local_528") (== "==") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(DAT_000c4a94 == (CONF *)0x0)" (( "(") (binary_expression "DAT_000c4a94 == (CONF *)0x0" (identifier "DAT_000c4a94") (== "==") (cast_expression "(CONF *)0x0" (( "(") (type_descriptor "CONF *" (type_identifier "CONF") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = X509_set_version(x,2), iVar10 != 0)" (( "(") (comma_expression "iVar10 = X509_set_version(x,2), iVar10 != 0" (assignment_expression "iVar10 = X509_set_version(x,2)" (identifier "iVar10") (= "=") (call_expression "X509_set_version(x,2)" (identifier "X509_set_version") (argument_list "(x,2)" (( "(") (identifier "x") (, ",") (number_literal "2") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }\n            if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }\n          }" ({ "{") (if_statement "if (local_554 == (ASN1_INTEGER *)0x0) {\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }\n            else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" (if "if") (parenthesized_expression "(local_554 == (ASN1_INTEGER *)0x0)" (( "(") (binary_expression "local_554 == (ASN1_INTEGER *)0x0" (identifier "local_554") (== "==") (cast_expression "(ASN1_INTEGER *)0x0" (( "(") (type_descriptor "ASN1_INTEGER *" (type_identifier "ASN1_INTEGER") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pAVar15 = X509_get_serialNumber(x);\n              iVar10 = FUN_00074630(0,pAVar15);\n            }" ({ "{") (expression_statement "pAVar15 = X509_get_serialNumber(x);" (assignment_expression "pAVar15 = X509_get_serialNumber(x)" (identifier "pAVar15") (= "=") (call_expression "X509_get_serialNumber(x)" (identifier "X509_get_serialNumber") (argument_list "(x)" (( "(") (identifier "x") () ")")))) (; ";")) (expression_statement "iVar10 = FUN_00074630(0,pAVar15);" (assignment_expression "iVar10 = FUN_00074630(0,pAVar15)" (identifier "iVar10") (= "=") (call_expression "FUN_00074630(0,pAVar15)" (identifier "FUN_00074630") (argument_list "(0,pAVar15)" (( "(") (number_literal "0") (, ",") (identifier "pAVar15") () ")")))) (; ";")) (} "}")) (else_clause "else {\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" (else "else") (compound_statement "{\n              iVar10 = X509_set_serialNumber(x,local_554);\n            }" ({ "{") (expression_statement "iVar10 = X509_set_serialNumber(x,local_554);" (assignment_expression "iVar10 = X509_set_serialNumber(x,local_554)" (identifier "iVar10") (= "=") (call_expression "X509_set_serialNumber(x,local_554)" (identifier "X509_set_serialNumber") (argument_list "(x,local_554)" (( "(") (identifier "x") (, ",") (identifier "local_554") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar10 != 0) {\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n              iVar10 = X509_set_issuer_name(x,pXVar23);\n              if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" (identifier "pXVar23") (= "=") (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" (( "(") (type_descriptor "X509_NAME *" (type_identifier "X509_NAME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_REQ_get_subject_name(x_00)" (identifier "X509_REQ_get_subject_name") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")"))))) (; ";")) (expression_statement "iVar10 = X509_set_issuer_name(x,pXVar23);" (assignment_expression "iVar10 = X509_set_issuer_name(x,pXVar23)" (identifier "iVar10") (= "=") (call_expression "X509_set_issuer_name(x,pXVar23)" (identifier "X509_set_issuer_name") (argument_list "(x,pXVar23)" (( "(") (identifier "x") (, ",") (identifier "pXVar23") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar10 = 0x1e;\n                if (local_530 != 0) {\n                  iVar10 = local_530;\n                }\n                iVar10 = FUN_00077500(x,0,0,iVar10);\n                if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }\n              }" ({ "{") (expression_statement "iVar10 = 0x1e;" (assignment_expression "iVar10 = 0x1e" (identifier "iVar10") (= "=") (number_literal "0x1e")) (; ";")) (if_statement "if (local_530 != 0) {\n                  iVar10 = local_530;\n                }" (if "if") (parenthesized_expression "(local_530 != 0)" (( "(") (binary_expression "local_530 != 0" (identifier "local_530") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar10 = local_530;\n                }" ({ "{") (expression_statement "iVar10 = local_530;" (assignment_expression "iVar10 = local_530" (identifier "iVar10") (= "=") (identifier "local_530")) (; ";")) (} "}"))) (expression_statement "iVar10 = FUN_00077500(x,0,0,iVar10);" (assignment_expression "iVar10 = FUN_00077500(x,0,0,iVar10)" (identifier "iVar10") (= "=") (call_expression "FUN_00077500(x,0,0,iVar10)" (identifier "FUN_00077500") (argument_list "(x,0,0,iVar10)" (( "(") (identifier "x") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);\n                  iVar10 = X509_set_subject_name(x,pXVar23);\n                  if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }\n                }" ({ "{") (expression_statement "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);" (assignment_expression "pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00)" (identifier "pXVar23") (= "=") (cast_expression "(X509_NAME *)X509_REQ_get_subject_name(x_00)" (( "(") (type_descriptor "X509_NAME *" (type_identifier "X509_NAME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_REQ_get_subject_name(x_00)" (identifier "X509_REQ_get_subject_name") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")"))))) (; ";")) (expression_statement "iVar10 = X509_set_subject_name(x,pXVar23);" (assignment_expression "iVar10 = X509_set_subject_name(x,pXVar23)" (identifier "iVar10") (= "=") (call_expression "X509_set_subject_name(x,pXVar23)" (identifier "X509_set_subject_name") (argument_list "(x,pXVar23)" (( "(") (identifier "x") (, ",") (identifier "pXVar23") () ")")))) (; ";")) (if_statement "if (((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }" (if "if") (parenthesized_expression "(((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0))" (( "(") (binary_expression "((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)" (parenthesized_expression "((iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)\n                      )" (( "(") (binary_expression "(iVar10 != 0) &&\n                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)" (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)" (( "(") (comma_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0" (assignment_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" (identifier "pEVar24") (= "=") (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_REQ_get0_pubkey(x_00)" (identifier "X509_REQ_get0_pubkey") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")"))))) (, ",") (binary_expression "pEVar24 != (EVP_PKEY *)0x0" (identifier "pEVar24") (!= "!=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)" (( "(") (comma_expression "iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0" (assignment_expression "iVar10 = X509_set_pubkey(x,pEVar24)" (identifier "iVar10") (= "=") (call_expression "X509_set_pubkey(x,pEVar24)" (identifier "X509_set_pubkey") (argument_list "(x,pEVar24)" (( "(") (identifier "x") (, ",") (identifier "pEVar24") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);\n                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);\n                    if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }\nLAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);\n                  }" ({ "{") (expression_statement "X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);" (call_expression "X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0)" (identifier "X509V3_set_ctx") (argument_list "(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (identifier "x") (, ",") (identifier "x") (, ",") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509_CRL *)0x0" (( "(") (type_descriptor "X509_CRL *" (type_identifier "X509_CRL") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" (identifier "X509V3_set_nconf") (argument_list "(&local_4a0,DAT_000c4a98)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (identifier "DAT_000c4a98") () ")"))) (; ";")) (if_statement "if ((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)) {\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }\n                    else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" (if "if") (parenthesized_expression "((local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0))" (( "(") (binary_expression "(local_528 == (char **)0x0) ||\n                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)" (parenthesized_expression "(local_528 == (char **)0x0)" (( "(") (binary_expression "local_528 == (char **)0x0" (identifier "local_528") (== "==") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0)" (( "(") (comma_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),\n                       iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x)" (identifier "iVar10") (= "=") (call_expression "X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x)" (identifier "X509V3_EXT_add_nconf") (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_528,x)" (( "(") (identifier "DAT_000c4a98") (, ",") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (cast_expression "(char *)local_528" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_528")) (, ",") (identifier "x") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                      if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }\n                      pcVar11 = "Error Loading command line extensions\n";\n                      local_528 = (char **)0x0;\n                      ppcVar9 = (char **)0x0;\n                    }" ({ "{") (if_statement "if ((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)) {\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }" (if "if") (parenthesized_expression "((DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0))" (( "(") (binary_expression "(DAT_000c4a94 == (CONF *)0x0) ||\n                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)" (parenthesized_expression "(DAT_000c4a94 == (CONF *)0x0)" (( "(") (binary_expression "DAT_000c4a94 == (CONF *)0x0" (identifier "DAT_000c4a94") (== "==") (cast_expression "(CONF *)0x0" (( "(") (type_descriptor "CONF *" (type_identifier "CONF") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0)" (( "(") (comma_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),\n                         iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x)" (identifier "iVar10") (= "=") (call_expression "X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x)" (identifier "X509V3_EXT_add_nconf") (argument_list "(DAT_000c4a94,&local_4a0,"default",x)" (( "(") (identifier "DAT_000c4a94") (, ",") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (string_literal ""default"" (" """) (string_content "default") (" """)) (, ",") (identifier "x") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                        if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }\n                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);\n                        if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }\n                        bVar31 = local_51c != 0;\n                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;\n                        pcVar11 = "Cannot modify certificate subject\n";\n                        goto LAB_0004fb64;\n                      }" ({ "{") (if_statement "if (bVar4) {\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (compound_statement "{\n                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);\n                          local_528 = (char **)(iVar10 + -1);\n                          if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }\n                        }" ({ "{") (expression_statement "iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);" (assignment_expression "iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0)" (identifier "iVar10") (= "=") (call_expression "X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0)" (identifier "X509_add1_ext_i2d") (argument_list "(x,0x3b8,(void *)0x0,1,0)" (( "(") (identifier "x") (, ",") (number_literal "0x3b8") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_528 = (char **)(iVar10 + -1);" (assignment_expression "local_528 = (char **)(iVar10 + -1)" (identifier "local_528") (= "=") (cast_expression "(char **)(iVar10 + -1)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + -1)" (( "(") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (local_528 != (char **)0x0) {\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }" (if "if") (parenthesized_expression "(local_528 != (char **)0x0)" (( "(") (binary_expression "local_528 != (char **)0x0" (identifier "local_528") (!= "!=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                            pcVar11 = "Error adding poison extension\n";\n                            ppcVar9 = local_528;\n                            goto LAB_00050666;\n                          }" ({ "{") (expression_statement "pcVar11 = "Error adding poison extension\n";" (assignment_expression "pcVar11 = "Error adding poison extension\n"" (identifier "pcVar11") (= "=") (string_literal ""Error adding poison extension\n"" (" """) (string_content "Error adding poison extension") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "ppcVar9 = local_528;" (assignment_expression "ppcVar9 = local_528" (identifier "ppcVar9") (= "=") (identifier "local_528")) (; ";")) (goto_statement "goto LAB_00050666;" (goto "goto") (statement_identifier "LAB_00050666") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);" (assignment_expression "iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558)" (identifier "iVar10") (= "=") (call_expression "FUN_0004e150(x,local_4d0,local_510,local_558)" (identifier "FUN_0004e150") (argument_list "(x,local_4d0,local_510,local_558)" (( "(") (identifier "x") (, ",") (identifier "local_4d0") (, ",") (identifier "local_510") (, ",") (identifier "local_558") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                          ERR_print_errors(DAT_000c458c);\n                          goto LAB_0004fb6e;\n                        }" ({ "{") (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (goto_statement "goto LAB_0004fb6e;" (goto "goto") (statement_identifier "LAB_0004fb6e") (; ";")) (} "}"))) (expression_statement "bVar31 = local_51c != 0;" (assignment_expression "bVar31 = local_51c != 0" (identifier "bVar31") (= "=") (binary_expression "local_51c != 0" (identifier "local_51c") (!= "!=") (number_literal "0"))) (; ";")) (if_statement "if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;" (if "if") (parenthesized_expression "((local_53c == 0) || (!bVar31))" (( "(") (binary_expression "(local_53c == 0) || (!bVar31)" (parenthesized_expression "(local_53c == 0)" (( "(") (binary_expression "local_53c == 0" (identifier "local_53c") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(!bVar31)" (( "(") (unary_expression "!bVar31" (! "!") (identifier "bVar31")) () ")"))) () ")")) (goto_statement "goto LAB_0004fed2;" (goto "goto") (statement_identifier "LAB_0004fed2") (; ";"))) (expression_statement "pcVar11 = "Cannot modify certificate subject\n";" (assignment_expression "pcVar11 = "Cannot modify certificate subject\n"" (identifier "pcVar11") (= "=") (string_literal ""Cannot modify certificate subject\n"" (" """) (string_content "Cannot modify certificate subject") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_0004fb64;" (goto "goto") (statement_identifier "LAB_0004fb64") (; ";")) (} "}"))) (expression_statement "pcVar11 = "Error Loading command line extensions\n";" (assignment_expression "pcVar11 = "Error Loading command line extensions\n"" (identifier "pcVar11") (= "=") (string_literal ""Error Loading command line extensions\n"" (" """) (string_content "Error Loading command line extensions") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "local_528 = (char **)0x0;" (assignment_expression "local_528 = (char **)0x0" (identifier "local_528") (= "=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar9 = (char **)0x0;" (assignment_expression "ppcVar9 = (char **)0x0" (identifier "ppcVar9") (= "=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" (else "else") (compound_statement "{\n                      pcVar11 = "Error Loading extension section %s\n";\n                      ppcVar9 = (char **)0x0;\n                    }" ({ "{") (expression_statement "pcVar11 = "Error Loading extension section %s\n";" (assignment_expression "pcVar11 = "Error Loading extension section %s\n"" (identifier "pcVar11") (= "=") (string_literal ""Error Loading extension section %s\n"" (" """) (string_content "Error Loading extension section %s") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "ppcVar9 = (char **)0x0;" (assignment_expression "ppcVar9 = (char **)0x0" (identifier "ppcVar9") (= "=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (labeled_statement "LAB_00050666:\n                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);" (statement_identifier "LAB_00050666") (: ":") (expression_statement "BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar11,local_528,ppcVar9)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar11") (, ",") (identifier "local_528") (, ",") (identifier "ppcVar9") () ")"))) (; ";"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (goto_statement "goto LAB_0004fb6e;" (goto "goto") (statement_identifier "LAB_0004fb6e") (; ";")) (} "}"))) (labeled_statement "LAB_0004fbe2:\n        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);" (statement_identifier "LAB_0004fbe2") (: ":") (expression_statement "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);" (call_expression "X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0)" (identifier "X509V3_set_ctx") (argument_list "(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (identifier "x_00") (, ",") (cast_expression "(X509_CRL *)0x0" (( "(") (type_descriptor "X509_CRL *" (type_identifier "X509_CRL") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "X509V3_set_nconf(&local_4a0,DAT_000c4a98);" (call_expression "X509V3_set_nconf(&local_4a0,DAT_000c4a98)" (identifier "X509V3_set_nconf") (argument_list "(&local_4a0,DAT_000c4a98)" (( "(") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (identifier "DAT_000c4a98") () ")"))) (; ";")) (if_statement "if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)) {\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }\n        else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" (if "if") (parenthesized_expression "((local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0))" (( "(") (binary_expression "(local_524 == (stack_st_CONF_VALUE *)0x0) ||\n           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)" (parenthesized_expression "(local_524 == (stack_st_CONF_VALUE *)0x0)" (( "(") (binary_expression "local_524 == (stack_st_CONF_VALUE *)0x0" (identifier "local_524") (== "==") (cast_expression "(stack_st_CONF_VALUE *)0x0" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0)" (( "(") (comma_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),\n           iVar10 != 0" (assignment_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" (identifier "iVar10") (= "=") (call_expression "X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" (identifier "X509V3_EXT_REQ_add_nconf") (argument_list "(DAT_000c4a98,&local_4a0,(char *)local_524,x_00)" (( "(") (identifier "DAT_000c4a98") (, ",") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (cast_expression "(char *)local_524" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_524")) (, ",") (identifier "x_00") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }\n          x = (X509 *)0x0;\n          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);\n          local_548 = (BIO *)0x0;\n          if (iVar10 != 0) goto LAB_0004fc7f;\n          ERR_print_errors(DAT_000c458c);\n        }" ({ "{") (if_statement "if ((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )) {\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }" (if "if") (parenthesized_expression "((DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             ))" (( "(") (binary_expression "(DAT_000c4a94 != (CONF *)0x0) &&\n             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )" (parenthesized_expression "(DAT_000c4a94 != (CONF *)0x0)" (( "(") (binary_expression "DAT_000c4a94 != (CONF *)0x0" (identifier "DAT_000c4a94") (!= "!=") (cast_expression "(CONF *)0x0" (( "(") (type_descriptor "CONF *" (type_identifier "CONF") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0\n             )" (( "(") (comma_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0" (assignment_expression "iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00)" (identifier "iVar10") (= "=") (call_expression "X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00)" (identifier "X509V3_EXT_REQ_add_nconf") (argument_list "(DAT_000c4a94,&local_4a0,"default",x_00)" (( "(") (identifier "DAT_000c4a94") (, ",") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (string_literal ""default"" (" """) (string_content "default") (" """)) (, ",") (identifier "x_00") () ")")))) (, ",") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            pcVar12 = "Error Loading command line extensions\n";\n            local_524 = (stack_st_CONF_VALUE *)pcVar11;\n            goto LAB_0005068b;\n          }" ({ "{") (expression_statement "pcVar12 = "Error Loading command line extensions\n";" (assignment_expression "pcVar12 = "Error Loading command line extensions\n"" (identifier "pcVar12") (= "=") (string_literal ""Error Loading command line extensions\n"" (" """) (string_content "Error Loading command line extensions") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "local_524 = (stack_st_CONF_VALUE *)pcVar11;" (assignment_expression "local_524 = (stack_st_CONF_VALUE *)pcVar11" (identifier "local_524") (= "=") (cast_expression "(stack_st_CONF_VALUE *)pcVar11" (( "(") (type_descriptor "stack_st_CONF_VALUE *" (type_identifier "stack_st_CONF_VALUE") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar11"))) (; ";")) (goto_statement "goto LAB_0005068b;" (goto "goto") (statement_identifier "LAB_0005068b") (; ";")) (} "}"))) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);" (assignment_expression "iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558)" (identifier "iVar10") (= "=") (call_expression "FUN_0004e1b0(x_00,local_4d0,local_510,local_558)" (identifier "FUN_0004e1b0") (argument_list "(x_00,local_4d0,local_510,local_558)" (( "(") (identifier "x_00") (, ",") (identifier "local_4d0") (, ",") (identifier "local_510") (, ",") (identifier "local_558") () ")")))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_0004fc7f;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004fc7f;" (goto "goto") (statement_identifier "LAB_0004fc7f") (; ";"))) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" (else "else") (compound_statement "{\n          pcVar12 = "Error Loading extension section %s\n";\n          pcVar11 = (char *)0x0;\nLAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);\n        }" ({ "{") (expression_statement "pcVar12 = "Error Loading extension section %s\n";" (assignment_expression "pcVar12 = "Error Loading extension section %s\n"" (identifier "pcVar12") (= "=") (string_literal ""Error Loading extension section %s\n"" (" """) (string_content "Error Loading extension section %s") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" (identifier "pcVar11") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0005068b:\n          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);" (statement_identifier "LAB_0005068b") (: ":") (expression_statement "BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar12,local_524,pcVar11)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar12") (, ",") (identifier "local_524") (, ",") (identifier "pcVar11") () ")"))) (; ";"))) (} "}")))) (goto_statement "goto LAB_0004f82c;" (goto "goto") (statement_identifier "LAB_0004f82c") (; ";")) (} "}"))) (expression_statement "local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);" (assignment_expression "local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8)" (identifier "local_548") (= "=") (cast_expression "(BIO *)FUN_00075fa0(local_52c,0x72,local_4b8)" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00075fa0(local_52c,0x72,local_4b8)" (identifier "FUN_00075fa0") (argument_list "(local_52c,0x72,local_4b8)" (( "(") (identifier "local_52c") (, ",") (number_literal "0x72") (, ",") (identifier "local_4b8") () ")"))))) (; ";")) (if_statement "if (local_548 == (BIO *)0x0) goto LAB_0004f60c;" (if "if") (parenthesized_expression "(local_548 == (BIO *)0x0)" (( "(") (binary_expression "local_548 == (BIO *)0x0" (identifier "local_548") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004f60c;" (goto "goto") (statement_identifier "LAB_0004f60c") (; ";"))) (if_statement "if (local_4b8 == (undefined *)0x4) {\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }\n      else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" (if "if") (parenthesized_expression "(local_4b8 == (undefined *)0x4)" (( "(") (binary_expression "local_4b8 == (undefined *)0x4" (identifier "local_4b8") (== "==") (cast_expression "(undefined *)0x4" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);\n      }" ({ "{") (expression_statement "x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);" (assignment_expression "x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0)" (identifier "x_00") (= "=") (call_expression "d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0)" (identifier "d2i_X509_REQ_bio") (argument_list "(local_548,(X509_REQ **)0x0)" (( "(") (identifier "local_548") (, ",") (cast_expression "(X509_REQ **)0x0" (( "(") (type_descriptor "X509_REQ **" (type_identifier "X509_REQ") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" (else "else") (compound_statement "{\n        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);\n      }" ({ "{") (expression_statement "x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);" (assignment_expression "x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" (identifier "x_00") (= "=") (call_expression "PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" (identifier "PEM_read_bio_X509_REQ") (argument_list "(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0)" (( "(") (identifier "local_548") (, ",") (cast_expression "(X509_REQ **)0x0" (( "(") (type_descriptor "X509_REQ **" (type_identifier "X509_REQ") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (} "}")))) (if_statement "if (x_00 == (X509_REQ *)0x0) {\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" (if "if") (parenthesized_expression "(x_00 == (X509_REQ *)0x0)" (( "(") (binary_expression "x_00 == (X509_REQ *)0x0" (identifier "x_00") (== "==") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        x = (X509 *)0x0;\n        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" ({ "{") (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);" (call_expression "BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"unable to load X509 request\n",0,0)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""unable to load X509 request\n"" (" """) (string_content "unable to load X509 request") (escape_sequence "\n") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (if_statement "if (local_53c != 0) {\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }" (if "if") (parenthesized_expression "(local_53c != 0)" (( "(") (binary_expression "local_53c != 0" (identifier "local_53c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;\n        goto LAB_0004f99b;\n      }" ({ "{") (if_statement "if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;" (if "if") (parenthesized_expression "(local_4d0 == (BIO *)0x0)" (( "(") (binary_expression "local_4d0 == (BIO *)0x0" (identifier "local_4d0") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000505b7;" (goto "goto") (statement_identifier "LAB_000505b7") (; ";"))) (goto_statement "goto LAB_0004f99b;" (goto "goto") (statement_identifier "LAB_0004f99b") (; ";")) (} "}"))) (expression_statement "bVar31 = local_51c != 0;" (assignment_expression "bVar31 = local_51c != 0" (identifier "bVar31") (= "=") (binary_expression "local_51c != 0" (identifier "local_51c") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0004fed2:\n      if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" (statement_identifier "LAB_0004fed2") (: ":") (if_statement "if ((bVar31 & (byte)local_564) != 0) {\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((bVar31 & (byte)local_564) != 0)" (( "(") (binary_expression "(bVar31 & (byte)local_564) != 0" (parenthesized_expression "(bVar31 & (byte)local_564)" (( "(") (binary_expression "bVar31 & (byte)local_564" (identifier "bVar31") (& "&") (cast_expression "(byte)local_564" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_564"))) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }\n      }" ({ "{") (if_statement "if (bVar2) {\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }\n        else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) goto LAB_0004ff17;\n          uVar35 = FUN_00073120();\n          uVar25 = X509_REQ_get_subject_name(x_00);\n          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);\n        }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");" (call_expression "BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Modifying Request\'s Subject\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Modifying Request\'s Subject\n"" (" """) (string_content "Modifying Request") (escape_sequence "\'") (string_content "s Subject") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" (identifier "uVar35") (= "=") (call_expression "FUN_00073120()" (identifier "FUN_00073120") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" (identifier "uVar25") (= "=") (call_expression "X509_REQ_get_subject_name(x_00)" (identifier "X509_REQ_get_subject_name") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")")))) (; ";")) (expression_statement "FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35)" (identifier "FUN_00073b90") (argument_list "(DAT_000c458c,"old subject=",uVar25,uVar35)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""old subject="" (" """) (string_content "old subject=") (" """)) (, ",") (identifier "uVar25") (, ",") (identifier "uVar35") () ")"))) (; ";")) (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" (identifier "iVar10") (= "=") (call_expression "FUN_0004dcf0(local_57c)" (identifier "FUN_0004dcf0") (argument_list "(local_57c)" (( "(") (identifier "local_57c") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_0004ff17;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ff17;" (goto "goto") (statement_identifier "LAB_0004ff17") (; ";"))) (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" (identifier "uVar35") (= "=") (call_expression "FUN_00073120()" (identifier "FUN_00073120") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" (identifier "uVar25") (= "=") (call_expression "X509_REQ_get_subject_name(x_00)" (identifier "X509_REQ_get_subject_name") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")")))) (; ";")) (expression_statement "FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35)" (identifier "FUN_00073b90") (argument_list "(DAT_000c458c,"new subject=",uVar25,uVar35)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""new subject="" (" """) (string_content "new subject=") (" """)) (, ",") (identifier "uVar25") (, ",") (identifier "uVar35") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" (else "else") (compound_statement "{\n          iVar10 = FUN_0004dcf0(local_57c);\n          if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }\n        }" ({ "{") (expression_statement "iVar10 = FUN_0004dcf0(local_57c);" (assignment_expression "iVar10 = FUN_0004dcf0(local_57c)" (identifier "iVar10") (= "=") (call_expression "FUN_0004dcf0(local_57c)" (identifier "FUN_0004dcf0") (argument_list "(local_57c)" (( "(") (identifier "local_57c") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";\nLAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);\nLAB_0004fb6e:\n            local_564 = 1;\n            local_570 = (EVP_PKEY *)0x0;\n            local_560 = (BIO *)0x0;\n            goto LAB_0004e56a;\n          }" ({ "{") (labeled_statement "LAB_0004ff17:\n            pcVar11 = "ERROR: cannot modify subject\n";" (statement_identifier "LAB_0004ff17") (: ":") (expression_statement "pcVar11 = "ERROR: cannot modify subject\n";" (assignment_expression "pcVar11 = "ERROR: cannot modify subject\n"" (identifier "pcVar11") (= "=") (string_literal ""ERROR: cannot modify subject\n"" (" """) (string_content "ERROR: cannot modify subject") (escape_sequence "\n") (" """))) (; ";"))) (labeled_statement "LAB_0004fb64:\n            BIO_printf(DAT_000c458c,pcVar11);" (statement_identifier "LAB_0004fb64") (: ":") (expression_statement "BIO_printf(DAT_000c458c,pcVar11);" (call_expression "BIO_printf(DAT_000c458c,pcVar11)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar11)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar11") () ")"))) (; ";"))) (labeled_statement "LAB_0004fb6e:\n            local_564 = 1;" (statement_identifier "LAB_0004fb6e") (: ":") (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";"))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_0004fc7f:\n      local_564 = local_578 & local_564;" (statement_identifier "LAB_0004fc7f") (: ":") (expression_statement "local_564 = local_578 & local_564;" (assignment_expression "local_564 = local_578 & local_564" (identifier "local_564") (= "=") (binary_expression "local_578 & local_564" (identifier "local_578") (& "&") (identifier "local_564"))) (; ";"))) (if_statement "if (local_564 != 0) {\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }" (if "if") (parenthesized_expression "(local_564 != 0)" (( "(") (binary_expression "local_564 != 0" (identifier "local_564") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_560 = local_4d0;\n        if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        goto LAB_0004e56a;\n      }" ({ "{") (expression_statement "local_560 = local_4d0;" (assignment_expression "local_560 = local_4d0" (identifier "local_560") (= "=") (identifier "local_4d0")) (; ";")) (if_statement "if ((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }\n        else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" (if "if") (parenthesized_expression "((local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0))" (( "(") (binary_expression "(local_4d0 == (BIO *)0x0) &&\n           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)" (parenthesized_expression "(local_4d0 == (BIO *)0x0)" (( "(") (binary_expression "local_4d0 == (BIO *)0x0" (identifier "local_4d0") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)" (( "(") (comma_expression "local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0" (assignment_expression "local_560 = (BIO *)X509_REQ_get0_pubkey(x_00)" (identifier "local_560") (= "=") (cast_expression "(BIO *)X509_REQ_get0_pubkey(x_00)" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_REQ_get0_pubkey(x_00)" (identifier "X509_REQ_get0_pubkey") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")"))))) (, ",") (binary_expression "local_560 == (BIO *)0x0" (identifier "local_560") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" ({ "{") (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" (else "else") (compound_statement "{\n          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);\n          if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }\n          local_570 = (EVP_PKEY *)0x0;\n          local_560 = (BIO *)0x0;\n        }" ({ "{") (expression_statement "iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);" (assignment_expression "iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560)" (identifier "iVar10") (= "=") (call_expression "X509_REQ_verify(x_00,(EVP_PKEY *)local_560)" (identifier "X509_REQ_verify") (argument_list "(x_00,(EVP_PKEY *)local_560)" (( "(") (identifier "x_00") (, ",") (cast_expression "(EVP_PKEY *)local_560" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_560")) () ")")))) (; ";")) (if_statement "if (-1 < iVar10) {\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }" (if "if") (parenthesized_expression "(-1 < iVar10)" (( "(") (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n            if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }\n            goto LAB_0004fce0;\n          }" ({ "{") (if_statement "if (iVar10 == 0) {\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }\n            else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              BIO_printf(DAT_000c458c,"verify failure\n");\n              ERR_print_errors(DAT_000c458c);\n            }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"verify failure\n");" (call_expression "BIO_printf(DAT_000c458c,"verify failure\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"verify failure\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""verify failure\n"" (" """) (string_content "verify failure") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" (else "else") (compound_statement "{\n              BIO_printf(DAT_000c458c,"verify OK\n");\n            }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"verify OK\n");" (call_expression "BIO_printf(DAT_000c458c,"verify OK\n")" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"verify OK\n")" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""verify OK\n"" (" """) (string_content "verify OK") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0004fce0;" (goto "goto") (statement_identifier "LAB_0004fce0") (; ";")) (} "}"))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (labeled_statement "LAB_0004fce0:\n      puVar6 = local_4b4;" (statement_identifier "LAB_0004fce0") (: ":") (expression_statement "puVar6 = local_4b4;" (assignment_expression "puVar6 = local_4b4" (identifier "puVar6") (= "=") (identifier "local_4b4")) (; ";"))) (if_statement "if (((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }" (if "if") (parenthesized_expression "(((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0))" (( "(") (binary_expression "((local_580 & (local_594 ^ 1)) != 0) &&\n         ((local_584 == 0 && local_56c == 0) && local_520 == 0)" (parenthesized_expression "((local_580 & (local_594 ^ 1)) != 0)" (( "(") (binary_expression "(local_580 & (local_594 ^ 1)) != 0" (parenthesized_expression "(local_580 & (local_594 ^ 1))" (( "(") (binary_expression "local_580 & (local_594 ^ 1)" (identifier "local_580") (& "&") (parenthesized_expression "(local_594 ^ 1)" (( "(") (binary_expression "local_594 ^ 1" (identifier "local_594") (^ "^") (number_literal "1")) () ")"))) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((local_584 == 0 && local_56c == 0) && local_520 == 0)" (( "(") (binary_expression "(local_584 == 0 && local_56c == 0) && local_520 == 0" (parenthesized_expression "(local_584 == 0 && local_56c == 0)" (( "(") (binary_expression "local_584 == 0 && local_56c == 0" (binary_expression "local_584 == 0" (identifier "local_584") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_56c == 0" (identifier "local_56c") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "local_520 == 0" (identifier "local_520") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        local_560 = (BIO *)0x0;\n        goto LAB_0004e57b;\n      }" ({ "{") (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" (identifier "local_564") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e57b;" (goto "goto") (statement_identifier "LAB_0004e57b") (; ";")) (} "}"))) (if_statement "if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {\n        iVar10 = 0x77;\n      }\n      else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" (if "if") (parenthesized_expression "((local_518 == (char *)0x0) || (local_50c == (char *)0x0))" (( "(") (binary_expression "(local_518 == (char *)0x0) || (local_50c == (char *)0x0)" (parenthesized_expression "(local_518 == (char *)0x0)" (( "(") (binary_expression "local_518 == (char *)0x0" (identifier "local_518") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_50c == (char *)0x0)" (( "(") (binary_expression "local_50c == (char *)0x0" (identifier "local_50c") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n        iVar10 = 0x77;\n      }" ({ "{") (expression_statement "iVar10 = 0x77;" (assignment_expression "iVar10 = 0x77" (identifier "iVar10") (= "=") (number_literal "0x77")) (; ";")) (} "}")) (else_clause "else {\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" (else "else") (compound_statement "{\n        iVar10 = strcmp(local_518,local_50c);\n        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;\n      }" ({ "{") (expression_statement "iVar10 = strcmp(local_518,local_50c);" (assignment_expression "iVar10 = strcmp(local_518,local_50c)" (identifier "iVar10") (= "=") (call_expression "strcmp(local_518,local_50c)" (identifier "strcmp") (argument_list "(local_518,local_50c)" (( "(") (identifier "local_518") (, ",") (identifier "local_50c") () ")")))) (; ";")) (expression_statement "iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;" (assignment_expression "iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77" (identifier "iVar10") (= "=") (binary_expression "(-(uint)(iVar10 == 0) & 0xffffffea) + 0x77" (parenthesized_expression "(-(uint)(iVar10 == 0) & 0xffffffea)" (( "(") (binary_expression "-(uint)(iVar10 == 0) & 0xffffffea" (unary_expression "-(uint)(iVar10 == 0)" (- "-") (call_expression "(uint)(iVar10 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xffffffea")) () ")")) (+ "+") (number_literal "0x77"))) (; ";")) (} "}")))) (expression_statement "local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);" (assignment_expression "local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6)" (identifier "local_560") (= "=") (cast_expression "(BIO *)FUN_00075fa0(local_50c,iVar10,puVar6)" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00075fa0(local_50c,iVar10,puVar6)" (identifier "FUN_00075fa0") (argument_list "(local_50c,iVar10,puVar6)" (( "(") (identifier "local_50c") (, ",") (identifier "iVar10") (, ",") (identifier "puVar6") () ")"))))) (; ";")) (if_statement "if (local_560 == (BIO *)0x0) {\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" (if "if") (parenthesized_expression "(local_560 == (BIO *)0x0)" (( "(") (binary_expression "local_560 == (BIO *)0x0" (identifier "local_560") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_570 = (EVP_PKEY *)0x0;\n        local_564 = 1;\n        goto LAB_0004e56a;\n      }" ({ "{") (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (if_statement "if (local_56c != 0) {\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }" (if "if") (parenthesized_expression "(local_56c != 0)" (( "(") (binary_expression "local_56c != 0" (identifier "local_56c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n        if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }\n        PEM_write_bio_PUBKEY(local_560,pEVar24);\n      }" ({ "{") (expression_statement "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (assignment_expression "pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" (identifier "pEVar24") (= "=") (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_REQ_get0_pubkey(x_00)" (identifier "X509_REQ_get0_pubkey") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")"))))) (; ";")) (if_statement "if (pEVar24 == (EVP_PKEY *)0x0) {\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }" (if "if") (parenthesized_expression "(pEVar24 == (EVP_PKEY *)0x0)" (( "(") (binary_expression "pEVar24 == (EVP_PKEY *)0x0" (identifier "pEVar24") (== "==") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_564 = local_56c;\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e56a;\n        }" ({ "{") (expression_statement "BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);" (call_expression "BIO_printf(DAT_000c458c,"Error getting public key\n",0,0)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Error getting public key\n",0,0)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Error getting public key\n"" (" """) (string_content "Error getting public key") (escape_sequence "\n") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (expression_statement "local_564 = local_56c;" (assignment_expression "local_564 = local_56c" (identifier "local_564") (= "=") (identifier "local_56c")) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (expression_statement "PEM_write_bio_PUBKEY(local_560,pEVar24);" (call_expression "PEM_write_bio_PUBKEY(local_560,pEVar24)" (identifier "PEM_write_bio_PUBKEY") (argument_list "(local_560,pEVar24)" (( "(") (identifier "local_560") (, ",") (identifier "pEVar24") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar19 = local_4a8;" (assignment_expression "uVar19 = local_4a8" (identifier "uVar19") (= "=") (identifier "local_4a8")) (; ";")) (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" (identifier "local_564") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_594 == 0) {\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }" (if "if") (parenthesized_expression "(local_594 == 0)" (( "(") (binary_expression "local_594 == 0" (identifier "local_594") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }\n        local_598 = local_584;\n        if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }\nLAB_000502e6:\n        uVar35 = FUN_00073120();\n        uVar25 = X509_REQ_get_subject_name(x_00);\n        FUN_00073b90(local_560,"subject=",uVar25,uVar35);\n        if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }\n        if (local_580 == 0) goto LAB_0004fe3b;\nLAB_0005031e:\n        local_564 = 0;\n        local_570 = (EVP_PKEY *)0x0;\n        goto LAB_0004e57b;\n      }" ({ "{") (if_statement "if (local_584 == 0) {\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }" (if "if") (parenthesized_expression "(local_584 == 0)" (( "(") (binary_expression "local_584 == 0" (identifier "local_584") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_598 = 1;\n          if (local_520 == 0) goto LAB_0004fe2d;\n          local_598 = local_520;\n          if (local_53c == 0) goto LAB_00050366;\n          local_598 = local_53c;\nLAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);\nLAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;\n          if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }\n          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);\n          iVar10 = EVP_PKEY_base_id(local_570);\n          if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }\n          fputc(10,*(FILE **)puVar6);\n          goto LAB_0004fe2d;\n        }" ({ "{") (expression_statement "local_598 = 1;" (assignment_expression "local_598 = 1" (identifier "local_598") (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_520 == 0) goto LAB_0004fe2d;" (if "if") (parenthesized_expression "(local_520 == 0)" (( "(") (binary_expression "local_520 == 0" (identifier "local_520") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004fe2d;" (goto "goto") (statement_identifier "LAB_0004fe2d") (; ";"))) (expression_statement "local_598 = local_520;" (assignment_expression "local_598 = local_520" (identifier "local_598") (= "=") (identifier "local_520")) (; ";")) (if_statement "if (local_53c == 0) goto LAB_00050366;" (if "if") (parenthesized_expression "(local_53c == 0)" (( "(") (binary_expression "local_53c == 0" (identifier "local_53c") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050366;" (goto "goto") (statement_identifier "LAB_00050366") (; ";"))) (expression_statement "local_598 = local_53c;" (assignment_expression "local_598 = local_53c" (identifier "local_598") (= "=") (identifier "local_53c")) (; ";")) (labeled_statement "LAB_0004fdbe:\n          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);" (statement_identifier "LAB_0004fdbe") (: ":") (expression_statement "local_570 = (EVP_PKEY *)X509_get0_pubkey(x);" (assignment_expression "local_570 = (EVP_PKEY *)X509_get0_pubkey(x)" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)X509_get0_pubkey(x)" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_get0_pubkey(x)" (identifier "X509_get0_pubkey") (argument_list "(x)" (( "(") (identifier "x") () ")"))))) (; ";"))) (labeled_statement "LAB_0004fdce:\n          puVar6 = PTR_stdout_000bdfa8;" (statement_identifier "LAB_0004fdce") (: ":") (expression_statement "puVar6 = PTR_stdout_000bdfa8;" (assignment_expression "puVar6 = PTR_stdout_000bdfa8" (identifier "puVar6") (= "=") (identifier "PTR_stdout_000bdfa8")) (; ";"))) (if_statement "if (local_570 == (EVP_PKEY *)0x0) {\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }" (if "if") (parenthesized_expression "(local_570 == (EVP_PKEY *)0x0)" (( "(") (binary_expression "local_570 == (EVP_PKEY *)0x0" (identifier "local_570") (== "==") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);\n            local_564 = local_598;\n            goto LAB_0004e56a;\n          }" ({ "{") (expression_statement "fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);" (call_expression "fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8)" (identifier "fwrite") (argument_list "("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8)" (( "(") (string_literal ""Modulus=unavailable\n"" (" """) (string_content "Modulus=unavailable") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x14") (, ",") (pointer_expression "*(FILE **)PTR_stdout_000bdfa8" (* "*") (cast_expression "(FILE **)PTR_stdout_000bdfa8" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdout_000bdfa8"))) () ")"))) (; ";")) (expression_statement "local_564 = local_598;" (assignment_expression "local_564 = local_598" (identifier "local_564") (= "=") (identifier "local_598")) (; ";")) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (} "}"))) (expression_statement "fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);" (call_expression "fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8)" (identifier "fwrite") (argument_list "("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8)" (( "(") (string_literal ""Modulus="" (" """) (string_content "Modulus=") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (pointer_expression "*(FILE **)PTR_stdout_000bdfa8" (* "*") (cast_expression "(FILE **)PTR_stdout_000bdfa8" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdout_000bdfa8"))) () ")"))) (; ";")) (expression_statement "iVar10 = EVP_PKEY_base_id(local_570);" (assignment_expression "iVar10 = EVP_PKEY_base_id(local_570)" (identifier "iVar10") (= "=") (call_expression "EVP_PKEY_base_id(local_570)" (identifier "EVP_PKEY_base_id") (argument_list "(local_570)" (( "(") (identifier "local_570") () ")")))) (; ";")) (if_statement "if (iVar10 == 6) {\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }\n          else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" (if "if") (parenthesized_expression "(iVar10 == 6)" (( "(") (binary_expression "iVar10 == 6" (identifier "iVar10") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n            uVar35 = EVP_PKEY_get0_RSA(local_570);\n            RSA_get0_key(uVar35,&local_4a0,0,0);\n            BN_print(local_560,(BIGNUM *)local_4a0.flags);\n          }" ({ "{") (expression_statement "uVar35 = EVP_PKEY_get0_RSA(local_570);" (assignment_expression "uVar35 = EVP_PKEY_get0_RSA(local_570)" (identifier "uVar35") (= "=") (call_expression "EVP_PKEY_get0_RSA(local_570)" (identifier "EVP_PKEY_get0_RSA") (argument_list "(local_570)" (( "(") (identifier "local_570") () ")")))) (; ";")) (expression_statement "RSA_get0_key(uVar35,&local_4a0,0,0);" (call_expression "RSA_get0_key(uVar35,&local_4a0,0,0)" (identifier "RSA_get0_key") (argument_list "(uVar35,&local_4a0,0,0)" (( "(") (identifier "uVar35") (, ",") (pointer_expression "&local_4a0" (& "&") (identifier "local_4a0")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "BN_print(local_560,(BIGNUM *)local_4a0.flags);" (call_expression "BN_print(local_560,(BIGNUM *)local_4a0.flags)" (identifier "BN_print") (argument_list "(local_560,(BIGNUM *)local_4a0.flags)" (( "(") (identifier "local_560") (, ",") (cast_expression "(BIGNUM *)local_4a0.flags" (( "(") (type_descriptor "BIGNUM *" (type_identifier "BIGNUM") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "local_4a0.flags" (identifier "local_4a0") (. ".") (field_identifier "flags"))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" (else "else") (compound_statement "{\n            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);\n          }" ({ "{") (expression_statement "fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);" (call_expression "fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6)" (identifier "fwrite") (argument_list "("Wrong Algorithm type",1,0x14,*(FILE **)puVar6)" (( "(") (string_literal ""Wrong Algorithm type"" (" """) (string_content "Wrong Algorithm type") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x14") (, ",") (pointer_expression "*(FILE **)puVar6" (* "*") (cast_expression "(FILE **)puVar6" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6"))) () ")"))) (; ";")) (} "}")))) (expression_statement "fputc(10,*(FILE **)puVar6);" (call_expression "fputc(10,*(FILE **)puVar6)" (identifier "fputc") (argument_list "(10,*(FILE **)puVar6)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(FILE **)puVar6" (* "*") (cast_expression "(FILE **)puVar6" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar6"))) () ")"))) (; ";")) (goto_statement "goto LAB_0004fe2d;" (goto "goto") (statement_identifier "LAB_0004fe2d") (; ";")) (} "}"))) (expression_statement "local_598 = local_584;" (assignment_expression "local_598 = local_584" (identifier "local_598") (= "=") (identifier "local_584")) (; ";")) (if_statement "if (local_53c != 0) {\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }" (if "if") (parenthesized_expression "(local_53c != 0)" (( "(") (binary_expression "local_53c != 0" (identifier "local_53c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_598 = local_53c;\nLAB_0004ffc7:\n          uVar35 = FUN_00073120();\n          pXVar23 = X509_get_subject_name(x);\n          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);\n          if (local_520 == 0) goto LAB_0004fff8;\n          goto LAB_0004fdbe;\n        }" ({ "{") (expression_statement "local_598 = local_53c;" (assignment_expression "local_598 = local_53c" (identifier "local_598") (= "=") (identifier "local_53c")) (; ";")) (labeled_statement "LAB_0004ffc7:\n          uVar35 = FUN_00073120();" (statement_identifier "LAB_0004ffc7") (: ":") (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" (identifier "uVar35") (= "=") (call_expression "FUN_00073120()" (identifier "FUN_00073120") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "pXVar23 = X509_get_subject_name(x);" (assignment_expression "pXVar23 = X509_get_subject_name(x)" (identifier "pXVar23") (= "=") (call_expression "X509_get_subject_name(x)" (identifier "X509_get_subject_name") (argument_list "(x)" (( "(") (identifier "x") () ")")))) (; ";")) (expression_statement "FUN_00073b90(local_560,"subject=",pXVar23,uVar35);" (call_expression "FUN_00073b90(local_560,"subject=",pXVar23,uVar35)" (identifier "FUN_00073b90") (argument_list "(local_560,"subject=",pXVar23,uVar35)" (( "(") (identifier "local_560") (, ",") (string_literal ""subject="" (" """) (string_content "subject=") (" """)) (, ",") (identifier "pXVar23") (, ",") (identifier "uVar35") () ")"))) (; ";")) (if_statement "if (local_520 == 0) goto LAB_0004fff8;" (if "if") (parenthesized_expression "(local_520 == 0)" (( "(") (binary_expression "local_520 == 0" (identifier "local_520") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004fff8;" (goto "goto") (statement_identifier "LAB_0004fff8") (; ";"))) (goto_statement "goto LAB_0004fdbe;" (goto "goto") (statement_identifier "LAB_0004fdbe") (; ";")) (} "}"))) (labeled_statement "LAB_000502e6:\n        uVar35 = FUN_00073120();" (statement_identifier "LAB_000502e6") (: ":") (expression_statement "uVar35 = FUN_00073120();" (assignment_expression "uVar35 = FUN_00073120()" (identifier "uVar35") (= "=") (call_expression "FUN_00073120()" (identifier "FUN_00073120") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "uVar25 = X509_REQ_get_subject_name(x_00);" (assignment_expression "uVar25 = X509_REQ_get_subject_name(x_00)" (identifier "uVar25") (= "=") (call_expression "X509_REQ_get_subject_name(x_00)" (identifier "X509_REQ_get_subject_name") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")")))) (; ";")) (expression_statement "FUN_00073b90(local_560,"subject=",uVar25,uVar35);" (call_expression "FUN_00073b90(local_560,"subject=",uVar25,uVar35)" (identifier "FUN_00073b90") (argument_list "(local_560,"subject=",uVar25,uVar35)" (( "(") (identifier "local_560") (, ",") (string_literal ""subject="" (" """) (string_content "subject=") (" """)) (, ",") (identifier "uVar25") (, ",") (identifier "uVar35") () ")"))) (; ";")) (if_statement "if (local_520 != 0) {\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }" (if "if") (parenthesized_expression "(local_520 != 0)" (( "(") (binary_expression "local_520 != 0" (identifier "local_520") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);\n          goto LAB_0004fdce;\n        }" ({ "{") (labeled_statement "LAB_00050366:\n          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (statement_identifier "LAB_00050366") (: ":") (expression_statement "local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);" (assignment_expression "local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)X509_REQ_get0_pubkey(x_00)" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_REQ_get0_pubkey(x_00)" (identifier "X509_REQ_get0_pubkey") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")"))))) (; ";"))) (goto_statement "goto LAB_0004fdce;" (goto "goto") (statement_identifier "LAB_0004fdce") (; ";")) (} "}"))) (if_statement "if (local_580 == 0) goto LAB_0004fe3b;" (if "if") (parenthesized_expression "(local_580 == 0)" (( "(") (binary_expression "local_580 == 0" (identifier "local_580") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004fe3b;" (goto "goto") (statement_identifier "LAB_0004fe3b") (; ";"))) (labeled_statement "LAB_0005031e:\n        local_564 = 0;" (statement_identifier "LAB_0005031e") (: ":") (expression_statement "local_564 = 0;" (assignment_expression "local_564 = 0" (identifier "local_564") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e57b;" (goto "goto") (statement_identifier "LAB_0004e57b") (; ";")) (} "}"))) (if_statement "if (local_53c == 0) {\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }\n      else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" (if "if") (parenthesized_expression "(local_53c == 0)" (( "(") (binary_expression "local_53c == 0" (identifier "local_53c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar22 = FUN_00073120();\n        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }\n        if (local_584 != 0) goto LAB_000502e6;\n        if (local_520 != 0) goto LAB_00050366;\nLAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;\nLAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 request\n";\n      }" ({ "{") (expression_statement "uVar22 = FUN_00073120();" (assignment_expression "uVar22 = FUN_00073120()" (identifier "uVar22") (= "=") (call_expression "FUN_00073120()" (identifier "FUN_00073120") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);" (assignment_expression "local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19)" (identifier "local_598") (= "=") (call_expression "X509_REQ_print_ex(local_560,x_00,uVar22,uVar19)" (identifier "X509_REQ_print_ex") (argument_list "(local_560,x_00,uVar22,uVar19)" (( "(") (identifier "local_560") (, ",") (identifier "x_00") (, ",") (identifier "uVar22") (, ",") (identifier "uVar19") () ")")))) (; ";")) (if_statement "if (local_598 == 0) {\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }" (if "if") (parenthesized_expression "(local_598 == 0)" (( "(") (binary_expression "local_598 == 0" (identifier "local_598") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar11 = "Error printing certificate request\n";\n          goto LAB_00050628;\n        }" ({ "{") (expression_statement "pcVar11 = "Error printing certificate request\n";" (assignment_expression "pcVar11 = "Error printing certificate request\n"" (identifier "pcVar11") (= "=") (string_literal ""Error printing certificate request\n"" (" """) (string_content "Error printing certificate request") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00050628;" (goto "goto") (statement_identifier "LAB_00050628") (; ";")) (} "}"))) (if_statement "if (local_584 != 0) goto LAB_000502e6;" (if "if") (parenthesized_expression "(local_584 != 0)" (( "(") (binary_expression "local_584 != 0" (identifier "local_584") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000502e6;" (goto "goto") (statement_identifier "LAB_000502e6") (; ";"))) (if_statement "if (local_520 != 0) goto LAB_00050366;" (if "if") (parenthesized_expression "(local_520 != 0)" (( "(") (binary_expression "local_520 != 0" (identifier "local_520") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050366;" (goto "goto") (statement_identifier "LAB_00050366") (; ";"))) (labeled_statement "LAB_0004fe2d:\n        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;" (statement_identifier "LAB_0004fe2d") (: ":") (if_statement "if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;" (if "if") (parenthesized_expression "(local_53c != 0 || local_580 != 0)" (( "(") (binary_expression "local_53c != 0 || local_580 != 0" (binary_expression "local_53c != 0" (identifier "local_53c") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_580 != 0" (identifier "local_580") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_0004fff8;" (goto "goto") (statement_identifier "LAB_0004fff8") (; ";")))) (labeled_statement "LAB_0004fe3b:\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" (statement_identifier "LAB_0004fe3b") (: ":") (if_statement "if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }\n        else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" (if "if") (parenthesized_expression "(local_4b4 == (undefined *)0x4)" (( "(") (binary_expression "local_4b4 == (undefined *)0x4" (identifier "local_4b4") (== "==") (cast_expression "(undefined *)0x4" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n          iVar10 = i2d_X509_REQ_bio(local_560,x_00);\n          uVar35 = extraout_EDX_02;\n        }" ({ "{") (expression_statement "iVar10 = i2d_X509_REQ_bio(local_560,x_00);" (assignment_expression "iVar10 = i2d_X509_REQ_bio(local_560,x_00)" (identifier "iVar10") (= "=") (call_expression "i2d_X509_REQ_bio(local_560,x_00)" (identifier "i2d_X509_REQ_bio") (argument_list "(local_560,x_00)" (( "(") (identifier "local_560") (, ",") (identifier "x_00") () ")")))) (; ";")) (expression_statement "uVar35 = extraout_EDX_02;" (assignment_expression "uVar35 = extraout_EDX_02" (identifier "uVar35") (= "=") (identifier "extraout_EDX_02")) (; ";")) (} "}")) (else_clause "else if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" (else "else") (if_statement "if (bVar5) {\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }\n        else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);\n          uVar35 = extraout_EDX_00;\n        }" ({ "{") (expression_statement "iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);" (assignment_expression "iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00)" (identifier "iVar10") (= "=") (call_expression "PEM_write_bio_X509_REQ_NEW(local_560,x_00)" (identifier "PEM_write_bio_X509_REQ_NEW") (argument_list "(local_560,x_00)" (( "(") (identifier "local_560") (, ",") (identifier "x_00") () ")")))) (; ";")) (expression_statement "uVar35 = extraout_EDX_00;" (assignment_expression "uVar35 = extraout_EDX_00" (identifier "uVar35") (= "=") (identifier "extraout_EDX_00")) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" (else "else") (compound_statement "{\n          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);\n          uVar35 = extraout_EDX_01;\n        }" ({ "{") (expression_statement "iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);" (assignment_expression "iVar10 = PEM_write_bio_X509_REQ(local_560,x_00)" (identifier "iVar10") (= "=") (call_expression "PEM_write_bio_X509_REQ(local_560,x_00)" (identifier "PEM_write_bio_X509_REQ") (argument_list "(local_560,x_00)" (( "(") (identifier "local_560") (, ",") (identifier "x_00") () ")")))) (; ";")) (expression_statement "uVar35 = extraout_EDX_01;" (assignment_expression "uVar35 = extraout_EDX_01" (identifier "uVar35") (= "=") (identifier "extraout_EDX_01")) (; ";")) (} "}"))))))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_0004e57b;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e57b;" (goto "goto") (statement_identifier "LAB_0004e57b") (; ";"))) (expression_statement "pcVar11 = "unable to write X509 request\n";" (assignment_expression "pcVar11 = "unable to write X509 request\n"" (identifier "pcVar11") (= "=") (string_literal ""unable to write X509 request\n"" (" """) (string_content "unable to write X509 request") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" (else "else") (compound_statement "{\n        uVar22 = FUN_00073120();\n        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);\n        if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }\n        if (local_584 != 0) goto LAB_0004ffc7;\n        if (local_520 != 0) goto LAB_0004fdbe;\nLAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;\n        local_570 = (EVP_PKEY *)0x0;\n        if (x == (X509 *)0x0) goto LAB_0004e57b;\n        if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }\n        local_570 = (EVP_PKEY *)0x0;\n        if (iVar10 != 0) goto LAB_0004e57b;\n        pcVar11 = "unable to write X509 certificate\n";\n        uVar35 = 0;\n      }" ({ "{") (expression_statement "uVar22 = FUN_00073120();" (assignment_expression "uVar22 = FUN_00073120()" (identifier "uVar22") (= "=") (call_expression "FUN_00073120()" (identifier "FUN_00073120") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_598 = X509_print_ex(local_560,x,uVar22,uVar19);" (assignment_expression "local_598 = X509_print_ex(local_560,x,uVar22,uVar19)" (identifier "local_598") (= "=") (call_expression "X509_print_ex(local_560,x,uVar22,uVar19)" (identifier "X509_print_ex") (argument_list "(local_560,x,uVar22,uVar19)" (( "(") (identifier "local_560") (, ",") (identifier "x") (, ",") (identifier "uVar22") (, ",") (identifier "uVar19") () ")")))) (; ";")) (if_statement "if (local_598 == 0) {\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }" (if "if") (parenthesized_expression "(local_598 == 0)" (( "(") (binary_expression "local_598 == 0" (identifier "local_598") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar11 = "Error printing certificate\n";\nLAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);\n          ERR_print_errors(DAT_000c458c);\n          local_570 = (EVP_PKEY *)0x0;\n          goto LAB_0004e57b;\n        }" ({ "{") (expression_statement "pcVar11 = "Error printing certificate\n";" (assignment_expression "pcVar11 = "Error printing certificate\n"" (identifier "pcVar11") (= "=") (string_literal ""Error printing certificate\n"" (" """) (string_content "Error printing certificate") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_00050628:\n          BIO_printf(DAT_000c458c,pcVar11,0,0);" (statement_identifier "LAB_00050628") (: ":") (expression_statement "BIO_printf(DAT_000c458c,pcVar11,0,0);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,0,0)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar11,0,0)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar11") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004e57b;" (goto "goto") (statement_identifier "LAB_0004e57b") (; ";")) (} "}"))) (if_statement "if (local_584 != 0) goto LAB_0004ffc7;" (if "if") (parenthesized_expression "(local_584 != 0)" (( "(") (binary_expression "local_584 != 0" (identifier "local_584") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004ffc7;" (goto "goto") (statement_identifier "LAB_0004ffc7") (; ";"))) (if_statement "if (local_520 != 0) goto LAB_0004fdbe;" (if "if") (parenthesized_expression "(local_520 != 0)" (( "(") (binary_expression "local_520 != 0" (identifier "local_520") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004fdbe;" (goto "goto") (statement_identifier "LAB_0004fdbe") (; ";"))) (labeled_statement "LAB_0004fff8:\n        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;" (statement_identifier "LAB_0004fff8") (: ":") (if_statement "if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;" (if "if") (parenthesized_expression "((local_53c & (local_580 ^ 1)) == 0)" (( "(") (binary_expression "(local_53c & (local_580 ^ 1)) == 0" (parenthesized_expression "(local_53c & (local_580 ^ 1))" (( "(") (binary_expression "local_53c & (local_580 ^ 1)" (identifier "local_53c") (& "&") (parenthesized_expression "(local_580 ^ 1)" (( "(") (binary_expression "local_580 ^ 1" (identifier "local_580") (^ "^") (number_literal "1")) () ")"))) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005031e;" (goto "goto") (statement_identifier "LAB_0005031e") (; ";")))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (x == (X509 *)0x0) goto LAB_0004e57b;" (if "if") (parenthesized_expression "(x == (X509 *)0x0)" (( "(") (binary_expression "x == (X509 *)0x0" (identifier "x") (== "==") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004e57b;" (goto "goto") (statement_identifier "LAB_0004e57b") (; ";"))) (if_statement "if (local_4b4 == (undefined *)0x4) {\n          iVar10 = i2d_X509_bio(local_560,x);\n        }\n        else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" (if "if") (parenthesized_expression "(local_4b4 == (undefined *)0x4)" (( "(") (binary_expression "local_4b4 == (undefined *)0x4" (identifier "local_4b4") (== "==") (cast_expression "(undefined *)0x4" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n          iVar10 = i2d_X509_bio(local_560,x);\n        }" ({ "{") (expression_statement "iVar10 = i2d_X509_bio(local_560,x);" (assignment_expression "iVar10 = i2d_X509_bio(local_560,x)" (identifier "iVar10") (= "=") (call_expression "i2d_X509_bio(local_560,x)" (identifier "i2d_X509_bio") (argument_list "(local_560,x)" (( "(") (identifier "local_560") (, ",") (identifier "x") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" (else "else") (compound_statement "{\n          iVar10 = PEM_write_bio_X509(local_560,x);\n        }" ({ "{") (expression_statement "iVar10 = PEM_write_bio_X509(local_560,x);" (assignment_expression "iVar10 = PEM_write_bio_X509(local_560,x)" (identifier "iVar10") (= "=") (call_expression "PEM_write_bio_X509(local_560,x)" (identifier "PEM_write_bio_X509") (argument_list "(local_560,x)" (( "(") (identifier "local_560") (, ",") (identifier "x") () ")")))) (; ";")) (} "}")))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar10 != 0) goto LAB_0004e57b;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004e57b;" (goto "goto") (statement_identifier "LAB_0004e57b") (; ";"))) (expression_statement "pcVar11 = "unable to write X509 certificate\n";" (assignment_expression "pcVar11 = "unable to write X509 certificate\n"" (identifier "pcVar11") (= "=") (string_literal ""unable to write X509 certificate\n"" (" """) (string_content "unable to write X509 certificate") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);" (call_expression "BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,pcVar11,uVar35,uVar35)" (( "(") (identifier "DAT_000c458c") (, ",") (identifier "pcVar11") (, ",") (identifier "uVar35") (, ",") (identifier "uVar35") () ")"))) (; ";")) (expression_statement "local_564 = local_598;" (assignment_expression "local_564 = local_598" (identifier "local_564") (= "=") (identifier "local_598")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" (else "else") (compound_statement "{\n    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");\n    local_4d0 = local_548;\n    if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }\nLAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;\n    x = (X509 *)0x0;\n    local_570 = (EVP_PKEY *)0x0;\n    local_560 = (BIO *)0x0;\n    local_564 = 1;\n  }" ({ "{") (expression_statement "local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");" (assignment_expression "local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" (identifier "local_548") (= "=") (cast_expression "(BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" (identifier "FUN_000764e0") (argument_list "(local_514,local_4b0,0,local_4c4,local_540,"Private Key")" (( "(") (identifier "local_514") (, ",") (identifier "local_4b0") (, ",") (number_literal "0") (, ",") (identifier "local_4c4") (, ",") (identifier "local_540") (, ",") (string_literal ""Private Key"" (" """) (string_content "Private Key") (" """)) () ")"))))) (; ";")) (expression_statement "local_4d0 = local_548;" (assignment_expression "local_4d0 = local_548" (identifier "local_4d0") (= "=") (identifier "local_548")) (; ";")) (if_statement "if (local_548 != (BIO *)0x0) {\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }" (if "if") (parenthesized_expression "(local_548 != (BIO *)0x0)" (( "(") (binary_expression "local_548 != (BIO *)0x0" (identifier "local_548") (!= "!=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00072430(DAT_000c4a98,&DAT_00091821);\n      goto LAB_0004f1d1;\n    }" ({ "{") (expression_statement "FUN_00072430(DAT_000c4a98,&DAT_00091821);" (call_expression "FUN_00072430(DAT_000c4a98,&DAT_00091821)" (identifier "FUN_00072430") (argument_list "(DAT_000c4a98,&DAT_00091821)" (( "(") (identifier "DAT_000c4a98") (, ",") (pointer_expression "&DAT_00091821" (& "&") (identifier "DAT_00091821")) () ")"))) (; ";")) (goto_statement "goto LAB_0004f1d1;" (goto "goto") (statement_identifier "LAB_0004f1d1") (; ";")) (} "}"))) (labeled_statement "LAB_0004f60c:\n    x_00 = (X509_REQ *)0x0;" (statement_identifier "LAB_0004f60c") (: ":") (expression_statement "x_00 = (X509_REQ *)0x0;" (assignment_expression "x_00 = (X509_REQ *)0x0" (identifier "x_00") (= "=") (cast_expression "(X509_REQ *)0x0" (( "(") (type_descriptor "X509_REQ *" (type_identifier "X509_REQ") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto LAB_0004e56a;" (goto "goto") (statement_identifier "LAB_0004e56a") (; ";")) (while_statement "while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }" (while "while") (parenthesized_expression "(iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0)" (( "(") (comma_expression "iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0" (assignment_expression "iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1)" (identifier "iVar10") (= "=") (call_expression "X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1)" (identifier "X509_REQ_add1_attr_by_NID") (argument_list "(x_00,iVar10,local_4ec,local_420,-1)" (( "(") (identifier "x_00") (, ",") (identifier "iVar10") (, ",") (identifier "local_4ec") (, ",") (identifier "local_420") (, ",") (number_literal "-1") () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\nLAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);\n    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);\n    if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);\n    if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);\n    uVar35 = extraout_ECX_00;\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }\n    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);\n    if (iVar18 == 0) goto LAB_00050d30;\n    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);\n    if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }\n    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;\n    if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }\n  }" ({ "{") (labeled_statement "LAB_00050afd:\n    do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);" (statement_identifier "LAB_00050afd") (: ":") (do_statement "do {\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    } while (iVar10 == 0);" (do "do") (compound_statement "{\n      local_588 = local_588 + 1;\n      iVar10 = OPENSSL_sk_num(local_548);\n      if (iVar10 <= local_588) goto LAB_00050951;\n      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);\n      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));\n    }" ({ "{") (expression_statement "local_588 = local_588 + 1;" (assignment_expression "local_588 = local_588 + 1" (identifier "local_588") (= "=") (binary_expression "local_588 + 1" (identifier "local_588") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = OPENSSL_sk_num(local_548);" (assignment_expression "iVar10 = OPENSSL_sk_num(local_548)" (identifier "iVar10") (= "=") (call_expression "OPENSSL_sk_num(local_548)" (identifier "OPENSSL_sk_num") (argument_list "(local_548)" (( "(") (identifier "local_548") () ")")))) (; ";")) (if_statement "if (iVar10 <= local_588) goto LAB_00050951;" (if "if") (parenthesized_expression "(iVar10 <= local_588)" (( "(") (binary_expression "iVar10 <= local_588" (identifier "iVar10") (<= "<=") (identifier "local_588")) () ")")) (goto_statement "goto LAB_00050951;" (goto "goto") (statement_identifier "LAB_00050951") (; ";"))) (expression_statement "iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);" (assignment_expression "iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10)" (identifier "iVar10") (= "=") (call_expression "OPENSSL_sk_value(local_548,local_588,iVar10,iVar10)" (identifier "OPENSSL_sk_value") (argument_list "(local_548,local_588,iVar10,iVar10)" (( "(") (identifier "local_548") (, ",") (identifier "local_588") (, ",") (identifier "iVar10") (, ",") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));" (assignment_expression "iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4))" (identifier "iVar10") (= "=") (call_expression "OBJ_txt2nid(*(char **)(iVar10 + 4))" (identifier "OBJ_txt2nid") (argument_list "(*(char **)(iVar10 + 4))" (( "(") (pointer_expression "*(char **)(iVar10 + 4)" (* "*") (cast_expression "(char **)(iVar10 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 4)" (( "(") (binary_expression "iVar10 + 4" (identifier "iVar10") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (; ";"))) (expression_statement "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);" (assignment_expression "iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10)" (identifier "iVar18") (= "=") (call_expression "FUN_0004de90("_default","Name",iVar10,iVar10)" (identifier "FUN_0004de90") (argument_list "("_default","Name",iVar10,iVar10)" (( "(") (string_literal ""_default"" (" """) (string_content "_default") (" """)) (, ",") (string_literal ""Name"" (" """) (string_content "Name") (" """)) (, ",") (identifier "iVar10") (, ",") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00050d30:\n      puVar26 = &DAT_000c458c;\n      goto LAB_0004f815;\n    }" ({ "{") (labeled_statement "LAB_00050d30:\n      puVar26 = &DAT_000c458c;" (statement_identifier "LAB_00050d30") (: ":") (expression_statement "puVar26 = &DAT_000c458c;" (assignment_expression "puVar26 = &DAT_000c458c" (identifier "puVar26") (= "=") (pointer_expression "&DAT_000c458c" (& "&") (identifier "DAT_000c458c"))) (; ";"))) (goto_statement "goto LAB_0004f815;" (goto "goto") (statement_identifier "LAB_0004f815") (; ";")) (} "}"))) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" (identifier "pcVar12") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,(char *)section,pcVar11)" (( "(") (identifier "DAT_000c4a98") (, ",") (cast_expression "(char *)section" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "section")) (, ",") (identifier "pcVar11") () ")")))) (; ";")) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      ERR_clear_error();\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12)" (identifier "iVar18") (= "=") (call_expression "FUN_0004de90("_value","Name",pcVar12,pcVar12)" (identifier "FUN_0004de90") (argument_list "("_value","Name",pcVar12,pcVar12)" (( "(") (string_literal ""_value"" (" """) (string_content "_value") (" """)) (, ",") (string_literal ""Name"" (" """) (string_content "Name") (" """)) (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar12") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050d30;" (goto "goto") (statement_identifier "LAB_00050d30") (; ";"))) (expression_statement "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);" (assignment_expression "pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" (identifier "pcVar12") (= "=") (call_expression "NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11)" (identifier "NCONF_get_string") (argument_list "(DAT_000c4a98,(char *)section,pcVar11)" (( "(") (identifier "DAT_000c4a98") (, ",") (cast_expression "(char *)section" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "section")) (, ",") (identifier "pcVar11") () ")")))) (; ";")) (if_statement "if (pcVar12 == (char *)0x0) {\n      ERR_clear_error();\n    }" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      ERR_clear_error();\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" (identifier "iVar18") (= "=") (call_expression "FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12)" (identifier "FUN_0004de90") (argument_list "(&DAT_00087c81,"Name",pcVar12,pcVar12)" (( "(") (pointer_expression "&DAT_00087c81" (& "&") (identifier "DAT_00087c81")) (, ",") (string_literal ""Name"" (" """) (string_content "Name") (" """)) (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar12") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050d30;" (goto "goto") (statement_identifier "LAB_00050d30") (; ";"))) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" (identifier "iVar18") (= "=") (call_expression "NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" (identifier "NCONF_get_number_e") (argument_list "(DAT_000c4a98,(char *)section,pcVar11,&local_4a4)" (( "(") (identifier "DAT_000c4a98") (, ",") (cast_expression "(char *)section" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "section")) (, ",") (identifier "pcVar11") (, ",") (pointer_expression "&local_4a4" (& "&") (identifier "local_4a4")) () ")")))) (; ";")) (expression_statement "uVar35 = extraout_ECX_00;" (assignment_expression "uVar35 = extraout_ECX_00" (identifier "uVar35") (= "=") (identifier "extraout_ECX_00")) (; ";")) (if_statement "if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ERR_clear_error();\n      local_4a4 = -1;\n      uVar35 = extraout_ECX_01;\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4a4 = -1;" (assignment_expression "local_4a4 = -1" (identifier "local_4a4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "uVar35 = extraout_ECX_01;" (assignment_expression "uVar35 = extraout_ECX_01" (identifier "uVar35") (= "=") (identifier "extraout_ECX_01")) (; ";")) (} "}"))) (expression_statement "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);" (assignment_expression "iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35)" (identifier "iVar18") (= "=") (call_expression "FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35)" (identifier "FUN_0004de90") (argument_list "(&DAT_00087c86,"Name",uVar35,uVar35)" (( "(") (pointer_expression "&DAT_00087c86" (& "&") (identifier "DAT_00087c86")) (, ",") (string_literal ""Name"" (" """) (string_content "Name") (" """)) (, ",") (identifier "uVar35") (, ",") (identifier "uVar35") () ")")))) (; ";")) (if_statement "if (iVar18 == 0) goto LAB_00050d30;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050d30;" (goto "goto") (statement_identifier "LAB_00050d30") (; ";"))) (expression_statement "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);" (assignment_expression "iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" (identifier "iVar18") (= "=") (call_expression "NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" (identifier "NCONF_get_number_e") (argument_list "(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags)" (( "(") (identifier "DAT_000c4a98") (, ",") (cast_expression "(char *)section" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "section")) (, ",") (identifier "pcVar11") (, ",") (pointer_expression "&local_4a0.flags" (& "&") (field_expression "local_4a0.flags" (identifier "local_4a0") (. ".") (field_identifier "flags"))) () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ERR_clear_error();\n      local_4a0.flags = -1;\n    }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4a0.flags = -1;" (assignment_expression "local_4a0.flags = -1" (field_expression "local_4a0.flags" (identifier "local_4a0") (. ".") (field_identifier "flags")) (= "=") (number_literal "-1")) (; ";")) (} "}"))) (expression_statement "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")\n    ;" (assignment_expression "uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" (identifier "uVar27") (= "=") (call_expression "FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" (identifier "FUN_0004df30") (argument_list "(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")" (( "(") (identifier "local_4a4") (, ",") (field_expression "local_4a0.flags" (identifier "local_4a0") (. ".") (field_identifier "flags")) (, ",") (identifier "local_420") (, ",") (string_literal ""Attribute value"" (" """) (string_content "Attribute value") (" """)) (, ",") (string_literal ""Attribute default"" (" """) (string_content "Attribute default") (" """)) () ")")))) (; ";")) (if_statement "if (uVar27 < 2) {\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }" (if "if") (parenthesized_expression "(uVar27 < 2)" (( "(") (binary_expression "uVar27 < 2" (identifier "uVar27") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      if (uVar27 == 0) goto LAB_00050d30;\n      goto LAB_00050afd;\n    }" ({ "{") (if_statement "if (uVar27 == 0) goto LAB_00050d30;" (if "if") (parenthesized_expression "(uVar27 == 0)" (( "(") (binary_expression "uVar27 == 0" (identifier "uVar27") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00050d30;" (goto "goto") (statement_identifier "LAB_00050d30") (; ";"))) (goto_statement "goto LAB_00050afd;" (goto "goto") (statement_identifier "LAB_00050afd") (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);" (assignment_expression "puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Error adding attribute\n",0,0)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Error adding attribute\n"" (" """) (string_content "Error adding attribute") (escape_sequence "\n") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (labeled_statement "LAB_0004f815:\n  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);" (statement_identifier "LAB_0004f815") (: ":") (expression_statement "BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);" (call_expression "BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""problems making Certificate Request\n"" (" """) (string_content "problems making Certificate Request") (escape_sequence "\n") (" """)) (, ",") (identifier "puVar26") (, ",") (identifier "puVar26") () ")"))) (; ";"))) (labeled_statement "LAB_0004f82c:\n  local_564 = 1;" (statement_identifier "LAB_0004f82c") (: ":") (expression_statement "local_564 = 1;" (assignment_expression "local_564 = 1" (identifier "local_564") (= "=") (number_literal "1")) (; ";"))) (expression_statement "x = (X509 *)0x0;" (assignment_expression "x = (X509 *)0x0" (identifier "x") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_570 = (EVP_PKEY *)0x0;" (assignment_expression "local_570 = (EVP_PKEY *)0x0" (identifier "local_570") (= "=") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_560 = (BIO *)0x0;" (assignment_expression "local_560 = (BIO *)0x0" (identifier "local_560") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_548 = (BIO *)0x0;" (assignment_expression "local_548 = (BIO *)0x0" (identifier "local_548") (= "=") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0004e56a:\n  ERR_print_errors(DAT_000c458c);" (statement_identifier "LAB_0004e56a") (: ":") (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";"))) (labeled_statement "LAB_0004e57b:\n  NCONF_free(DAT_000c4a98);" (statement_identifier "LAB_0004e57b") (: ":") (expression_statement "NCONF_free(DAT_000c4a98);" (call_expression "NCONF_free(DAT_000c4a98)" (identifier "NCONF_free") (argument_list "(DAT_000c4a98)" (( "(") (identifier "DAT_000c4a98") () ")"))) (; ";"))) (expression_statement "NCONF_free(DAT_000c4a94);" (call_expression "NCONF_free(DAT_000c4a94)" (identifier "NCONF_free") (argument_list "(DAT_000c4a94)" (( "(") (identifier "DAT_000c4a94") () ")"))) (; ";")) (expression_statement "BIO_free(local_550);" (call_expression "BIO_free(local_550)" (identifier "BIO_free") (argument_list "(local_550)" (( "(") (identifier "local_550") () ")"))) (; ";")) (expression_statement "BIO_free(local_548);" (call_expression "BIO_free(local_548)" (identifier "BIO_free") (argument_list "(local_548)" (( "(") (identifier "local_548") () ")"))) (; ";")) (expression_statement "BIO_free_all(local_560);" (call_expression "BIO_free_all(local_560)" (identifier "BIO_free_all") (argument_list "(local_560)" (( "(") (identifier "local_560") () ")"))) (; ";")) (expression_statement "EVP_PKEY_free((EVP_PKEY *)local_4d0);" (call_expression "EVP_PKEY_free((EVP_PKEY *)local_4d0)" (identifier "EVP_PKEY_free") (argument_list "((EVP_PKEY *)local_4d0)" (( "(") (cast_expression "(EVP_PKEY *)local_4d0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_4d0")) () ")"))) (; ";")) (expression_statement "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);" (call_expression "EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570)" (identifier "EVP_PKEY_CTX_free") (argument_list "((EVP_PKEY_CTX *)local_570)" (( "(") (cast_expression "(EVP_PKEY_CTX *)local_570" (( "(") (type_descriptor "EVP_PKEY_CTX *" (type_identifier "EVP_PKEY_CTX") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_570")) () ")"))) (; ";")) (expression_statement "OPENSSL_sk_free(local_55c);" (call_expression "OPENSSL_sk_free(local_55c)" (identifier "OPENSSL_sk_free") (argument_list "(local_55c)" (( "(") (identifier "local_55c") () ")"))) (; ";")) (expression_statement "OPENSSL_sk_free(local_558);" (call_expression "OPENSSL_sk_free(local_558)" (identifier "OPENSSL_sk_free") (argument_list "(local_558)" (( "(") (identifier "local_558") () ")"))) (; ";")) (expression_statement "OPENSSL_LH_doall(local_54c,FUN_0004d6e0);" (call_expression "OPENSSL_LH_doall(local_54c,FUN_0004d6e0)" (identifier "OPENSSL_LH_doall") (argument_list "(local_54c,FUN_0004d6e0)" (( "(") (identifier "local_54c") (, ",") (identifier "FUN_0004d6e0") () ")"))) (; ";")) (expression_statement "OPENSSL_LH_free(local_54c);" (call_expression "OPENSSL_LH_free(local_54c)" (identifier "OPENSSL_LH_free") (argument_list "(local_54c)" (( "(") (identifier "local_54c") () ")"))) (; ";")) (expression_statement "ENGINE_free(local_544);" (call_expression "ENGINE_free(local_544)" (identifier "ENGINE_free") (argument_list "(local_544)" (( "(") (identifier "local_544") () ")"))) (; ";")) (expression_statement "uVar35 = 0x3cc;" (assignment_expression "uVar35 = 0x3cc" (identifier "uVar35") (= "=") (number_literal "0x3cc")) (; ";")) (expression_statement "CRYPTO_free(local_4c8);" (call_expression "CRYPTO_free(local_4c8)" (identifier "CRYPTO_free") (argument_list "(local_4c8)" (( "(") (identifier "local_4c8") () ")"))) (; ";")) (expression_statement "X509_REQ_free(x_00);" (call_expression "X509_REQ_free(x_00)" (identifier "X509_REQ_free") (argument_list "(x_00)" (( "(") (identifier "x_00") () ")"))) (; ";")) (expression_statement "X509_free(x);" (call_expression "X509_free(x)" (identifier "X509_free") (argument_list "(x)" (( "(") (identifier "x") () ")"))) (; ";")) (expression_statement "ASN1_INTEGER_free(local_554);" (call_expression "ASN1_INTEGER_free(local_554)" (identifier "ASN1_INTEGER_free") (argument_list "(local_554)" (( "(") (identifier "local_554") () ")"))) (; ";")) (expression_statement "FUN_00074230(local_540,pcVar34,uVar35);" (call_expression "FUN_00074230(local_540,pcVar34,uVar35)" (identifier "FUN_00074230") (argument_list "(local_540,pcVar34,uVar35)" (( "(") (identifier "local_540") (, ",") (identifier "pcVar34") (, ",") (identifier "uVar35") () ")"))) (; ";")) (if_statement "if (local_4c4 != local_538) {\n    CRYPTO_free(local_4c4);\n  }" (if "if") (parenthesized_expression "(local_4c4 != local_538)" (( "(") (binary_expression "local_4c4 != local_538" (identifier "local_4c4") (!= "!=") (identifier "local_538")) () ")")) (compound_statement "{\n    CRYPTO_free(local_4c4);\n  }" ({ "{") (expression_statement "CRYPTO_free(local_4c4);" (call_expression "CRYPTO_free(local_4c4)" (identifier "CRYPTO_free") (argument_list "(local_4c4)" (( "(") (identifier "local_4c4") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_4c0 != local_534) {\n    CRYPTO_free(local_4c0);\n  }" (if "if") (parenthesized_expression "(local_4c0 != local_534)" (( "(") (binary_expression "local_4c0 != local_534" (identifier "local_4c0") (!= "!=") (identifier "local_534")) () ")")) (compound_statement "{\n    CRYPTO_free(local_4c0);\n  }" ({ "{") (expression_statement "CRYPTO_free(local_4c0);" (call_expression "CRYPTO_free(local_4c0)" (identifier "CRYPTO_free") (argument_list "(local_4c0)" (( "(") (identifier "local_4c0") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0007d010();\n  }" ({ "{") (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" (identifier "FUN_0007d010") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return local_564;" (return "return") (identifier "local_564") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

int function_1(int argc,char **argv)

{
  int var_188;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  type_1 *puVar6;
  type_2 *var_96;
  bool var_12;
  char var_63;
  type_3 *pEVar10;
  char **ppcVar11;
  int var_5;
  char *var_67;
  char *var_21;
  type_4 *var_24;
  type_5 **ppuVar16;
  type_6 *var_53;
  type_7 *type;
  type_8 *var_39;
  type_9 *var_42;
  int var_86;
  type_10 var_100;
  type_11 *result;
  type_8 *var_106;
  type_8 *var_107;
  type_10 uVar23;
  type_12 *pXVar24;
  type_2 *var_136;
  type_12 *pXVar26;
  type_4 **ppBVar27;
  char *var_176;
  char *var_70;
  type_13 var_123;
  type_8 *extraout_ECX;
  type_8 *extraout_EDX;
  type_14 extraout_EDX_00;
  type_14 extraout_EDX_01;
  type_14 extraout_EDX_02;
  type_9 *var_74;
  int var_121;
  type_15 *var_127;
  type_16 *var_103;
  int var_1;
  bool var_97;
  bool bVar33;
  bool var_78;
  type_9 var_111;
  type_17 uVar36;
  type_14 uVar37;
  type_8 *psVar38;
  type_13 var_166;
  type_13 var_151;
  int var_41;
  type_13 var_152;
  type_13 var_150;
  int local_57c;
  type_13 var_148;
  type_2 *var_81;
  type_13 var_153;
  type_13 var_9;
  type_4 *var_17;
  int var_52;
  type_18 *var_49;
  type_6 *var_57;
  type_4 *var_15;
  int var_59;
  type_4 *var_117;
  type_19 *var_47;
  type_19 *local_540;
  type_13 var_7;
  char *var_36;
  char *var_38;
  int var_8;
  char *var_11;
  char **var_30;
  type_8 *var_75;
  type_13 var_154;
  char *var_109;
  char *var_94;
  char *var_76;
  type_20 *local_510;
  char *var_155;
  type_3 *local_500;
  type_10 local_4ec;
  type_2 *var_77;
  type_20 *var_28;
  char *keyalgstr;
  char *var_35;
  char *var_37;
  int var_84;
  int var_143;
  int var_167;
  int keyform;
  long var_83;
  type_10 reqflag;
  long n_min;
  type_21 ctx;
  char buf [100];
  char buf_1 [1024];
  
  var_111 = 0;
  var_78 = false;
  var_188 = *(int *)(var_1 + 0x14);
  var_77 = (type_2 *)0x0;
  var_28 = (type_20 *)0x0;
  var_17 = (type_4 *)default_config_file;
  keyalgstr = (char *)0x0;
  var_35 = (char *)0x0;
  var_37 = (char *)0x0;
  var_84 = -1;
  var_143 = 0x8005;
  var_167 = 0x8005;
  keyform = 0x8005;
  var_83 = -1;
  reqflag = 0;
  pEVar10 = var_2();
  result = req_options;
  ppcVar11 = (char **)var_3(argc,argv,(type_22 *)req_options);
  var_41 = 0x1001;
  bVar4 = false;
  var_153 = 0;
  var_152 = 0;
  bVar5 = false;
  bVar3 = false;
  var_151 = 0;
  var_150 = 0;
  var_148 = 0;
  local_57c = 0;
  var_154 = 0;
  bVar2 = false;
  var_8 = 0;
  var_7 = 0;
  var_81 = (type_2 *)0x0;
  var_94 = (char *)0x0;
  var_109 = (char *)0x0;
  var_75 = (type_8 *)0x0;
  var_117 = (type_4 *)0x0;
  var_38 = (char *)0x0;
  var_76 = (char *)0x0;
  var_155 = (char *)0x0;
  var_11 = (char *)0x0;
  var_30 = (char **)0x0;
  var_15 = (type_4 *)0x0;
  local_510 = (type_20 *)0x0;
  var_59 = 0;
  var_49 = (type_18 *)0x0;
  var_52 = 0;
  var_47 = (type_19 *)0x0;
  local_540 = (type_19 *)0x0;
  var_57 = (type_6 *)0x0;
LAB_0004e430:
  var_5 = var_4();
  if (var_5 != 0) goto LAB_0004e43d;
LAB_0004e6f0:
  var_5 = var_6();
  if (var_5 != 0) goto LAB_0004e51a;
  var_9 = var_7 ^ 1;
  if ((var_8 != 0) && (var_9 != 0)) {
    var_10((type_4 *)bio_err,"Ignoring -days; not generating a certificate\n");
  }
  var_96 = var_77;
  var_12 = (bool)(var_11 == (char *)0x0 & (type_9)var_7);
  var_97 = var_78;
  if (var_12 != false) {
    var_78 = var_12;
    var_97 = true;
  }
  var_67 = (char *)&var_35;
  var_5 = var_13(var_38,(char *)var_117,(char **)var_67,&var_37);
  if (var_5 == 0) {
    var_21 = "Error getting passwords\n";
    goto LAB_0004e52c;
  }
  if (bVar2) {
    var_67 = (char *)var_17;
    var_10((type_4 *)bio_err,"Using configuration from %s\n",var_17);
    var_19 = var_14((char *)var_17);
    if (var_15 != (type_4 *)0x0) {
      var_10((type_4 *)bio_err,"Using additional configuration from command line\n",var_67);
      goto LAB_0004e7d1;
    }
  }
  else {
    var_19 = var_14((char *)var_17);
    if (var_15 != (type_4 *)0x0) {
LAB_0004e7d1:
      var_34 = var_16((type_4 *)var_15,(char *)0x0);
    }
  }
  if (((type_4 *)default_config_file != var_17) &&
     (var_5 = var_18(var_19), var_5 == 0)) goto LAB_0004eb16;
  if (var_19 != (type_23 *)0x0) {
    var_67 = "oid_file";
    var_21 = var_20((type_23 *)var_19,(char *)0x0,"oid_file");
    if (var_21 == (char *)0x0) {
      var_22();
    }
    else {
      var_24 = var_23(var_21,"r");
      if (var_24 != (type_4 *)0x0) {
        var_25(var_24);
        var_26(var_24);
      }
    }
  }
  var_5 = var_27(var_19);
  if (var_5 != 0) {
    if (var_28 == (type_20 *)0x0) {
      var_67 = "default_md";
      var_21 = var_20((type_23 *)var_19,"req","default_md");
      if (var_21 == (char *)0x0) {
        var_22();
      }
      else {
        var_5 = var_29(var_21,&var_28);
        if (var_5 == 0) goto LAB_0004e51a;
        local_510 = var_28;
      }
    }
    if (var_30 == (char **)0x0) {
      var_67 = "x509_extensions";
      var_30 = (char **)var_20((type_23 *)var_19,"req","x509_extensions");
      if (var_30 != (char **)0x0) goto LAB_0004e89e;
      var_22();
    }
    else {
LAB_0004e89e:
      var_31((type_21 *)&ctx,(type_15 *)0x0,(type_15 *)0x0,(type_16 *)0x0,(type_24 *)0x0,1);
      var_32((type_21 *)&ctx,(type_23 *)var_19);
      var_5 = var_33
                         ((type_23 *)var_19,(type_21 *)&ctx,(char *)var_30,(type_15 *)0x0);
      if (var_5 == 0) {
        var_21 = "Error Loading extension section %s\n";
        var_67 = (char *)var_30;
        goto LAB_0004e52c;
      }
    }
    if (var_34 != (type_23 *)0x0) {
      var_31((type_21 *)&ctx,(type_15 *)0x0,(type_15 *)0x0,(type_16 *)0x0,(type_24 *)0x0,1);
      var_32((type_21 *)&ctx,(type_23 *)var_34);
      var_5 = var_33((type_23 *)var_34,(type_21 *)&ctx,"default",(type_15 *)0x0);
      if (var_5 == 0) {
        var_21 = "Error Loading command line extensions\n";
        goto LAB_0004e52c;
      }
    }
    var_36 = (char *)0x0;
    if ((var_35 == (char *)0x0) &&
       (var_36 = var_20((type_23 *)var_19,"req","input_password"), var_35 = var_36,
       var_36 == (char *)0x0)) {
      var_22();
    }
    var_38 = (char *)0x0;
    if ((var_37 == (char *)0x0) &&
       (var_38 = var_20((type_23 *)var_19,"req","output_password"), var_37 = var_38,
       var_38 == (char *)0x0)) {
      var_22();
    }
    var_67 = "string_mask";
    var_39 = (type_8 *)var_20((type_23 *)var_19,"req","string_mask");
    if (var_39 == (type_8 *)0x0) {
      var_22();
    }
    else {
      var_5 = var_40((char *)var_39);
      if (var_5 == 0) {
        var_67 = "Invalid global string mask setting %s\n";
        goto LAB_0004fba6;
      }
    }
    if (var_41 == 0x1000) goto LAB_0004f5da;
    var_67 = "utf8";
    var_42 = (type_9 *)var_20((type_23 *)var_19,"req","utf8");
    var_12 = false;
    bVar33 = var_42 == (type_9 *)0x0;
    if (bVar33) {
      var_22();
      local_4ec = 0x1001;
      goto LAB_0004f11f;
    }
    var_5 = 4;
    var_74 = &DAT_0007e7a8;
    goto code_r0x0004f105;
  }
  goto LAB_0004eb16;
LAB_0004e43d:
  while (var_5 != 0x15) {
    if (var_5 < 0x16) {
      if (var_5 == 10) {
        var_67 = var_43();
        result = (type_11 *)&keyform;
        var_53 = (type_6 *)var_44(var_67,0x7be,(int *)result);
      }
      else if (var_5 < 0xb) {
        if (var_5 == 4) {
          var_67 = var_43();
          local_540 = var_45(var_67,0);
          goto LAB_0004e430;
        }
        if (4 < var_5) {
          if (var_5 == 7) {
            var_153 = 1;
            goto LAB_0004e430;
          }
          if (7 < var_5) {
            if (var_5 == 8) {
              var_78 = true;
            }
            else if (var_5 == 9) {
              var_17 = (type_4 *)var_43();
            }
            goto LAB_0004e430;
          }
          if (var_5 != 5) {
            if (var_5 == 6) {
              var_76 = var_43();
            }
            goto LAB_0004e430;
          }
          var_67 = var_43();
          var_47 = (type_19 *)var_46(var_67);
          if (var_47 != (type_19 *)0x0) goto LAB_0004e430;
          result = *argv;
          var_67 = "Can\'t find keygen engine %s\n";
LAB_0004e4a9:
          var_10((type_4 *)bio_err,var_67,result);
          goto LAB_0004e51a;
        }
        if (var_5 == 1) {
          var_103 = (type_16 *)0x0;
          var_127 = (type_15 *)0x0;
          var_48((type_22 *)req_options);
          var_9 = 0;
          var_38 = (char *)0x0;
          var_36 = (char *)0x0;
          var_81 = (type_2 *)0x0;
          var_17 = (type_4 *)0x0;
          var_117 = (type_4 *)0x0;
          goto LAB_0004e57b;
        }
        if (var_5 < 2) {
          if (var_5 != -1) goto LAB_0004e430;
          goto LAB_0004e51a;
        }
        if (var_5 == 2) {
          var_67 = var_43();
          result = (type_11 *)&var_143;
          var_53 = (type_6 *)var_44(var_67,2,(int *)result);
        }
        else {
          if (var_5 != 3) goto LAB_0004e430;
          var_67 = var_43();
          result = (type_11 *)&var_167;
          var_53 = (type_6 *)var_44(var_67,2,(int *)result);
        }
      }
      else {
        if (var_5 == 0xf) {
          var_117 = (type_4 *)var_43();
          goto LAB_0004e430;
        }
        if (var_5 < 0x10) {
          if (var_5 == 0xc) {
            var_155 = var_43();
          }
          else if (var_5 < 0xc) {
            var_11 = var_43();
          }
          else if (var_5 == 0xd) {
            var_94 = var_43();
          }
          else if (var_5 == 0xe) {
            var_38 = var_43();
          }
          goto LAB_0004e430;
        }
        if (var_5 == 0x12) {
          if ((var_49 == (type_18 *)0x0) &&
             (var_49 = (type_18 *)var_50(),
             var_49 == (type_18 *)0x0)) goto LAB_0004e51a;
          var_67 = var_43();
          var_53 = (type_6 *)var_51(var_49,var_67);
        }
        else {
          if (0x12 < var_5) {
            if (var_5 == 0x13) {
              var_116 = 1;
            }
            else if (var_5 == 0x14) {
              bVar5 = true;
            }
            goto LAB_0004e430;
          }
          if (var_5 == 0x10) {
            var_81 = (type_2 *)var_43();
            var_78 = true;
            goto LAB_0004e430;
          }
          if (var_5 != 0x11) goto LAB_0004e430;
          if ((var_52 == 0) && (var_52 = var_50(), var_52 == 0))
          goto LAB_0004e51a;
          var_67 = var_43();
          var_53 = (type_6 *)var_51(var_52,var_67);
        }
      }
joined_r0x0004ee90:
      if (var_53 == (type_6 *)0x0) goto LAB_0004e51a;
      goto LAB_0004e430;
    }
    if (var_5 == 0x20) {
      var_7 = 1;
      goto LAB_0004e430;
    }
    if (0x20 < var_5) {
      if (var_5 == 0x25) {
        var_30 = (char **)var_43();
        goto LAB_0004e430;
      }
      if (0x25 < var_5) {
        if (var_5 == 0x28) {
          var_67 = var_54();
          var_5 = var_29(var_67,&var_28);
          if (var_5 == 0) goto LAB_0004e51a;
          local_510 = var_28;
          goto LAB_0004e430;
        }
        if (0x28 < var_5) {
          if ((1 < var_5 - 0x5ddU) || (var_5 = var_55(var_5), var_5 != 0)) goto LAB_0004e430;
          goto LAB_0004eb16;
        }
        if (var_5 == 0x26) {
          var_75 = (type_8 *)var_43();
        }
        else if (var_5 == 0x27) {
          var_78 = true;
          bVar4 = true;
        }
        goto LAB_0004e430;
      }
      if (var_5 == 0x22) {
        var_67 = var_43();
        result = (type_11 *)0xa;
        var_8 = var_56(var_67,(char **)0x0,10);
        goto LAB_0004e430;
      }
      if (var_5 < 0x22) {
        local_57c = 1;
        goto LAB_0004e430;
      }
      if (var_5 == 0x23) {
        if (var_57 != (type_6 *)0x0) {
          var_67 = "Serial number supplied twice\n";
          goto LAB_0004e4a9;
        }
        var_67 = var_43();
        var_57 = var_58((type_25 *)0x0,var_67);
        var_53 = var_57;
        goto joined_r0x0004ee90;
      }
      if (var_5 != 0x24) goto LAB_0004e430;
      var_67 = var_43();
      if (var_59 == 0) {
        var_59 = var_60(ext_name_hash,ext_name_cmp);
        type = var_61();
        var_15 = var_62(type);
        if ((var_59 == 0) || (var_15 == (type_4 *)0x0)) {
          var_127 = (type_15 *)0x0;
          var_103 = (type_16 *)0x0;
          var_38 = (char *)0x0;
          var_36 = (char *)0x0;
          var_81 = (type_2 *)0x0;
          var_17 = (type_4 *)0x0;
          var_117 = (type_4 *)0x0;
          var_9 = 1;
          goto LAB_0004e56a;
        }
      }
      var_63 = *var_67;
      if (var_63 != '\0') goto LAB_0004ea31;
      goto LAB_0004ea4d;
    }
    if (var_5 == 0x1a) {
      var_41 = 0x1000;
      goto LAB_0004e430;
    }
    if (var_5 < 0x1b) {
      if (var_5 == 0x17) {
        bVar3 = true;
      }
      else if (var_5 < 0x17) {
        var_148 = 1;
      }
      else if (var_5 == 0x18) {
        var_150 = 1;
      }
      else if (var_5 == 0x19) {
        bVar2 = true;
      }
      goto LAB_0004e430;
    }
    if (var_5 == 0x1d) {
      var_109 = var_43();
      goto LAB_0004e430;
    }
    if (0x1d < var_5) {
      if (var_5 == 0x1e) {
        var_152 = 1;
      }
      else if (var_5 == 0x1f) {
        var_151 = 1;
      }
      goto LAB_0004e430;
    }
    if (var_5 == 0x1b) {
      var_67 = var_43();
      var_5 = var_64(var_67);
      if (var_5 != 0) goto LAB_0004e430;
      goto LAB_0004e51a;
    }
    if (var_5 != 0x1c) goto LAB_0004e430;
    var_67 = var_43();
    var_5 = var_65(&reqflag,var_67);
    if (var_5 == 0) goto LAB_0004e51a;
    var_5 = var_4();
    if (var_5 == 0) goto LAB_0004e6f0;
  }
  var_154 = 1;
  goto LAB_0004e430;
LAB_0004ea31:
  ppuVar16 = var_66();
  if ((*(type_9 *)((int)*ppuVar16 + var_63 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;
  var_67 = var_67 + 1;
  var_63 = *var_67;
  if (var_63 == '\0') goto LAB_0004e51a;
  goto LAB_0004ea31;
LAB_0004ea4d:
  var_21 = var_68(var_67,0x3d);
  if (var_21 == (char *)0x0) goto LAB_0004e51a;
  var_70 = var_69(var_67,"../apps/req.c",0xbd);
  if (var_70 == (char *)0x0) {
    var_38 = (char *)0x0;
    var_36 = (char *)0x0;
    var_117 = (type_4 *)0x0;
    goto LAB_0004f60c;
  }
  var_67 = var_70 + ((int)var_21 - (int)var_67);
  if (var_70 < var_67) {
    ppuVar16 = var_66();
    while ((*(type_9 *)((int)*ppuVar16 + var_67[-1] * 2 + 1) & 0x20) != 0) {
      var_67 = var_67 + -1;
      if (var_70 == var_67) goto LAB_0004f4ba;
    }
  }
  if (var_67 == var_70) {
LAB_0004f4ba:
    var_71(var_70);
    goto LAB_0004e51a;
  }
  *var_67 = '\0';
  var_24 = (type_4 *)var_72(var_59,var_70);
  if ((var_24 == (type_4 *)0x0) &&
     (var_5 = var_73(var_59), var_24 = (type_4 *)var_70, var_5 == 0)) {
    result = var_43();
    var_5 = var_10(var_15,"%s\n",result);
    if (var_5 < 0) {
      var_127 = (type_15 *)0x0;
      var_103 = (type_16 *)0x0;
      var_38 = (char *)0x0;
      var_36 = (char *)0x0;
      var_81 = (type_2 *)0x0;
      var_117 = (type_4 *)0x0;
      var_9 = 1;
      var_17 = (type_4 *)0x0;
      goto LAB_0004e56a;
    }
    goto LAB_0004e430;
  }
  var_17 = var_24;
  var_71(var_17);
LAB_0004eb16:
  var_103 = (type_16 *)0x0;
  var_127 = (type_15 *)0x0;
  var_9 = 1;
  var_38 = (char *)0x0;
  var_36 = (char *)0x0;
  var_81 = (type_2 *)0x0;
  var_17 = (type_4 *)0x0;
  var_117 = (type_4 *)0x0;
  goto LAB_0004e56a;
LAB_0004e51a:
  var_21 = "%s: Use -help for summary.\n";
  var_67 = (char *)ppcVar11;
LAB_0004e52c:
  var_10((type_4 *)bio_err,var_21,var_67);
  var_38 = (char *)0x0;
  var_36 = (char *)0x0;
LAB_0004e54e:
  var_9 = 1;
  var_81 = (type_2 *)0x0;
  var_103 = (type_16 *)0x0;
  var_127 = (type_15 *)0x0;
  var_17 = (type_4 *)0x0;
  var_117 = (type_4 *)0x0;
  goto LAB_0004e56a;
  while( true ) {
    var_5 = var_5 + -1;
    var_12 = *var_42 < *var_74;
    bVar33 = *var_42 == *var_74;
    var_42 = var_42 + (type_13)var_111 * -2 + 1;
    var_74 = var_74 + (type_13)var_111 * -2 + 1;
    if (!bVar33) break;
code_r0x0004f105:
    if (var_5 == 0) break;
  }
  if ((!var_12 && !bVar33) == var_12) {
LAB_0004f5da:
    local_4ec = 0x1000;
  }
  else {
    local_4ec = 0x1001;
  }
LAB_0004f11f:
  if (var_75 == (type_8 *)0x0) {
    var_67 = "req_extensions";
    var_75 = (type_8 *)var_20((type_23 *)var_19,"req","req_extensions");
    if (var_75 != (type_8 *)0x0) goto LAB_0004f12b;
    var_22();
  }
  else {
LAB_0004f12b:
    var_31((type_21 *)&ctx,(type_15 *)0x0,(type_15 *)0x0,(type_16 *)0x0,(type_24 *)0x0,1);
    var_32((type_21 *)&ctx,(type_23 *)var_19);
    var_5 = var_33((type_23 *)var_19,(type_21 *)&ctx,(char *)var_75,(type_15 *)0x0)
    ;
    if (var_5 == 0) {
      var_67 = "Error Loading request extension section %s\n";
      var_39 = var_75;
LAB_0004fba6:
      var_10((type_4 *)bio_err,var_67,var_39);
      goto LAB_0004e54e;
    }
  }
  if (var_76 == (char *)0x0) {
LAB_0004f1d1:
    if ((var_77 == (type_2 *)0x0) && (var_78 != false)) {
      var_79(var_19,"req");
      var_5 = var_80((type_23 *)var_19,"req","default_bits",&var_83);
      if (var_5 == 0) {
        var_83 = 0x800;
        if (var_81 == (type_2 *)0x0) {
LAB_000500d7:
          var_81 = (type_2 *)
                      var_82((char *)0x0,&var_84,&var_83,&keyalgstr,var_47);
          if (var_81 == (type_2 *)0x0) {
            var_103 = (type_16 *)0x0;
            var_127 = (type_15 *)0x0;
            var_17 = (type_4 *)0x0;
            var_117 = (type_4 *)0x0;
            var_9 = 1;
            goto LAB_0004e56a;
          }
          goto LAB_0004f2bc;
        }
LAB_0004f245:
        var_81 = (type_2 *)
                    var_82((char *)var_81,&var_84,&var_83,&keyalgstr,var_47);
        if (var_81 != (type_2 *)0x0) goto LAB_0004f275;
        var_103 = (type_16 *)0x0;
LAB_000501da:
        var_127 = (type_15 *)0x0;
        var_17 = (type_4 *)0x0;
        var_117 = (type_4 *)0x0;
        var_9 = 1;
      }
      else {
        if (var_81 != (type_2 *)0x0) goto LAB_0004f245;
LAB_0004f275:
        if (var_83 < 0x200) {
          if ((var_84 != 0x74) && (var_84 != 6)) goto LAB_0004f2b0;
          var_10((type_4 *)bio_err,"private key length is too short,\n");
          var_10((type_4 *)bio_err,"it needs to be at least %d bits, not %ld\n",0x200,var_83);
        }
        else {
          if ((0x4000 < var_83) && (var_84 == 6)) {
            var_67 = (char *)0x4000;
            var_10((type_4 *)bio_err,
                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"
                       ,0x4000,var_83);
          }
          if ((var_84 == 0x74) && (10000 < var_83)) {
            var_67 = (char *)0x2710;
            var_10((type_4 *)bio_err,
                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"
                       ,10000,var_83);
          }
LAB_0004f2b0:
          if (var_81 == (type_2 *)0x0) goto LAB_000500d7;
LAB_0004f2bc:
          var_5 = 0;
          if (var_52 != 0) {
            for (; var_86 = var_85(var_52), var_5 < var_86; var_5 = var_5 + 1) {
              var_21 = (char *)var_87(var_52,var_5);
              var_86 = var_88((type_26 *)var_81,var_21);
              if (var_86 < 1) {
                var_10((type_4 *)bio_err,"parameter error \"%s\"\n",var_21);
                var_89((type_4 *)bio_err);
                goto LAB_0004ff7c;
              }
            }
          }
          if (var_84 == 0x198) {
            var_10((type_4 *)bio_err,"Generating an EC private key\n",var_67);
          }
          else {
            var_10((type_4 *)bio_err,"Generating a %s private key\n",keyalgstr);
          }
          var_90((type_26 *)var_81,genpkey_cb);
          var_91((type_26 *)var_81,bio_err);
          var_5 = var_92((type_26 *)var_81,(type_2 **)&var_77);
          if (0 < var_5) {
            var_93((type_26 *)var_81);
            if (var_94 == (char *)0x0) {
              var_67 = "default_keyfile";
              var_94 = var_20((type_23 *)var_19,"req","default_keyfile");
              if (var_94 != (char *)0x0) goto LAB_0004f392;
              var_22();
              var_21 = "writing new private key to stdout\n";
            }
            else {
LAB_0004f392:
              var_21 = "writing new private key to \'%s\'\n";
              var_67 = var_94;
            }
            var_10((type_4 *)bio_err,var_21,var_67);
            var_17 = (type_4 *)var_95(var_94,var_167,(type_13)(var_96 == (type_2 *)0x0))
            ;
            if (var_17 == (type_4 *)0x0) {
              var_103 = (type_16 *)0x0;
              var_127 = (type_15 *)0x0;
              var_81 = (type_2 *)0x0;
              var_117 = (type_4 *)0x0;
              var_9 = 1;
              goto LAB_0004e56a;
            }
            var_42 = (type_9 *)var_20((type_23 *)var_19,"req","encrypt_rsa_key");
            var_78 = var_42 == (type_9 *)0x0;
            if (var_78) {
              var_22();
              var_42 = (type_9 *)var_20((type_23 *)var_19,"req","encrypt_key");
              var_78 = var_42 == (type_9 *)0x0;
              if (!var_78) goto LAB_0004f40c;
              var_22();
              local_500 = pEVar10;
            }
            else {
LAB_0004f40c:
              var_97 = false;
              var_5 = 3;
              var_74 = &DAT_0007e9a6;
              do {
                if (var_5 == 0) break;
                var_5 = var_5 + -1;
                var_97 = *var_42 < *var_74;
                var_78 = *var_42 == *var_74;
                var_42 = var_42 + (type_13)var_111 * -2 + 1;
                var_74 = var_74 + (type_13)var_111 * -2 + 1;
              } while (var_78);
              local_500 = (type_3 *)0x0;
              if ((!var_97 && !var_78) != var_97) {
                local_500 = pEVar10;
              }
            }
            pEVar10 = (type_3 *)0x0;
            if (!bVar3) {
              pEVar10 = local_500;
            }
            var_5 = 0;
            while (var_86 = var_98
                                      (var_17,(type_2 *)var_77,pEVar10,(type_27 *)0x0,0,
                                       (type_11 *)0x0,var_37), var_86 == 0) {
              var_100 = var_99();
              if (((var_100 & 0xfff) != 0x6d) || (var_5 == 3)) {
                var_9 = 1;
                var_103 = (type_16 *)0x0;
                var_127 = (type_15 *)0x0;
                var_81 = (type_2 *)0x0;
                var_117 = (type_4 *)0x0;
                goto LAB_0004e56a;
              }
              var_22();
              var_5 = var_5 + 1;
            }
            var_26(var_17);
            var_10((type_4 *)bio_err,"-----\n");
            goto LAB_0004f6c0;
          }
          var_101((type_4 *)bio_err,"Error Generating Key\n");
        }
LAB_0004ff7c:
        var_9 = 1;
        var_103 = (type_16 *)0x0;
        var_127 = (type_15 *)0x0;
        var_17 = (type_4 *)0x0;
        var_117 = (type_4 *)0x0;
      }
    }
    else {
      if (var_97) {
LAB_0004f6c0:
        if (var_77 == (type_2 *)0x0) {
          var_103 = (type_16 *)0x0;
          var_117 = (type_4 *)0x0;
LAB_000505b7:
          var_127 = (type_15 *)0x0;
          var_10((type_4 *)bio_err,"you need to specify a private key\n");
          var_9 = 1;
          var_81 = (type_2 *)0x0;
          var_17 = (type_4 *)0x0;
          goto LAB_0004e56a;
        }
        var_103 = var_102();
        var_96 = var_77;
        if (var_103 == (type_16 *)0x0) {
          var_81 = (type_2 *)0x0;
          goto LAB_000501da;
        }
        var_67 = var_20((type_23 *)var_19,"req","prompt");
        if (var_67 == (char *)0x0) {
          var_22();
          var_78 = false;
        }
        else {
          var_5 = var_104(var_67,"no");
          var_78 = var_5 == 0;
        }
        var_67 = var_20((type_23 *)var_19,"req","distinguished_name");
        if ((type_8 *)var_67 == (type_8 *)0x0) {
          var_21 = "unable to find \'%s\' in config\n";
          var_67 = "distinguished_name";
          var_39 = extraout_ECX;
LAB_0005074a:
          ppBVar27 = (type_4 **)var_10((type_4 *)bio_err,var_21,var_67,var_39);
          goto LAB_0004f815;
        }
        var_39 = var_105((type_23 *)var_19,var_67);
        if (var_39 == (type_8 *)0x0) {
          var_21 = "unable to get \'%s\' section\n";
          var_39 = extraout_EDX;
          goto LAB_0005074a;
        }
        var_106 = (type_8 *)var_20((type_23 *)var_19,"req","attributes");
        if (var_106 == (type_8 *)0x0) {
          var_107 = var_106;
          var_22();
          var_117 = (type_4 *)0x0;
        }
        else {
          var_107 = var_105((type_23 *)var_19,(char *)var_106);
          var_117 = (type_4 *)var_107;
          if (var_107 == (type_8 *)0x0) {
            var_21 = "unable to get \'%s\' section\n";
            var_39 = (type_8 *)0x0;
            var_67 = (char *)var_106;
            goto LAB_0005074a;
          }
        }
        uVar37 = 0;
        psVar38 = var_107;
        var_5 = var_108(var_103,0);
        if (var_5 == 0) {
LAB_0004f80b:
          ppBVar27 = &bio_err;
          goto LAB_0004f815;
        }
        if (var_109 == (char *)0x0) {
          if (var_78) {
            pXVar24 = (type_12 *)var_110(var_103,uVar37,var_107,psVar38);
            for (var_5 = 0; var_86 = var_85(var_39), var_5 < var_86; var_5 = var_5 + 1)
            {
              var_86 = var_87(var_39,var_5);
              var_42 = *(type_9 **)(var_86 + 4);
              var_111 = *var_42;
              var_74 = var_42;
              if (var_111 == 0) {
                var_121 = 0;
              }
              else {
                do {
                  if (((var_111 & 0xfd) == 0x2c) || (var_111 == 0x3a)) {
                    if (*(type_9 *)((int)var_74 + 1) != 0) {
                      var_42 = (type_9 *)((int)var_74 + 1);
                    }
                    break;
                  }
                  var_74 = (type_9 *)((int)var_74 + 1);
                  var_111 = *var_74;
                } while (var_111 != 0);
                var_121 = 0;
                if (*var_42 == 0x2b) {
                  var_42 = var_42 + 1;
                  var_121 = -1;
                }
              }
              var_86 = var_112
                                 (pXVar24,(char *)var_42,local_4ec,*(type_27 **)(var_86 + 8),-1,-1,
                                  var_121);
              if (var_86 == 0) goto LAB_0004f80b;
            }
            var_39 = (type_8 *)var_113(pXVar24);
            if (var_39 != (type_8 *)0x0) {
              if (var_7 == 0) {
                for (var_5 = 0; var_86 = var_85(var_117), var_67 = (char *)var_117,
                    var_5 < var_86; var_5 = var_5 + 1) {
                  var_86 = var_87(var_117,var_5,var_86,var_86);
                  var_86 = var_114
                                     (var_103,*(char **)(var_86 + 4),local_4ec,*(type_27 **)(var_86 + 8),
                                      -1);
                  if (var_86 == 0) goto LAB_0004f80b;
                }
LAB_00050951:
                var_5 = var_115(var_103,(type_2 *)var_96);
                if (var_5 != 0) goto LAB_0004fbe2;
              }
              else {
LAB_00051084:
                var_5 = var_115(var_103,(type_2 *)var_96);
                if (var_5 != 0) {
                  var_117 = (type_4 *)0x0;
                  goto LAB_0004f99b;
                }
              }
              goto LAB_0004f80b;
            }
LAB_000510a8:
            var_21 = "error, no objects specified in config file\n";
            var_67 = (char *)var_39;
          }
          else {
            pXVar24 = (type_12 *)var_110(var_103,uVar37,var_107,psVar38);
            if (var_116 == 0) {
              var_10((type_4 *)bio_err,
                         "You are about to be asked to enter information that will be incorporated\n"
                         ,pXVar24,pXVar24);
              var_10((type_4 *)bio_err,"into your certificate request.\n");
              var_10((type_4 *)bio_err,
                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"
                        );
              var_10((type_4 *)bio_err,
                         "There are quite a few fields but you can leave some blank\n");
              var_10((type_4 *)bio_err,"For some fields there will be a default value,\n");
              var_10((type_4 *)bio_err,"If you enter \'.\', the field will be left blank.\n");
              var_10((type_4 *)bio_err,"-----\n");
            }
            var_5 = var_85(var_39);
            var_11 = (char *)0xffffffff;
            if (var_5 != 0) {
LAB_000509ca:
              do {
                do {
                  do {
                    var_11 = (char *)((int)var_11 + 1);
                    var_5 = var_85(var_39);
                    if (var_5 <= (int)var_11) {
                      var_39 = (type_8 *)var_113(pXVar24);
                      if (var_39 == (type_8 *)0x0) goto LAB_000510a8;
                      if (var_7 != 0) goto LAB_00051084;
                      if (var_117 == (type_4 *)0x0) goto LAB_00050951;
                      uVar36 = var_85(var_117);
                      uVar37 = (type_14)((type_28)uVar36 >> 0x20);
                      if ((0 < (int)uVar36) && (var_116 == 0)) {
                        var_10((type_4 *)bio_err,
                                   "\nPlease enter the following \'extra\' attributes\n",uVar37,
                                   uVar37);
                        var_10((type_4 *)bio_err,"to be sent with your certificate request\n");
                      }
                      var_41 = -1;
                      var_67 = buf;
                      goto LAB_00050afd;
                    }
                    var_5 = var_87(var_39,var_11);
                    var_42 = *(type_9 **)(var_5 + 4);
                    var_86 = var_118((char *)var_42,"_min");
                  } while ((((var_86 == 0) ||
                            (var_86 = var_118((char *)var_42,"_max"), var_86 == 0)) ||
                           (var_86 = var_118((char *)var_42,"_default"), var_86 == 0)) ||
                          (var_86 = var_118((char *)var_42,"_value"), var_86 == 0));
                  var_111 = *var_42;
                  var_74 = var_42;
                  if (var_111 == 0) {
                    var_76 = (char *)0x0;
                  }
                  else {
                    do {
                      if (((var_111 & 0xfd) == 0x2c) || (var_111 == 0x3a)) {
                        if (*(type_9 *)((int)var_74 + 1) != 0) {
                          var_42 = (type_9 *)((int)var_74 + 1);
                        }
                        break;
                      }
                      var_74 = (type_9 *)((int)var_74 + 1);
                      var_111 = *var_74;
                    } while (var_111 != 0);
                    var_76 = (char *)0x0;
                    if (*var_42 == 0x2b) {
                      var_76 = (char *)0xffffffff;
                      var_42 = var_42 + 1;
                    }
                  }
                  var_86 = var_119((char *)var_42);
                } while (var_86 == 0);
                var_121 = var_120(buf,100,*(char **)(var_5 + 4),"_default","Name");
                if (var_121 == 0) break;
                var_21 = var_20((type_23 *)var_19,var_67,buf);
                if (var_21 == (char *)0x0) {
                  var_22();
                  var_21 = "";
                }
                var_121 = var_120(buf,100,*(char **)(var_5 + 4),"_value","Name");
                if (var_121 == 0) break;
                var_70 = var_20((type_23 *)var_19,var_67,buf);
                if (var_70 == (char *)0x0) {
                  var_22();
                }
                var_121 = var_120(buf,100,*(char **)(var_5 + 4),"_min","Name");
                if (var_121 == 0) break;
                var_121 = var_80((type_23 *)var_19,var_67,buf,&n_min);
                if (var_121 == 0) {
                  var_22();
                  n_min = -1;
                }
                var_121 = var_120(buf,100,*(char **)(var_5 + 4),"_max","Name");
                if (var_121 == 0) break;
                var_107 = (type_8 *)var_67;
                var_121 = var_80((type_23 *)var_19,var_67,buf,&ctx.flags);
                if (var_121 == 0) {
                  var_22();
                  ctx.flags = -1;
                }
                var_123 = var_122(*(char **)(var_5 + 8),var_21,var_70,n_min,ctx.flags,buf_1,
                                    0x87c96,"DN default",(char *)var_107);
                if (var_123 < 2) {
                  if (var_123 == 0) break;
                  goto LAB_000509ca;
                }
                var_5 = var_124
                                   (pXVar24,var_86,local_4ec,(type_27 *)buf_1,-1,-1,(int)var_76);
              } while (var_5 != 0);
              ppBVar27 = &bio_err;
              goto LAB_0004f815;
            }
            var_21 = "No template, please set one up.\n";
            var_39 = (type_8 *)0x0;
            var_67 = (char *)(type_8 *)0x0;
          }
          goto LAB_0005074a;
        }
        var_5 = var_125((type_16 *)var_103,var_109,local_4ec,local_57c);
        if ((var_5 == 0) || (var_5 = var_115(var_103,(type_2 *)var_96), var_5 == 0))
        goto LAB_0004f80b;
        if (var_7 != 0) {
          var_117 = (type_4 *)0x0;
          var_109 = (char *)0x0;
LAB_0004f99b:
          var_127 = var_126();
          if ((var_127 != (type_15 *)0x0) &&
             (((var_30 == (char **)0x0 && (var_34 == (type_23 *)0x0)) ||
              (var_5 = var_128(var_127,2), var_5 != 0)))) {
            if (var_57 == (type_6 *)0x0) {
              var_53 = var_129(var_127);
              var_5 = var_130((type_29 *)0x0,(type_6 *)var_53);
            }
            else {
              var_5 = var_131(var_127,var_57);
            }
            if (var_5 != 0) {
              pXVar24 = (type_12 *)var_110(var_103);
              var_5 = var_132(var_127,pXVar24);
              if (var_5 != 0) {
                var_5 = 0x1e;
                if (var_8 != 0) {
                  var_5 = var_8;
                }
                var_5 = var_133((type_15 *)var_127,(char *)0x0,(char *)0x0,var_5);
                if (var_5 != 0) {
                  pXVar24 = (type_12 *)var_110(var_103);
                  var_5 = var_134(var_127,pXVar24);
                  if (((var_5 != 0) &&
                      (var_136 = (type_2 *)var_135(var_103), var_136 != (type_2 *)0x0)
                      ) && (var_5 = var_137(var_127,var_136), var_5 != 0)) {
                    var_31((type_21 *)&ctx,var_127,var_127,(type_16 *)0x0,(type_24 *)0x0,0);
                    var_32((type_21 *)&ctx,(type_23 *)var_19);
                    if ((var_30 == (char **)0x0) ||
                       (var_5 = var_33
                                           ((type_23 *)var_19,(type_21 *)&ctx,(char *)var_30,var_127)
                       , var_5 != 0)) {
                      if ((var_34 == (type_23 *)0x0) ||
                         (var_5 = var_33
                                             ((type_23 *)var_34,(type_21 *)&ctx,"default",var_127),
                         var_5 != 0)) {
                        if (bVar4) {
                          var_5 = var_138(var_127,0x3b8,(void *)0x0,1,0);
                          var_30 = (char **)(var_5 + -1);
                          if (var_30 != (char **)0x0) {
                            var_67 = "Error adding poison extension\n";
                            ppcVar11 = var_30;
                            goto LAB_00050666;
                          }
                        }
                        var_5 = var_139((type_15 *)var_127,var_77,local_510,var_49);
                        if (var_5 == 0) {
                          var_89((type_4 *)bio_err);
                          goto LAB_0004fb6e;
                        }
                        var_78 = var_109 != (char *)0x0;
                        if ((var_7 == 0) || (!var_78)) goto LAB_0004fed2;
                        var_67 = "Cannot modify certificate subject\n";
                        goto LAB_0004fb64;
                      }
                      var_67 = "Error Loading command line extensions\n";
                      var_30 = (char **)0x0;
                      ppcVar11 = (char **)0x0;
                    }
                    else {
                      var_67 = "Error Loading extension section %s\n";
                      ppcVar11 = (char **)0x0;
                    }
LAB_00050666:
                    var_10((type_4 *)bio_err,var_67,var_30,ppcVar11);
                  }
                }
              }
            }
          }
          goto LAB_0004fb6e;
        }
LAB_0004fbe2:
        var_31((type_21 *)&ctx,(type_15 *)0x0,(type_15 *)0x0,var_103,(type_24 *)0x0,0);
        var_32((type_21 *)&ctx,(type_23 *)var_19);
        if ((var_75 == (type_8 *)0x0) ||
           (var_5 = var_140
                               ((type_23 *)var_19,(type_21 *)&ctx,(char *)var_75,var_103),
           var_5 != 0)) {
          if ((var_34 != (type_23 *)0x0) &&
             (var_5 = var_140
                                 ((type_23 *)var_34,(type_21 *)&ctx,"default",var_103),
             var_5 == 0)) {
            var_21 = "Error Loading command line extensions\n";
            var_75 = (type_8 *)var_67;
            goto LAB_0005068b;
          }
          var_127 = (type_15 *)0x0;
          var_5 = var_141((type_16 *)var_103,var_77,local_510,var_49);
          var_117 = (type_4 *)0x0;
          if (var_5 != 0) goto LAB_0004fc7f;
          var_89((type_4 *)bio_err);
        }
        else {
          var_21 = "Error Loading extension section %s\n";
          var_67 = (char *)0x0;
LAB_0005068b:
          var_10((type_4 *)bio_err,var_21,var_75,var_67);
        }
        goto LAB_0004f82c;
      }
      var_117 = (type_4 *)var_142(var_11,'r',var_143);
      if (var_117 == (type_4 *)0x0) goto LAB_0004f60c;
      if (var_143 == 4) {
        var_103 = var_144(var_117,(type_16 **)0x0);
      }
      else {
        var_103 = var_145(var_117,(type_16 **)0x0,(type_11 *)0x0,(void *)0x0);
      }
      if (var_103 == (type_16 *)0x0) {
        var_127 = (type_15 *)0x0;
        var_10((type_4 *)bio_err,"unable to load X509 request\n",0,0);
        var_81 = (type_2 *)0x0;
        var_17 = (type_4 *)0x0;
        var_9 = 1;
        goto LAB_0004e56a;
      }
      if (var_7 != 0) {
        if (var_77 == (type_2 *)0x0) goto LAB_000505b7;
        goto LAB_0004f99b;
      }
      var_78 = var_109 != (char *)0x0;
      var_127 = (type_15 *)0x0;
LAB_0004fed2:
      if ((var_78 & (type_9)var_9) != 0) {
        if (bVar2) {
          var_10((type_4 *)bio_err,"Modifying Request\'s Subject\n");
          var_100 = var_146();
          pXVar26 = (type_12 *)var_110(var_103);
          var_147(bio_err,"old subject=",pXVar26,var_100);
          var_5 = var_125((type_16 *)var_103,var_109,local_4ec,local_57c);
          if (var_5 == 0) goto LAB_0004ff17;
          var_100 = var_146();
          pXVar26 = (type_12 *)var_110(var_103);
          var_147(bio_err,"new subject=",pXVar26,var_100);
        }
        else {
          var_5 = var_125((type_16 *)var_103,var_109,local_4ec,local_57c);
          if (var_5 == 0) {
LAB_0004ff17:
            var_67 = "ERROR: cannot modify subject\n";
LAB_0004fb64:
            var_10((type_4 *)bio_err,var_67);
LAB_0004fb6e:
            var_9 = 1;
            var_81 = (type_2 *)0x0;
            var_17 = (type_4 *)0x0;
            goto LAB_0004e56a;
          }
        }
      }
LAB_0004fc7f:
      var_9 = var_148 & var_9;
      if (var_9 != 0) {
        var_17 = (type_4 *)var_77;
        if ((var_77 == (type_2 *)0x0) &&
           (var_17 = (type_4 *)var_135(var_103), var_17 == (type_4 *)0x0)) {
          var_81 = (type_2 *)0x0;
          var_17 = (type_4 *)0x0;
        }
        else {
          var_5 = var_149(var_103,(type_2 *)var_17);
          if (-1 < var_5) {
            if (var_5 == 0) {
              var_10((type_4 *)bio_err,"verify failure\n");
              var_89((type_4 *)bio_err);
            }
            else {
              var_10((type_4 *)bio_err,"verify OK\n");
            }
            goto LAB_0004fce0;
          }
          var_81 = (type_2 *)0x0;
          var_17 = (type_4 *)0x0;
        }
        goto LAB_0004e56a;
      }
LAB_0004fce0:
      var_5 = var_167;
      if (((var_150 & (var_151 ^ 1)) != 0) &&
         ((var_152 == 0 && var_153 == 0) && var_154 == 0)) {
        var_9 = 0;
        var_81 = (type_2 *)0x0;
        var_17 = (type_4 *)0x0;
        goto LAB_0004e57b;
      }
      if ((var_94 == (char *)0x0) || (var_155 == (char *)0x0)) {
        var_63 = 'w';
      }
      else {
        var_86 = var_104(var_94,var_155);
        var_63 = (-(var_86 == 0) & 0xeaU) + 0x77;
      }
      var_17 = (type_4 *)var_142(var_155,var_63,var_5);
      if (var_17 == (type_4 *)0x0) {
        var_81 = (type_2 *)0x0;
        var_9 = 1;
        goto LAB_0004e56a;
      }
      if (var_153 != 0) {
        var_136 = (type_2 *)var_135(var_103);
        if (var_136 == (type_2 *)0x0) {
          var_10((type_4 *)bio_err,"Error getting public key\n",0,0);
          var_89((type_4 *)bio_err);
          var_9 = var_153;
          var_81 = (type_2 *)0x0;
          goto LAB_0004e56a;
        }
        var_156(var_17,var_136);
      }
      var_100 = reqflag;
      var_9 = 0;
      if (var_151 == 0) {
        if (var_152 == 0) {
          var_166 = 1;
          if (var_154 == 0) goto LAB_0004fe2d;
          var_166 = var_154;
          if (var_7 == 0) goto LAB_00050366;
          var_166 = var_7;
LAB_0004fdbe:
          var_81 = (type_2 *)var_157(var_127);
LAB_0004fdce:
          puVar6 = PTR_stdout_000bdfa8;
          if (var_81 == (type_2 *)0x0) {
            var_158("Modulus=unavailable\n",1,0x14,*(type_30 **)PTR_stdout_000bdfa8);
            var_9 = var_166;
            goto LAB_0004e56a;
          }
          var_158("Modulus=",1,8,*(type_30 **)PTR_stdout_000bdfa8);
          var_5 = var_159(var_81);
          if (var_5 == 6) {
            uVar37 = var_160(var_81);
            var_161(uVar37,&ctx,0,0);
            var_162(var_17,(type_29 *)ctx.flags);
          }
          else {
            var_158("Wrong Algorithm type",1,0x14,*(type_30 **)puVar6);
          }
          var_163(10,*(type_30 **)puVar6);
          goto LAB_0004fe2d;
        }
        var_166 = var_152;
        if (var_7 != 0) {
          var_166 = var_7;
LAB_0004ffc7:
          var_100 = var_146();
          pXVar24 = var_164(var_127);
          var_147((type_4 *)var_17,"subject=",(type_12 *)pXVar24,var_100);
          if (var_154 == 0) goto LAB_0004fff8;
          goto LAB_0004fdbe;
        }
LAB_000502e6:
        var_100 = var_146();
        pXVar26 = (type_12 *)var_110(var_103);
        var_147((type_4 *)var_17,"subject=",pXVar26,var_100);
        if (var_154 != 0) {
LAB_00050366:
          var_81 = (type_2 *)var_135(var_103);
          goto LAB_0004fdce;
        }
        if (var_150 == 0) goto LAB_0004fe3b;
LAB_0005031e:
        var_9 = 0;
        var_81 = (type_2 *)0x0;
        goto LAB_0004e57b;
      }
      if (var_7 == 0) {
        uVar23 = var_146();
        var_166 = var_165(var_17,var_103,uVar23,var_100);
        if (var_166 == 0) {
          var_67 = "Error printing certificate request\n";
          goto LAB_00050628;
        }
        if (var_152 != 0) goto LAB_000502e6;
        if (var_154 != 0) goto LAB_00050366;
LAB_0004fe2d:
        if (var_7 != 0 || var_150 != 0) goto LAB_0004fff8;
LAB_0004fe3b:
        if (var_167 == 4) {
          var_5 = var_168(var_17,var_103);
          uVar37 = extraout_EDX_02;
        }
        else if (bVar5) {
          var_5 = var_169(var_17,var_103);
          uVar37 = extraout_EDX_00;
        }
        else {
          var_5 = var_170(var_17,var_103);
          uVar37 = extraout_EDX_01;
        }
        var_81 = (type_2 *)0x0;
        if (var_5 != 0) goto LAB_0004e57b;
        var_67 = "unable to write X509 request\n";
      }
      else {
        uVar23 = var_146();
        var_166 = var_171(var_17,var_127,uVar23,var_100);
        if (var_166 == 0) {
          var_67 = "Error printing certificate\n";
LAB_00050628:
          var_10((type_4 *)bio_err,var_67,0,0);
          var_89((type_4 *)bio_err);
          var_81 = (type_2 *)0x0;
          goto LAB_0004e57b;
        }
        if (var_152 != 0) goto LAB_0004ffc7;
        if (var_154 != 0) goto LAB_0004fdbe;
LAB_0004fff8:
        if ((var_7 & (var_150 ^ 1)) == 0) goto LAB_0005031e;
        var_81 = (type_2 *)0x0;
        if (var_127 == (type_15 *)0x0) goto LAB_0004e57b;
        if (var_167 == 4) {
          var_5 = var_172(var_17,var_127);
        }
        else {
          var_5 = var_173(var_17,var_127);
        }
        var_81 = (type_2 *)0x0;
        if (var_5 != 0) goto LAB_0004e57b;
        var_67 = "unable to write X509 certificate\n";
        uVar37 = 0;
      }
      var_81 = (type_2 *)0x0;
      var_10((type_4 *)bio_err,var_67,uVar37,uVar37);
      var_9 = var_166;
    }
  }
  else {
    var_117 = (type_4 *)var_174(var_76,keyform,0,var_35,local_540,"Private Key");
    var_77 = (type_2 *)var_117;
    if (var_117 != (type_4 *)0x0) {
      var_79(var_19,"req");
      goto LAB_0004f1d1;
    }
LAB_0004f60c:
    var_103 = (type_16 *)0x0;
    var_127 = (type_15 *)0x0;
    var_81 = (type_2 *)0x0;
    var_17 = (type_4 *)0x0;
    var_9 = 1;
  }
  goto LAB_0004e56a;
  while (var_5 = var_175(var_103,var_86,local_4ec,(type_27 *)buf_1,-1), var_5 != 0) {
LAB_00050afd:
    do {
      var_41 = var_41 + 1;
      var_5 = var_85(var_117);
      if (var_5 <= var_41) goto LAB_00050951;
      var_5 = var_87(var_117,var_41,var_5,var_5);
      var_21 = *(char **)(var_5 + 4);
      var_86 = var_119(var_21);
    } while (var_86 == 0);
    var_121 = var_120(var_67,100,var_21,"_default","Name");
    if (var_121 == 0) {
LAB_00050d30:
      ppBVar27 = &bio_err;
      goto LAB_0004f815;
    }
    var_70 = var_20((type_23 *)var_19,(char *)var_106,var_67);
    if (var_70 == (char *)0x0) {
      var_22();
      var_70 = "";
    }
    var_121 = var_120(var_67,100,var_21,"_value","Name");
    if (var_121 == 0) goto LAB_00050d30;
    var_176 = var_20((type_23 *)var_19,(char *)var_106,var_67);
    if (var_176 == (char *)0x0) {
      var_22();
    }
    var_121 = var_120(var_67,100,var_21,"_min","Name");
    if (var_121 == 0) goto LAB_00050d30;
    var_121 = var_80((type_23 *)var_19,(char *)var_106,var_67,&n_min);
    if (var_121 == 0) {
      var_22();
      n_min = -1;
    }
    var_121 = var_120(var_67,100,var_21,"_max","Name");
    if (var_121 == 0) goto LAB_00050d30;
    var_39 = var_106;
    var_121 = var_80((type_23 *)var_19,(char *)var_106,var_67,&ctx.flags);
    if (var_121 == 0) {
      var_22();
      ctx.flags = -1;
    }
    var_123 = var_122(*(char **)(var_5 + 8),var_70,var_176,n_min,ctx.flags,buf_1,0x87cb1,
                        "Attribute default",(char *)var_39);
    if (var_123 < 2) {
      if (var_123 == 0) goto LAB_00050d30;
      goto LAB_00050afd;
    }
  }
  ppBVar27 = (type_4 **)var_10((type_4 *)bio_err,"Error adding attribute\n",0,0);
  var_89((type_4 *)bio_err);
LAB_0004f815:
  var_10((type_4 *)bio_err,"problems making Certificate Request\n",ppBVar27,ppBVar27);
LAB_0004f82c:
  var_9 = 1;
  var_127 = (type_15 *)0x0;
  var_81 = (type_2 *)0x0;
  var_17 = (type_4 *)0x0;
  var_117 = (type_4 *)0x0;
LAB_0004e56a:
  var_89((type_4 *)bio_err);
LAB_0004e57b:
  var_177((type_23 *)var_19);
  var_177((type_23 *)var_34);
  var_26(var_15);
  var_26(var_117);
  var_178(var_17);
  var_179((type_2 *)var_77);
  var_93((type_26 *)var_81);
  var_180(var_52);
  var_180(var_49);
  var_181(var_59,exts_cleanup);
  var_182(var_59);
  var_183((type_19 *)var_47);
  var_71(keyalgstr);
  var_184(var_103);
  var_185(var_127);
  var_186(var_57);
  var_187(local_540);
  if (var_35 != var_36) {
    var_71(var_35);
  }
  if (var_37 != var_38) {
    var_71(var_37);
  }
  if (var_188 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_189();
  }
  return var_9;
}


(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))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (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: (type_identifier) declarator: (pointer_declarator 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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (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: (false))) (expression_statement (assignment_expression left: (identifier) right: (false))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (false))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (true))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (string_literal (string_content)))))) (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (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 (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)))))) (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (string_literal (string_content)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))))) (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 (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_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: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (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: (call_expression function: (identifier) arguments: (argument_list))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))) (goto_statement label: (statement_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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_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: (identifier) arguments: (argument_list)))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier))))))) alternative: (else_clause (compound_statement (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: (call_expression function: (identifier) arguments: (argument_list)))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))))))))) alternative: (else_clause (compound_statement (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: (call_expression function: (identifier) arguments: (argument_list))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))))) alternative: (else_clause (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))))) alternative: (else_clause (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: (call_expression function: (identifier) arguments: (argument_list)))))) alternative: (else_clause (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: (call_expression function: (identifier) arguments: (argument_list))))))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))))))) (goto_statement label: (statement_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: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_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: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_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: (call_expression function: (identifier) arguments: (argument_list)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (true))))))) (goto_statement label: (statement_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: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (number_literal))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_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: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (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 (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))))))))))) (goto_statement label: (statement_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: (identifier) arguments: (argument_list)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_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: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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: (call_expression function: (identifier) arguments: (argument_list)))) (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: (number_literal))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) 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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (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: (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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (while_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (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 declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)) (while_statement condition: (parenthesized_expression (true)) 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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))))) (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: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (goto_statement label: (statement_identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (false))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (number_literal) (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) 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 (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (number_literal) (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (for_statement condition: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (identifier))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (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: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)))))) (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))) (expression_statement (assignment_expression left: (identifier) right: (false)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (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 (identifier) (string_literal (string_content)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) 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) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (identifier))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (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: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (identifier) right: (identifier)))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (do_statement body: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))))) (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: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (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: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (string_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (string_literal (string_content)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (string_literal (string_content)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)) (identifier) (string_literal (string_content)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal) (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal))))))))) 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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (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: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (string_literal (string_content)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (unary_expression argument: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))))))))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (string_literal (string_content)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))))))))) (labeled_statement label: (statement_identifier) (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_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: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (labeled_statement label: (statement_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_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: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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: (string_literal (string_content) (escape_sequence))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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: (string_literal (string_content) (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (labeled_statement label: (statement_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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (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 (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (identifier) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (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 (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (string_literal (string_content)) (identifier) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) 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 (pointer_expression argument: (identifier)) (string_literal (string_content)) (identifier) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier) (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier)) (identifier) (string_literal (string_content)) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence)) (identifier) (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (labeled_statement label: (statement_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: (identifier) arguments: (argument_list (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: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

uint MASKED(undefined4 param_1,undefined4 *param_2)

{
  char cVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  undefined *puVar6;
  bool bVar7;
  EVP_CIPHER *pEVar8;
  char **ppcVar9;
  int iVar10;
  char *pcVar11;
  char *pcVar12;
  BIO *in;
  ushort **ppuVar13;
  char *ptr;
  BIO *pBVar14;
  ASN1_INTEGER *pAVar15;
  BIO_METHOD *type;
  stack_st_CONF_VALUE *psVar16;
  byte *pbVar17;
  int iVar18;
  ulong uVar19;
  undefined **ppuVar20;
  stack_st_CONF_VALUE *section;
  stack_st_CONF_VALUE *psVar21;
  ulong uVar22;
  X509_NAME *pXVar23;
  EVP_PKEY *pEVar24;
  undefined4 uVar25;
  undefined4 *puVar26;
  uint uVar27;
  stack_st_CONF_VALUE *extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_ECX_01;
  stack_st_CONF_VALUE *extraout_EDX;
  undefined4 extraout_EDX_00;
  undefined4 extraout_EDX_01;
  undefined4 extraout_EDX_02;
  byte *pbVar28;
  int set;
  X509 *x;
  X509_REQ *x_00;
  int in_GS_OFFSET;
  bool bVar29;
  bool bVar30;
  bool bVar31;
  byte bVar32;
  undefined8 uVar33;
  char *pcVar34;
  undefined4 uVar35;
  stack_st_CONF_VALUE *psVar36;
  uint local_598;
  uint local_594;
  int local_588;
  uint local_584;
  uint local_580;
  undefined4 local_57c;
  uint local_578;
  EVP_PKEY *local_570;
  uint local_56c;
  uint local_564;
  BIO *local_560;
  int local_55c;
  int local_558;
  ASN1_INTEGER *local_554;
  BIO *local_550;
  int local_54c;
  BIO *local_548;
  ENGINE *local_544;
  undefined4 local_540;
  uint local_53c;
  char *local_538;
  char *local_534;
  int local_530;
  int local_52c;
  char **local_528;
  stack_st_CONF_VALUE *local_524;
  uint local_520;
  int local_51c;
  char *local_518;
  int local_514;
  int local_510;
  char *local_50c;
  EVP_CIPHER *local_500;
  int local_4ec;
  BIO *local_4d0;
  int local_4cc;
  void *local_4c8;
  char *local_4c4;
  char *local_4c0;
  int local_4bc;
  undefined *local_4b8;
  undefined *local_4b4;
  undefined *local_4b0;
  long local_4ac;
  ulong local_4a8;
  long local_4a4;
  X509V3_CTX local_4a0;
  stack_st_CONF_VALUE local_484 [5];
  uchar local_420 [1024];
  int local_20;
  undefined4 uStack_14;
  
  bVar32 = 0;
  bVar31 = false;
  uStack_14 = 0x4e220;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_4d0 = (BIO *)0x0;
  local_4cc = 0;
  local_560 = (BIO *)DAT_000c4598;
  local_4c8 = (void *)0x0;
  local_4c4 = (char *)0x0;
  local_4c0 = (char *)0x0;
  local_4bc = -1;
  local_4b8 = (undefined *)0x8005;
  local_4b4 = (undefined *)0x8005;
  local_4b0 = (undefined *)0x8005;
  local_4ac = -1;
  local_4a8 = 0;
  pEVar8 = EVP_des_ede3_cbc();
  ppuVar20 = &PTR_DAT_000bb480;
  ppcVar9 = (char **)FUN_00077e50(param_1,param_2,&PTR_DAT_000bb480);
  pcVar34 = "../apps/req.c";
  local_588 = 0x1001;
  bVar4 = false;
  local_56c = 0;
  local_584 = 0;
  bVar5 = false;
  bVar3 = false;
  local_594 = 0;
  local_580 = 0;
  local_578 = 0;
  local_57c = 0;
  local_520 = 0;
  bVar2 = false;
  local_530 = 0;
  local_53c = 0;
  local_570 = (EVP_PKEY *)0x0;
  local_518 = (char *)0x0;
  local_51c = 0;
  local_524 = (stack_st_CONF_VALUE *)0x0;
  local_548 = (BIO *)0x0;
  local_534 = (char *)0x0;
  local_514 = 0;
  local_50c = (char *)0x0;
  local_52c = 0;
  local_528 = (char **)0x0;
  local_550 = (BIO *)0x0;
  local_510 = 0;
  local_54c = 0;
  local_558 = 0;
  local_55c = 0;
  local_544 = (ENGINE *)0x0;
  local_540 = 0;
  local_554 = (ASN1_INTEGER *)0x0;
LAB_0004e430:
  iVar10 = FUN_00078780();
  if (iVar10 != 0) goto LAB_0004e43d;
LAB_0004e6f0:
  iVar10 = FUN_00079110();
  if (iVar10 != 0) goto LAB_0004e51a;
  local_564 = local_53c ^ 1;
  if ((local_530 != 0) && (local_564 != 0)) {
    BIO_printf(DAT_000c458c,"Ignoring -days; not generating a certificate\n");
  }
  pBVar14 = local_4d0;
  bVar7 = (bool)(local_52c == 0 & (byte)local_53c);
  bVar29 = bVar31;
  if (bVar7 != false) {
    bVar31 = bVar7;
    bVar29 = true;
  }
  pcVar11 = (char *)&local_4c4;
  iVar10 = FUN_00075b40(local_534,local_548,pcVar11,&local_4c0);
  if (iVar10 == 0) {
    pcVar12 = "Error getting passwords\n";
    goto LAB_0004e52c;
  }
  if (bVar2) {
    pcVar11 = (char *)local_560;
    BIO_printf(DAT_000c458c,"Using configuration from %s\n",local_560);
    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);
    if (local_550 != (BIO *)0x0) {
      BIO_printf(DAT_000c458c,"Using additional configuration from command line\n",pcVar11);
      goto LAB_0004e7d1;
    }
  }
  else {
    DAT_000c4a98 = (CONF *)FUN_00075fc0(local_560);
    if (local_550 != (BIO *)0x0) {
LAB_0004e7d1:
      DAT_000c4a94 = (CONF *)FUN_00073230(local_550,0);
    }
  }
  if (((BIO *)DAT_000c4598 != local_560) && (iVar10 = FUN_000770d0(DAT_000c4a98), iVar10 == 0))
  goto LAB_0004eb16;
  if (DAT_000c4a98 != (CONF *)0x0) {
    pcVar11 = "oid_file";
    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)0x0,"oid_file");
    if (pcVar12 == (char *)0x0) {
      ERR_clear_error();
    }
    else {
      in = BIO_new_file(pcVar12,"r");
      if (in != (BIO *)0x0) {
        OBJ_create_objects(in);
        BIO_free(in);
      }
    }
  }
  iVar10 = FUN_00073330(DAT_000c4a98);
  if (iVar10 != 0) {
    if (local_4cc == 0) {
      pcVar11 = "default_md";
      pcVar12 = NCONF_get_string(DAT_000c4a98,"req","default_md");
      if (pcVar12 == (char *)0x0) {
        ERR_clear_error();
      }
      else {
        iVar10 = FUN_000782e0(pcVar12,&local_4cc);
        if (iVar10 == 0) goto LAB_0004e51a;
        local_510 = local_4cc;
      }
    }
    if (local_528 == (char **)0x0) {
      pcVar11 = "x509_extensions";
      local_528 = (char **)NCONF_get_string(DAT_000c4a98,"req","x509_extensions");
      if (local_528 != (char **)0x0) goto LAB_0004e89e;
      ERR_clear_error();
    }
    else {
LAB_0004e89e:
      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
      X509V3_set_nconf(&local_4a0,DAT_000c4a98);
      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,(X509 *)0x0);
      if (iVar10 == 0) {
        pcVar12 = "Error Loading extension section %s\n";
        pcVar11 = (char *)local_528;
        goto LAB_0004e52c;
      }
    }
    if (DAT_000c4a94 != (CONF *)0x0) {
      X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
      X509V3_set_nconf(&local_4a0,DAT_000c4a94);
      iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",(X509 *)0x0);
      if (iVar10 == 0) {
        pcVar12 = "Error Loading command line extensions\n";
        goto LAB_0004e52c;
      }
    }
    local_538 = (char *)0x0;
    if ((local_4c4 == (char *)0x0) &&
       (local_538 = NCONF_get_string(DAT_000c4a98,"req","input_password"), local_4c4 = local_538,
       local_538 == (char *)0x0)) {
      ERR_clear_error();
    }
    local_534 = (char *)0x0;
    if ((local_4c0 == (char *)0x0) &&
       (local_534 = NCONF_get_string(DAT_000c4a98,"req","output_password"), local_4c0 = local_534,
       local_534 == (char *)0x0)) {
      ERR_clear_error();
    }
    pcVar11 = "string_mask";
    psVar16 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","string_mask");
    if (psVar16 == (stack_st_CONF_VALUE *)0x0) {
      ERR_clear_error();
    }
    else {
      iVar10 = ASN1_STRING_set_default_mask_asc((char *)psVar16);
      if (iVar10 == 0) {
        pcVar11 = "Invalid global string mask setting %s\n";
        goto LAB_0004fba6;
      }
    }
    if (local_588 == 0x1000) goto LAB_0004f5da;
    pcVar11 = "utf8";
    pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","utf8");
    bVar7 = false;
    bVar30 = pbVar17 == (byte *)0x0;
    if (bVar30) {
      ERR_clear_error();
      local_4ec = 0x1001;
      goto LAB_0004f11f;
    }
    iVar10 = 4;
    pbVar28 = &DAT_0007e7a8;
    goto code_r0x0004f105;
  }
  goto LAB_0004eb16;
LAB_0004e43d:
  while (iVar10 != 0x15) {
    if (iVar10 < 0x16) {
      if (iVar10 == 10) {
        uVar35 = FUN_00078b30();
        ppuVar20 = &local_4b0;
        pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,0x7be,ppuVar20);
      }
      else if (iVar10 < 0xb) {
        if (iVar10 == 4) {
          uVar35 = FUN_00078b30();
          local_540 = FUN_00074050(uVar35,0);
          goto LAB_0004e430;
        }
        if (4 < iVar10) {
          if (iVar10 == 7) {
            local_56c = 1;
            goto LAB_0004e430;
          }
          if (7 < iVar10) {
            if (iVar10 == 8) {
              bVar31 = true;
            }
            else if (iVar10 == 9) {
              local_560 = (BIO *)FUN_00078b30();
            }
            goto LAB_0004e430;
          }
          if (iVar10 != 5) {
            if (iVar10 == 6) {
              local_514 = FUN_00078b30();
            }
            goto LAB_0004e430;
          }
          pcVar11 = (char *)FUN_00078b30();
          local_544 = ENGINE_by_id(pcVar11);
          if (local_544 != (ENGINE *)0x0) goto LAB_0004e430;
          ppuVar20 = (undefined **)*param_2;
          pcVar11 = "Can\'t find keygen engine %s\n";
LAB_0004e4a9:
          BIO_printf(DAT_000c458c,pcVar11,ppuVar20);
          goto LAB_0004e51a;
        }
        if (iVar10 == 1) {
          x_00 = (X509_REQ *)0x0;
          x = (X509 *)0x0;
          FUN_00079140(&PTR_DAT_000bb480);
          local_564 = 0;
          local_534 = (char *)0x0;
          local_538 = (char *)0x0;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          local_548 = (BIO *)0x0;
          goto LAB_0004e57b;
        }
        if (iVar10 < 2) {
          if (iVar10 != -1) goto LAB_0004e430;
          goto LAB_0004e51a;
        }
        if (iVar10 == 2) {
          uVar35 = FUN_00078b30();
          ppuVar20 = &local_4b8;
          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);
        }
        else {
          if (iVar10 != 3) goto LAB_0004e430;
          uVar35 = FUN_00078b30();
          ppuVar20 = &local_4b4;
          pAVar15 = (ASN1_INTEGER *)FUN_00077fb0(uVar35,2,ppuVar20);
        }
      }
      else {
        if (iVar10 == 0xf) {
          local_548 = (BIO *)FUN_00078b30();
          goto LAB_0004e430;
        }
        if (iVar10 < 0x10) {
          if (iVar10 == 0xc) {
            local_50c = (char *)FUN_00078b30();
          }
          else if (iVar10 < 0xc) {
            local_52c = FUN_00078b30();
          }
          else if (iVar10 == 0xd) {
            local_518 = (char *)FUN_00078b30();
          }
          else if (iVar10 == 0xe) {
            local_534 = (char *)FUN_00078b30();
          }
          goto LAB_0004e430;
        }
        if (iVar10 == 0x12) {
          if ((local_558 == 0) && (local_558 = OPENSSL_sk_new_null(), local_558 == 0))
          goto LAB_0004e51a;
          uVar35 = FUN_00078b30();
          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_558,uVar35);
        }
        else {
          if (0x12 < iVar10) {
            if (iVar10 == 0x13) {
              DAT_000c4a90 = 1;
            }
            else if (iVar10 == 0x14) {
              bVar5 = true;
            }
            goto LAB_0004e430;
          }
          if (iVar10 == 0x10) {
            local_570 = (EVP_PKEY *)FUN_00078b30();
            bVar31 = true;
            goto LAB_0004e430;
          }
          if (iVar10 != 0x11) goto LAB_0004e430;
          if ((local_55c == 0) && (local_55c = OPENSSL_sk_new_null(), local_55c == 0))
          goto LAB_0004e51a;
          uVar35 = FUN_00078b30();
          pAVar15 = (ASN1_INTEGER *)OPENSSL_sk_push(local_55c,uVar35);
        }
      }
joined_r0x0004ee90:
      if (pAVar15 == (ASN1_INTEGER *)0x0) goto LAB_0004e51a;
      goto LAB_0004e430;
    }
    if (iVar10 == 0x20) {
      local_53c = 1;
      goto LAB_0004e430;
    }
    if (0x20 < iVar10) {
      if (iVar10 == 0x25) {
        local_528 = (char **)FUN_00078b30();
        goto LAB_0004e430;
      }
      if (0x25 < iVar10) {
        if (iVar10 == 0x28) {
          uVar35 = FUN_000790d0();
          iVar10 = FUN_000782e0(uVar35,&local_4cc);
          if (iVar10 == 0) goto LAB_0004e51a;
          local_510 = local_4cc;
          goto LAB_0004e430;
        }
        if (0x28 < iVar10) {
          if ((1 < iVar10 - 0x5ddU) || (iVar10 = FUN_00072560(iVar10), iVar10 != 0))
          goto LAB_0004e430;
          goto LAB_0004eb16;
        }
        if (iVar10 == 0x26) {
          local_524 = (stack_st_CONF_VALUE *)FUN_00078b30();
        }
        else if (iVar10 == 0x27) {
          bVar31 = true;
          bVar4 = true;
        }
        goto LAB_0004e430;
      }
      if (iVar10 == 0x22) {
        pcVar11 = (char *)FUN_00078b30();
        ppuVar20 = (undefined **)0xa;
        local_530 = strtol(pcVar11,(char **)0x0,10);
        goto LAB_0004e430;
      }
      if (iVar10 < 0x22) {
        local_57c = 1;
        goto LAB_0004e430;
      }
      if (iVar10 == 0x23) {
        if (local_554 != (ASN1_INTEGER *)0x0) {
          pcVar11 = "Serial number supplied twice\n";
          goto LAB_0004e4a9;
        }
        pcVar11 = (char *)FUN_00078b30();
        local_554 = s2i_ASN1_INTEGER((X509V3_EXT_METHOD *)0x0,pcVar11);
        pAVar15 = local_554;
        goto joined_r0x0004ee90;
      }
      if (iVar10 != 0x24) goto LAB_0004e430;
      pcVar11 = (char *)FUN_00078b30();
      if (local_54c == 0) {
        local_54c = OPENSSL_LH_new(FUN_0004d7c0,FUN_0004d6b0);
        type = BIO_s_mem();
        local_550 = BIO_new(type);
        if ((local_54c == 0) || (local_550 == (BIO *)0x0)) {
          x = (X509 *)0x0;
          x_00 = (X509_REQ *)0x0;
          local_534 = (char *)0x0;
          local_538 = (char *)0x0;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          local_548 = (BIO *)0x0;
          local_564 = 1;
          goto LAB_0004e56a;
        }
      }
      cVar1 = *pcVar11;
      if (cVar1 != '\0') goto LAB_0004ea31;
      goto LAB_0004ea4d;
    }
    if (iVar10 == 0x1a) {
      local_588 = 0x1000;
      goto LAB_0004e430;
    }
    if (iVar10 < 0x1b) {
      if (iVar10 == 0x17) {
        bVar3 = true;
      }
      else if (iVar10 < 0x17) {
        local_578 = 1;
      }
      else if (iVar10 == 0x18) {
        local_580 = 1;
      }
      else if (iVar10 == 0x19) {
        bVar2 = true;
      }
      goto LAB_0004e430;
    }
    if (iVar10 == 0x1d) {
      local_51c = FUN_00078b30();
      goto LAB_0004e430;
    }
    if (0x1d < iVar10) {
      if (iVar10 == 0x1e) {
        local_584 = 1;
      }
      else if (iVar10 == 0x1f) {
        local_594 = 1;
      }
      goto LAB_0004e430;
    }
    if (iVar10 == 0x1b) {
      uVar35 = FUN_00078b30();
      iVar10 = FUN_00073960(uVar35);
      if (iVar10 != 0) goto LAB_0004e430;
      goto LAB_0004e51a;
    }
    if (iVar10 != 0x1c) goto LAB_0004e430;
    uVar35 = FUN_00078b30();
    iVar10 = FUN_000738d0(&local_4a8,uVar35);
    if (iVar10 == 0) goto LAB_0004e51a;
    iVar10 = FUN_00078780();
    if (iVar10 == 0) goto LAB_0004e6f0;
  }
  local_520 = 1;
  goto LAB_0004e430;
LAB_0004ea31:
  ppuVar13 = __ctype_b_loc();
  if ((*(byte *)((int)*ppuVar13 + cVar1 * 2 + 1) & 0x20) == 0) goto LAB_0004ea4d;
  pcVar11 = pcVar11 + 1;
  cVar1 = *pcVar11;
  if (cVar1 == '\0') goto LAB_0004e51a;
  goto LAB_0004ea31;
LAB_0004ea4d:
  pcVar12 = strchr(pcVar11,0x3d);
  if (pcVar12 == (char *)0x0) goto LAB_0004e51a;
  ptr = CRYPTO_strdup(pcVar11,"../apps/req.c",0xbd);
  if (ptr == (char *)0x0) {
    local_534 = (char *)0x0;
    local_538 = (char *)0x0;
    local_548 = (BIO *)0x0;
    goto LAB_0004f60c;
  }
  pcVar11 = ptr + ((int)pcVar12 - (int)pcVar11);
  if (ptr < pcVar11) {
    ppuVar13 = __ctype_b_loc();
    while ((*(byte *)((int)*ppuVar13 + pcVar11[-1] * 2 + 1) & 0x20) != 0) {
      pcVar11 = pcVar11 + -1;
      if (ptr == pcVar11) goto LAB_0004f4ba;
    }
  }
  if (pcVar11 == ptr) {
LAB_0004f4ba:
    CRYPTO_free(ptr);
    goto LAB_0004e51a;
  }
  *pcVar11 = '\0';
  pBVar14 = (BIO *)OPENSSL_LH_insert(local_54c,ptr);
  if ((pBVar14 == (BIO *)0x0) &&
     (iVar10 = OPENSSL_LH_error(local_54c), pBVar14 = (BIO *)ptr, iVar10 == 0)) {
    ppuVar20 = (undefined **)FUN_00078b30();
    iVar10 = BIO_printf(local_550,"%s\n",ppuVar20);
    if (iVar10 < 0) {
      x = (X509 *)0x0;
      x_00 = (X509_REQ *)0x0;
      local_534 = (char *)0x0;
      local_538 = (char *)0x0;
      local_570 = (EVP_PKEY *)0x0;
      local_548 = (BIO *)0x0;
      local_564 = 1;
      local_560 = (BIO *)0x0;
      goto LAB_0004e56a;
    }
    goto LAB_0004e430;
  }
  local_560 = pBVar14;
  CRYPTO_free(local_560);
LAB_0004eb16:
  x_00 = (X509_REQ *)0x0;
  x = (X509 *)0x0;
  local_564 = 1;
  local_534 = (char *)0x0;
  local_538 = (char *)0x0;
  local_570 = (EVP_PKEY *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
  goto LAB_0004e56a;
LAB_0004e51a:
  pcVar12 = "%s: Use -help for summary.\n";
  pcVar11 = (char *)ppcVar9;
LAB_0004e52c:
  BIO_printf(DAT_000c458c,pcVar12,pcVar11);
  local_534 = (char *)0x0;
  local_538 = (char *)0x0;
LAB_0004e54e:
  local_564 = 1;
  local_570 = (EVP_PKEY *)0x0;
  x_00 = (X509_REQ *)0x0;
  x = (X509 *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
  goto LAB_0004e56a;
  while( true ) {
    iVar10 = iVar10 + -1;
    bVar7 = *pbVar17 < *pbVar28;
    bVar30 = *pbVar17 == *pbVar28;
    pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;
    pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;
    if (!bVar30) break;
code_r0x0004f105:
    if (iVar10 == 0) break;
  }
  if ((!bVar7 && !bVar30) == bVar7) {
LAB_0004f5da:
    local_4ec = 0x1000;
  }
  else {
    local_4ec = 0x1001;
  }
LAB_0004f11f:
  if (local_524 == (stack_st_CONF_VALUE *)0x0) {
    pcVar11 = "req_extensions";
    local_524 = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","req_extensions");
    if (local_524 != (stack_st_CONF_VALUE *)0x0) goto LAB_0004f12b;
    ERR_clear_error();
  }
  else {
LAB_0004f12b:
    X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,(X509_REQ *)0x0,(X509_CRL *)0x0,1);
    X509V3_set_nconf(&local_4a0,DAT_000c4a98);
    iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,(X509 *)0x0);
    if (iVar10 == 0) {
      pcVar11 = "Error Loading request extension section %s\n";
      psVar16 = local_524;
LAB_0004fba6:
      BIO_printf(DAT_000c458c,pcVar11,psVar16);
      goto LAB_0004e54e;
    }
  }
  if (local_514 == 0) {
LAB_0004f1d1:
    if ((local_4d0 == (BIO *)0x0) && (bVar31 != false)) {
      FUN_00072430(DAT_000c4a98,&DAT_00091821);
      iVar10 = NCONF_get_number_e(DAT_000c4a98,"req","default_bits",&local_4ac);
      if (iVar10 == 0) {
        local_4ac = 0x800;
        if (local_570 == (EVP_PKEY *)0x0) {
LAB_000500d7:
          local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);
          if (local_570 == (EVP_PKEY *)0x0) {
            x_00 = (X509_REQ *)0x0;
            x = (X509 *)0x0;
            local_560 = (BIO *)0x0;
            local_548 = (BIO *)0x0;
            local_564 = 1;
            goto LAB_0004e56a;
          }
          goto LAB_0004f2bc;
        }
LAB_0004f245:
        local_570 = (EVP_PKEY *)FUN_0004d840(&local_4c8,local_544);
        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f275;
        x_00 = (X509_REQ *)0x0;
LAB_000501da:
        x = (X509 *)0x0;
        local_560 = (BIO *)0x0;
        local_548 = (BIO *)0x0;
        local_564 = 1;
      }
      else {
        if (local_570 != (EVP_PKEY *)0x0) goto LAB_0004f245;
LAB_0004f275:
        if (local_4ac < 0x200) {
          if ((local_4bc != 0x74) && (local_4bc != 6)) goto LAB_0004f2b0;
          BIO_printf(DAT_000c458c,"private key length is too short,\n");
          BIO_printf(DAT_000c458c,"it needs to be at least %d bits, not %ld\n",0x200,local_4ac);
        }
        else {
          if ((0x4000 < local_4ac) && (local_4bc == 6)) {
            pcVar11 = (char *)0x4000;
            BIO_printf(DAT_000c458c,
                       "Warning: It is not recommended to use more than %d bit for RSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"
                       ,0x4000,local_4ac);
          }
          if ((local_4bc == 0x74) && (10000 < local_4ac)) {
            pcVar11 = (char *)0x2710;
            BIO_printf(DAT_000c458c,
                       "Warning: It is not recommended to use more than %d bit for DSA keys.\n         Your key size is %ld! Larger key size may behave not as expected.\n"
                       ,10000,local_4ac);
          }
LAB_0004f2b0:
          if (local_570 == (EVP_PKEY *)0x0) goto LAB_000500d7;
LAB_0004f2bc:
          iVar10 = 0;
          if (local_55c != 0) {
            for (; iVar18 = OPENSSL_sk_num(local_55c), iVar10 < iVar18; iVar10 = iVar10 + 1) {
              uVar35 = OPENSSL_sk_value(local_55c,iVar10);
              iVar18 = FUN_00075300(local_570,uVar35);
              if (iVar18 < 1) {
                BIO_printf(DAT_000c458c,"parameter error \"%s\"\n",uVar35);
                ERR_print_errors(DAT_000c458c);
                goto LAB_0004ff7c;
              }
            }
          }
          if (local_4bc == 0x198) {
            BIO_printf(DAT_000c458c,"Generating an EC private key\n",pcVar11);
          }
          else {
            BIO_printf(DAT_000c458c,"Generating a %s private key\n",local_4c8);
          }
          EVP_PKEY_CTX_set_cb((EVP_PKEY_CTX *)local_570,FUN_0004d710);
          EVP_PKEY_CTX_set_app_data((EVP_PKEY_CTX *)local_570,DAT_000c458c);
          iVar10 = EVP_PKEY_keygen((EVP_PKEY_CTX *)local_570,(EVP_PKEY **)&local_4d0);
          if (0 < iVar10) {
            EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);
            if (local_518 == (char *)0x0) {
              pcVar11 = "default_keyfile";
              local_518 = NCONF_get_string(DAT_000c4a98,"req","default_keyfile");
              if (local_518 != (char *)0x0) goto LAB_0004f392;
              ERR_clear_error();
              pcVar12 = "writing new private key to stdout\n";
            }
            else {
LAB_0004f392:
              pcVar12 = "writing new private key to \'%s\'\n";
              pcVar11 = local_518;
            }
            BIO_printf(DAT_000c458c,pcVar12,pcVar11);
            local_560 = (BIO *)FUN_00076e70(local_518,local_4b4,pBVar14 == (BIO *)0x0);
            if (local_560 == (BIO *)0x0) {
              x_00 = (X509_REQ *)0x0;
              x = (X509 *)0x0;
              local_570 = (EVP_PKEY *)0x0;
              local_548 = (BIO *)0x0;
              local_564 = 1;
              goto LAB_0004e56a;
            }
            pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_rsa_key");
            bVar31 = pbVar17 == (byte *)0x0;
            if (bVar31) {
              ERR_clear_error();
              pbVar17 = (byte *)NCONF_get_string(DAT_000c4a98,"req","encrypt_key");
              bVar31 = pbVar17 == (byte *)0x0;
              if (!bVar31) goto LAB_0004f40c;
              ERR_clear_error();
              local_500 = pEVar8;
            }
            else {
LAB_0004f40c:
              bVar29 = false;
              iVar10 = 3;
              pbVar28 = &DAT_0007e9a6;
              do {
                if (iVar10 == 0) break;
                iVar10 = iVar10 + -1;
                bVar29 = *pbVar17 < *pbVar28;
                bVar31 = *pbVar17 == *pbVar28;
                pbVar17 = pbVar17 + (uint)bVar32 * -2 + 1;
                pbVar28 = pbVar28 + (uint)bVar32 * -2 + 1;
              } while (bVar31);
              local_500 = (EVP_CIPHER *)0x0;
              if ((!bVar29 && !bVar31) != bVar29) {
                local_500 = pEVar8;
              }
            }
            pEVar8 = (EVP_CIPHER *)0x0;
            if (!bVar3) {
              pEVar8 = local_500;
            }
            iVar10 = 0;
            while (iVar18 = PEM_write_bio_PrivateKey
                                      (local_560,(EVP_PKEY *)local_4d0,pEVar8,(uchar *)0x0,0,
                                       (undefined1 *)0x0,local_4c0), iVar18 == 0) {
              uVar19 = ERR_peek_error();
              if (((uVar19 & 0xfff) != 0x6d) || (iVar10 == 3)) {
                local_564 = 1;
                x_00 = (X509_REQ *)0x0;
                x = (X509 *)0x0;
                local_570 = (EVP_PKEY *)0x0;
                local_548 = (BIO *)0x0;
                goto LAB_0004e56a;
              }
              ERR_clear_error();
              iVar10 = iVar10 + 1;
            }
            BIO_free(local_560);
            BIO_printf(DAT_000c458c,"-----\n");
            goto LAB_0004f6c0;
          }
          BIO_puts(DAT_000c458c,"Error Generating Key\n");
        }
LAB_0004ff7c:
        local_564 = 1;
        x_00 = (X509_REQ *)0x0;
        x = (X509 *)0x0;
        local_560 = (BIO *)0x0;
        local_548 = (BIO *)0x0;
      }
    }
    else {
      if (bVar29) {
LAB_0004f6c0:
        if (local_4d0 == (BIO *)0x0) {
          x_00 = (X509_REQ *)0x0;
          local_548 = (BIO *)0x0;
LAB_000505b7:
          x = (X509 *)0x0;
          BIO_printf(DAT_000c458c,"you need to specify a private key\n");
          local_564 = 1;
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
          goto LAB_0004e56a;
        }
        x_00 = X509_REQ_new();
        pBVar14 = local_4d0;
        if (x_00 == (X509_REQ *)0x0) {
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_000501da;
        }
        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","prompt");
        if (pcVar11 == (char *)0x0) {
          ERR_clear_error();
          bVar31 = false;
        }
        else {
          iVar10 = strcmp(pcVar11,"no");
          bVar31 = iVar10 == 0;
        }
        pcVar11 = NCONF_get_string(DAT_000c4a98,"req","distinguished_name");
        if ((stack_st_CONF_VALUE *)pcVar11 == (stack_st_CONF_VALUE *)0x0) {
          pcVar12 = "unable to find \'%s\' in config\n";
          pcVar11 = "distinguished_name";
          psVar16 = extraout_ECX;
LAB_0005074a:
          puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,pcVar12,pcVar11,psVar16);
          goto LAB_0004f815;
        }
        psVar16 = NCONF_get_section(DAT_000c4a98,pcVar11);
        if (psVar16 == (stack_st_CONF_VALUE *)0x0) {
          pcVar12 = "unable to get \'%s\' section\n";
          psVar16 = extraout_EDX;
          goto LAB_0005074a;
        }
        section = (stack_st_CONF_VALUE *)NCONF_get_string(DAT_000c4a98,"req","attributes");
        if (section == (stack_st_CONF_VALUE *)0x0) {
          psVar21 = section;
          ERR_clear_error();
          local_548 = (BIO *)0x0;
        }
        else {
          psVar21 = NCONF_get_section(DAT_000c4a98,(char *)section);
          local_548 = (BIO *)psVar21;
          if (psVar21 == (stack_st_CONF_VALUE *)0x0) {
            pcVar12 = "unable to get \'%s\' section\n";
            psVar16 = (stack_st_CONF_VALUE *)0x0;
            pcVar11 = (char *)section;
            goto LAB_0005074a;
          }
        }
        uVar35 = 0;
        psVar36 = psVar21;
        iVar10 = X509_REQ_set_version(x_00,0);
        if (iVar10 == 0) {
LAB_0004f80b:
          puVar26 = &DAT_000c458c;
          goto LAB_0004f815;
        }
        if (local_51c == 0) {
          if (bVar31) {
            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);
            for (iVar10 = 0; iVar18 = OPENSSL_sk_num(psVar16), iVar10 < iVar18; iVar10 = iVar10 + 1)
            {
              iVar18 = OPENSSL_sk_value(psVar16,iVar10);
              pbVar17 = *(byte **)(iVar18 + 4);
              bVar32 = *pbVar17;
              pbVar28 = pbVar17;
              if (bVar32 == 0) {
                set = 0;
              }
              else {
                do {
                  if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {
                    if (*(byte *)((int)pbVar28 + 1) != 0) {
                      pbVar17 = (byte *)((int)pbVar28 + 1);
                    }
                    break;
                  }
                  pbVar28 = (byte *)((int)pbVar28 + 1);
                  bVar32 = *pbVar28;
                } while (bVar32 != 0);
                set = 0;
                if (*pbVar17 == 0x2b) {
                  pbVar17 = pbVar17 + 1;
                  set = -1;
                }
              }
              iVar18 = X509_NAME_add_entry_by_txt
                                 (pXVar23,(char *)pbVar17,local_4ec,*(uchar **)(iVar18 + 8),-1,-1,
                                  set);
              if (iVar18 == 0) goto LAB_0004f80b;
            }
            psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);
            if (psVar16 != (stack_st_CONF_VALUE *)0x0) {
              if (local_53c == 0) {
                for (iVar10 = 0; iVar18 = OPENSSL_sk_num(local_548), pcVar11 = (char *)local_548,
                    iVar10 < iVar18; iVar10 = iVar10 + 1) {
                  iVar18 = OPENSSL_sk_value(local_548,iVar10,iVar18,iVar18);
                  iVar18 = X509_REQ_add1_attr_by_txt
                                     (x_00,*(char **)(iVar18 + 4),local_4ec,*(uchar **)(iVar18 + 8),
                                      -1);
                  if (iVar18 == 0) goto LAB_0004f80b;
                }
LAB_00050951:
                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);
                if (iVar10 != 0) goto LAB_0004fbe2;
              }
              else {
LAB_00051084:
                iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14);
                if (iVar10 != 0) {
                  local_548 = (BIO *)0x0;
                  goto LAB_0004f99b;
                }
              }
              goto LAB_0004f80b;
            }
LAB_000510a8:
            pcVar12 = "error, no objects specified in config file\n";
            pcVar11 = (char *)psVar16;
          }
          else {
            pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00,uVar35,psVar21,psVar36);
            if (DAT_000c4a90 == 0) {
              BIO_printf(DAT_000c458c,
                         "You are about to be asked to enter information that will be incorporated\n"
                         ,pXVar23,pXVar23);
              BIO_printf(DAT_000c458c,"into your certificate request.\n");
              BIO_printf(DAT_000c458c,
                         "What you are about to enter is what is called a Distinguished Name or a DN.\n"
                        );
              BIO_printf(DAT_000c458c,"There are quite a few fields but you can leave some blank\n")
              ;
              BIO_printf(DAT_000c458c,"For some fields there will be a default value,\n");
              BIO_printf(DAT_000c458c,"If you enter \'.\', the field will be left blank.\n");
              BIO_printf(DAT_000c458c,"-----\n");
            }
            iVar10 = OPENSSL_sk_num(psVar16);
            local_52c = -1;
            if (iVar10 != 0) {
LAB_000509ca:
              do {
                do {
                  do {
                    local_52c = local_52c + 1;
                    iVar10 = OPENSSL_sk_num(psVar16);
                    if (iVar10 <= local_52c) {
                      psVar16 = (stack_st_CONF_VALUE *)X509_NAME_entry_count(pXVar23);
                      if (psVar16 == (stack_st_CONF_VALUE *)0x0) goto LAB_000510a8;
                      if (local_53c != 0) goto LAB_00051084;
                      if (local_548 == (BIO *)0x0) goto LAB_00050951;
                      uVar33 = OPENSSL_sk_num(local_548);
                      uVar35 = (undefined4)((ulonglong)uVar33 >> 0x20);
                      if ((0 < (int)uVar33) && (DAT_000c4a90 == 0)) {
                        BIO_printf(DAT_000c458c,
                                   "\nPlease enter the following \'extra\' attributes\n",uVar35,
                                   uVar35);
                        BIO_printf(DAT_000c458c,"to be sent with your certificate request\n");
                      }
                      local_588 = -1;
                      pcVar11 = (char *)local_484;
                      goto LAB_00050afd;
                    }
                    iVar10 = OPENSSL_sk_value(psVar16,local_52c);
                    pbVar17 = *(byte **)(iVar10 + 4);
                    iVar10 = FUN_0004d7e0();
                  } while ((((iVar10 == 0) || (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||
                           (iVar10 = FUN_0004d7e0(), iVar10 == 0)) ||
                          (iVar10 = FUN_0004d7e0(), iVar10 == 0));
                  bVar32 = *pbVar17;
                  pbVar28 = pbVar17;
                  if (bVar32 == 0) {
                    local_514 = 0;
                  }
                  else {
                    do {
                      if (((bVar32 & 0xfd) == 0x2c) || (bVar32 == 0x3a)) {
                        if (*(byte *)((int)pbVar28 + 1) != 0) {
                          pbVar17 = (byte *)((int)pbVar28 + 1);
                        }
                        break;
                      }
                      pbVar28 = (byte *)((int)pbVar28 + 1);
                      bVar32 = *pbVar28;
                    } while (bVar32 != 0);
                    local_514 = 0;
                    if (*pbVar17 == 0x2b) {
                      local_514 = -1;
                      pbVar17 = pbVar17 + 1;
                    }
                  }
                  iVar10 = OBJ_txt2nid((char *)pbVar17);
                } while (iVar10 == 0);
                iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);
                if (iVar18 == 0) break;
                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);
                if (pcVar12 == (char *)0x0) {
                  ERR_clear_error();
                  pcVar12 = "";
                }
                iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);
                if (iVar18 == 0) break;
                pcVar12 = NCONF_get_string(DAT_000c4a98,pcVar11,(char *)local_484);
                if (pcVar12 == (char *)0x0) {
                  ERR_clear_error();
                }
                iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);
                if (iVar18 == 0) break;
                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a4);
                if (iVar18 == 0) {
                  ERR_clear_error();
                  local_4a4 = -1;
                }
                iVar18 = FUN_0004de90(&DAT_00087c86,"Name",iVar18,iVar18);
                if (iVar18 == 0) break;
                iVar18 = NCONF_get_number_e(DAT_000c4a98,pcVar11,(char *)local_484,&local_4a0.flags)
                ;
                if (iVar18 == 0) {
                  ERR_clear_error();
                  local_4a0.flags = -1;
                }
                uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"DN value","DN default");
                if (uVar27 < 2) {
                  if (uVar27 == 0) break;
                  goto LAB_000509ca;
                }
                iVar10 = X509_NAME_add_entry_by_NID
                                   (pXVar23,iVar10,local_4ec,local_420,-1,-1,local_514);
              } while (iVar10 != 0);
              puVar26 = &DAT_000c458c;
              goto LAB_0004f815;
            }
            pcVar12 = "No template, please set one up.\n";
            psVar16 = (stack_st_CONF_VALUE *)0x0;
            pcVar11 = (char *)(stack_st_CONF_VALUE *)0x0;
          }
          goto LAB_0005074a;
        }
        iVar10 = FUN_0004dcf0(local_57c);
        if ((iVar10 == 0) || (iVar10 = X509_REQ_set_pubkey(x_00,(EVP_PKEY *)pBVar14), iVar10 == 0))
        goto LAB_0004f80b;
        if (local_53c != 0) {
          local_548 = (BIO *)0x0;
          local_51c = 0;
LAB_0004f99b:
          x = X509_new();
          if ((x != (X509 *)0x0) &&
             (((local_528 == (char **)0x0 && (DAT_000c4a94 == (CONF *)0x0)) ||
              (iVar10 = X509_set_version(x,2), iVar10 != 0)))) {
            if (local_554 == (ASN1_INTEGER *)0x0) {
              pAVar15 = X509_get_serialNumber(x);
              iVar10 = FUN_00074630(0,pAVar15);
            }
            else {
              iVar10 = X509_set_serialNumber(x,local_554);
            }
            if (iVar10 != 0) {
              pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
              iVar10 = X509_set_issuer_name(x,pXVar23);
              if (iVar10 != 0) {
                iVar10 = 0x1e;
                if (local_530 != 0) {
                  iVar10 = local_530;
                }
                iVar10 = FUN_00077500(x,0,0,iVar10);
                if (iVar10 != 0) {
                  pXVar23 = (X509_NAME *)X509_REQ_get_subject_name(x_00);
                  iVar10 = X509_set_subject_name(x,pXVar23);
                  if (((iVar10 != 0) &&
                      (pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00), pEVar24 != (EVP_PKEY *)0x0)
                      ) && (iVar10 = X509_set_pubkey(x,pEVar24), iVar10 != 0)) {
                    X509V3_set_ctx(&local_4a0,x,x,(X509_REQ *)0x0,(X509_CRL *)0x0,0);
                    X509V3_set_nconf(&local_4a0,DAT_000c4a98);
                    if ((local_528 == (char **)0x0) ||
                       (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_528,x),
                       iVar10 != 0)) {
                      if ((DAT_000c4a94 == (CONF *)0x0) ||
                         (iVar10 = X509V3_EXT_add_nconf(DAT_000c4a94,&local_4a0,"default",x),
                         iVar10 != 0)) {
                        if (bVar4) {
                          iVar10 = X509_add1_ext_i2d(x,0x3b8,(void *)0x0,1,0);
                          local_528 = (char **)(iVar10 + -1);
                          if (local_528 != (char **)0x0) {
                            pcVar11 = "Error adding poison extension\n";
                            ppcVar9 = local_528;
                            goto LAB_00050666;
                          }
                        }
                        iVar10 = FUN_0004e150(x,local_4d0,local_510,local_558);
                        if (iVar10 == 0) {
                          ERR_print_errors(DAT_000c458c);
                          goto LAB_0004fb6e;
                        }
                        bVar31 = local_51c != 0;
                        if ((local_53c == 0) || (!bVar31)) goto LAB_0004fed2;
                        pcVar11 = "Cannot modify certificate subject\n";
                        goto LAB_0004fb64;
                      }
                      pcVar11 = "Error Loading command line extensions\n";
                      local_528 = (char **)0x0;
                      ppcVar9 = (char **)0x0;
                    }
                    else {
                      pcVar11 = "Error Loading extension section %s\n";
                      ppcVar9 = (char **)0x0;
                    }
LAB_00050666:
                    BIO_printf(DAT_000c458c,pcVar11,local_528,ppcVar9);
                  }
                }
              }
            }
          }
          goto LAB_0004fb6e;
        }
LAB_0004fbe2:
        X509V3_set_ctx(&local_4a0,(X509 *)0x0,(X509 *)0x0,x_00,(X509_CRL *)0x0,0);
        X509V3_set_nconf(&local_4a0,DAT_000c4a98);
        if ((local_524 == (stack_st_CONF_VALUE *)0x0) ||
           (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a98,&local_4a0,(char *)local_524,x_00),
           iVar10 != 0)) {
          if ((DAT_000c4a94 != (CONF *)0x0) &&
             (iVar10 = X509V3_EXT_REQ_add_nconf(DAT_000c4a94,&local_4a0,"default",x_00), iVar10 == 0
             )) {
            pcVar12 = "Error Loading command line extensions\n";
            local_524 = (stack_st_CONF_VALUE *)pcVar11;
            goto LAB_0005068b;
          }
          x = (X509 *)0x0;
          iVar10 = FUN_0004e1b0(x_00,local_4d0,local_510,local_558);
          local_548 = (BIO *)0x0;
          if (iVar10 != 0) goto LAB_0004fc7f;
          ERR_print_errors(DAT_000c458c);
        }
        else {
          pcVar12 = "Error Loading extension section %s\n";
          pcVar11 = (char *)0x0;
LAB_0005068b:
          BIO_printf(DAT_000c458c,pcVar12,local_524,pcVar11);
        }
        goto LAB_0004f82c;
      }
      local_548 = (BIO *)FUN_00075fa0(local_52c,0x72,local_4b8);
      if (local_548 == (BIO *)0x0) goto LAB_0004f60c;
      if (local_4b8 == (undefined *)0x4) {
        x_00 = d2i_X509_REQ_bio(local_548,(X509_REQ **)0x0);
      }
      else {
        x_00 = PEM_read_bio_X509_REQ(local_548,(X509_REQ **)0x0,(undefined1 *)0x0,(void *)0x0);
      }
      if (x_00 == (X509_REQ *)0x0) {
        x = (X509 *)0x0;
        BIO_printf(DAT_000c458c,"unable to load X509 request\n",0,0);
        local_570 = (EVP_PKEY *)0x0;
        local_560 = (BIO *)0x0;
        local_564 = 1;
        goto LAB_0004e56a;
      }
      if (local_53c != 0) {
        if (local_4d0 == (BIO *)0x0) goto LAB_000505b7;
        goto LAB_0004f99b;
      }
      bVar31 = local_51c != 0;
      x = (X509 *)0x0;
LAB_0004fed2:
      if ((bVar31 & (byte)local_564) != 0) {
        if (bVar2) {
          BIO_printf(DAT_000c458c,"Modifying Request\'s Subject\n");
          uVar35 = FUN_00073120();
          uVar25 = X509_REQ_get_subject_name(x_00);
          FUN_00073b90(DAT_000c458c,"old subject=",uVar25,uVar35);
          iVar10 = FUN_0004dcf0(local_57c);
          if (iVar10 == 0) goto LAB_0004ff17;
          uVar35 = FUN_00073120();
          uVar25 = X509_REQ_get_subject_name(x_00);
          FUN_00073b90(DAT_000c458c,"new subject=",uVar25,uVar35);
        }
        else {
          iVar10 = FUN_0004dcf0(local_57c);
          if (iVar10 == 0) {
LAB_0004ff17:
            pcVar11 = "ERROR: cannot modify subject\n";
LAB_0004fb64:
            BIO_printf(DAT_000c458c,pcVar11);
LAB_0004fb6e:
            local_564 = 1;
            local_570 = (EVP_PKEY *)0x0;
            local_560 = (BIO *)0x0;
            goto LAB_0004e56a;
          }
        }
      }
LAB_0004fc7f:
      local_564 = local_578 & local_564;
      if (local_564 != 0) {
        local_560 = local_4d0;
        if ((local_4d0 == (BIO *)0x0) &&
           (local_560 = (BIO *)X509_REQ_get0_pubkey(x_00), local_560 == (BIO *)0x0)) {
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
        }
        else {
          iVar10 = X509_REQ_verify(x_00,(EVP_PKEY *)local_560);
          if (-1 < iVar10) {
            if (iVar10 == 0) {
              BIO_printf(DAT_000c458c,"verify failure\n");
              ERR_print_errors(DAT_000c458c);
            }
            else {
              BIO_printf(DAT_000c458c,"verify OK\n");
            }
            goto LAB_0004fce0;
          }
          local_570 = (EVP_PKEY *)0x0;
          local_560 = (BIO *)0x0;
        }
        goto LAB_0004e56a;
      }
LAB_0004fce0:
      puVar6 = local_4b4;
      if (((local_580 & (local_594 ^ 1)) != 0) &&
         ((local_584 == 0 && local_56c == 0) && local_520 == 0)) {
        local_564 = 0;
        local_570 = (EVP_PKEY *)0x0;
        local_560 = (BIO *)0x0;
        goto LAB_0004e57b;
      }
      if ((local_518 == (char *)0x0) || (local_50c == (char *)0x0)) {
        iVar10 = 0x77;
      }
      else {
        iVar10 = strcmp(local_518,local_50c);
        iVar10 = (-(uint)(iVar10 == 0) & 0xffffffea) + 0x77;
      }
      local_560 = (BIO *)FUN_00075fa0(local_50c,iVar10,puVar6);
      if (local_560 == (BIO *)0x0) {
        local_570 = (EVP_PKEY *)0x0;
        local_564 = 1;
        goto LAB_0004e56a;
      }
      if (local_56c != 0) {
        pEVar24 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);
        if (pEVar24 == (EVP_PKEY *)0x0) {
          BIO_printf(DAT_000c458c,"Error getting public key\n",0,0);
          ERR_print_errors(DAT_000c458c);
          local_564 = local_56c;
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_0004e56a;
        }
        PEM_write_bio_PUBKEY(local_560,pEVar24);
      }
      uVar19 = local_4a8;
      local_564 = 0;
      if (local_594 == 0) {
        if (local_584 == 0) {
          local_598 = 1;
          if (local_520 == 0) goto LAB_0004fe2d;
          local_598 = local_520;
          if (local_53c == 0) goto LAB_00050366;
          local_598 = local_53c;
LAB_0004fdbe:
          local_570 = (EVP_PKEY *)X509_get0_pubkey(x);
LAB_0004fdce:
          puVar6 = PTR_stdout_000bdfa8;
          if (local_570 == (EVP_PKEY *)0x0) {
            fwrite("Modulus=unavailable\n",1,0x14,*(FILE **)PTR_stdout_000bdfa8);
            local_564 = local_598;
            goto LAB_0004e56a;
          }
          fwrite("Modulus=",1,8,*(FILE **)PTR_stdout_000bdfa8);
          iVar10 = EVP_PKEY_base_id(local_570);
          if (iVar10 == 6) {
            uVar35 = EVP_PKEY_get0_RSA(local_570);
            RSA_get0_key(uVar35,&local_4a0,0,0);
            BN_print(local_560,(BIGNUM *)local_4a0.flags);
          }
          else {
            fwrite("Wrong Algorithm type",1,0x14,*(FILE **)puVar6);
          }
          fputc(10,*(FILE **)puVar6);
          goto LAB_0004fe2d;
        }
        local_598 = local_584;
        if (local_53c != 0) {
          local_598 = local_53c;
LAB_0004ffc7:
          uVar35 = FUN_00073120();
          pXVar23 = X509_get_subject_name(x);
          FUN_00073b90(local_560,"subject=",pXVar23,uVar35);
          if (local_520 == 0) goto LAB_0004fff8;
          goto LAB_0004fdbe;
        }
LAB_000502e6:
        uVar35 = FUN_00073120();
        uVar25 = X509_REQ_get_subject_name(x_00);
        FUN_00073b90(local_560,"subject=",uVar25,uVar35);
        if (local_520 != 0) {
LAB_00050366:
          local_570 = (EVP_PKEY *)X509_REQ_get0_pubkey(x_00);
          goto LAB_0004fdce;
        }
        if (local_580 == 0) goto LAB_0004fe3b;
LAB_0005031e:
        local_564 = 0;
        local_570 = (EVP_PKEY *)0x0;
        goto LAB_0004e57b;
      }
      if (local_53c == 0) {
        uVar22 = FUN_00073120();
        local_598 = X509_REQ_print_ex(local_560,x_00,uVar22,uVar19);
        if (local_598 == 0) {
          pcVar11 = "Error printing certificate request\n";
          goto LAB_00050628;
        }
        if (local_584 != 0) goto LAB_000502e6;
        if (local_520 != 0) goto LAB_00050366;
LAB_0004fe2d:
        if (local_53c != 0 || local_580 != 0) goto LAB_0004fff8;
LAB_0004fe3b:
        if (local_4b4 == (undefined *)0x4) {
          iVar10 = i2d_X509_REQ_bio(local_560,x_00);
          uVar35 = extraout_EDX_02;
        }
        else if (bVar5) {
          iVar10 = PEM_write_bio_X509_REQ_NEW(local_560,x_00);
          uVar35 = extraout_EDX_00;
        }
        else {
          iVar10 = PEM_write_bio_X509_REQ(local_560,x_00);
          uVar35 = extraout_EDX_01;
        }
        local_570 = (EVP_PKEY *)0x0;
        if (iVar10 != 0) goto LAB_0004e57b;
        pcVar11 = "unable to write X509 request\n";
      }
      else {
        uVar22 = FUN_00073120();
        local_598 = X509_print_ex(local_560,x,uVar22,uVar19);
        if (local_598 == 0) {
          pcVar11 = "Error printing certificate\n";
LAB_00050628:
          BIO_printf(DAT_000c458c,pcVar11,0,0);
          ERR_print_errors(DAT_000c458c);
          local_570 = (EVP_PKEY *)0x0;
          goto LAB_0004e57b;
        }
        if (local_584 != 0) goto LAB_0004ffc7;
        if (local_520 != 0) goto LAB_0004fdbe;
LAB_0004fff8:
        if ((local_53c & (local_580 ^ 1)) == 0) goto LAB_0005031e;
        local_570 = (EVP_PKEY *)0x0;
        if (x == (X509 *)0x0) goto LAB_0004e57b;
        if (local_4b4 == (undefined *)0x4) {
          iVar10 = i2d_X509_bio(local_560,x);
        }
        else {
          iVar10 = PEM_write_bio_X509(local_560,x);
        }
        local_570 = (EVP_PKEY *)0x0;
        if (iVar10 != 0) goto LAB_0004e57b;
        pcVar11 = "unable to write X509 certificate\n";
        uVar35 = 0;
      }
      local_570 = (EVP_PKEY *)0x0;
      BIO_printf(DAT_000c458c,pcVar11,uVar35,uVar35);
      local_564 = local_598;
    }
  }
  else {
    local_548 = (BIO *)FUN_000764e0(local_514,local_4b0,0,local_4c4,local_540,"Private Key");
    local_4d0 = local_548;
    if (local_548 != (BIO *)0x0) {
      FUN_00072430(DAT_000c4a98,&DAT_00091821);
      goto LAB_0004f1d1;
    }
LAB_0004f60c:
    x_00 = (X509_REQ *)0x0;
    x = (X509 *)0x0;
    local_570 = (EVP_PKEY *)0x0;
    local_560 = (BIO *)0x0;
    local_564 = 1;
  }
  goto LAB_0004e56a;
  while (iVar10 = X509_REQ_add1_attr_by_NID(x_00,iVar10,local_4ec,local_420,-1), iVar10 != 0) {
LAB_00050afd:
    do {
      local_588 = local_588 + 1;
      iVar10 = OPENSSL_sk_num(local_548);
      if (iVar10 <= local_588) goto LAB_00050951;
      iVar10 = OPENSSL_sk_value(local_548,local_588,iVar10,iVar10);
      iVar10 = OBJ_txt2nid(*(char **)(iVar10 + 4));
    } while (iVar10 == 0);
    iVar18 = FUN_0004de90("_default","Name",iVar10,iVar10);
    if (iVar18 == 0) {
LAB_00050d30:
      puVar26 = &DAT_000c458c;
      goto LAB_0004f815;
    }
    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);
    if (pcVar12 == (char *)0x0) {
      ERR_clear_error();
    }
    iVar18 = FUN_0004de90("_value","Name",pcVar12,pcVar12);
    if (iVar18 == 0) goto LAB_00050d30;
    pcVar12 = NCONF_get_string(DAT_000c4a98,(char *)section,pcVar11);
    if (pcVar12 == (char *)0x0) {
      ERR_clear_error();
    }
    iVar18 = FUN_0004de90(&DAT_00087c81,"Name",pcVar12,pcVar12);
    if (iVar18 == 0) goto LAB_00050d30;
    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a4);
    uVar35 = extraout_ECX_00;
    if (iVar18 == 0) {
      ERR_clear_error();
      local_4a4 = -1;
      uVar35 = extraout_ECX_01;
    }
    iVar18 = FUN_0004de90(&DAT_00087c86,"Name",uVar35,uVar35);
    if (iVar18 == 0) goto LAB_00050d30;
    iVar18 = NCONF_get_number_e(DAT_000c4a98,(char *)section,pcVar11,&local_4a0.flags);
    if (iVar18 == 0) {
      ERR_clear_error();
      local_4a0.flags = -1;
    }
    uVar27 = FUN_0004df30(local_4a4,local_4a0.flags,local_420,"Attribute value","Attribute default")
    ;
    if (uVar27 < 2) {
      if (uVar27 == 0) goto LAB_00050d30;
      goto LAB_00050afd;
    }
  }
  puVar26 = (undefined4 *)BIO_printf(DAT_000c458c,"Error adding attribute\n",0,0);
  ERR_print_errors(DAT_000c458c);
LAB_0004f815:
  BIO_printf(DAT_000c458c,"problems making Certificate Request\n",puVar26,puVar26);
LAB_0004f82c:
  local_564 = 1;
  x = (X509 *)0x0;
  local_570 = (EVP_PKEY *)0x0;
  local_560 = (BIO *)0x0;
  local_548 = (BIO *)0x0;
LAB_0004e56a:
  ERR_print_errors(DAT_000c458c);
LAB_0004e57b:
  NCONF_free(DAT_000c4a98);
  NCONF_free(DAT_000c4a94);
  BIO_free(local_550);
  BIO_free(local_548);
  BIO_free_all(local_560);
  EVP_PKEY_free((EVP_PKEY *)local_4d0);
  EVP_PKEY_CTX_free((EVP_PKEY_CTX *)local_570);
  OPENSSL_sk_free(local_55c);
  OPENSSL_sk_free(local_558);
  OPENSSL_LH_doall(local_54c,FUN_0004d6e0);
  OPENSSL_LH_free(local_54c);
  ENGINE_free(local_544);
  uVar35 = 0x3cc;
  CRYPTO_free(local_4c8);
  X509_REQ_free(x_00);
  X509_free(x);
  ASN1_INTEGER_free(local_554);
  FUN_00074230(local_540,pcVar34,uVar35);
  if (local_4c4 != local_538) {
    CRYPTO_free(local_4c4);
  }
  if (local_4c0 != local_534) {
    CRYPTO_free(local_4c0);
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007d010();
  }
  return local_564;
}

