{"name": "pkcs8_main", "code": "__int64 __fastcall pkcs8_main ( __int64 @@a1@@ , __int64 @@a2@@ ) { unsigned int v2 ; unsigned int v3 ; int v4 ; char * @@v6@@ ; char * @@v7@@ ; char @@v8@@ [ Number ] ; __int64 @@v9@@ ; __int64 @@v10@@ ; unsigned int @@v11@@ ; int @@v12@@ ; char * @@s@@ ; __int64 @@v14@@ ; int * @@v15@@ ; __int64 @@v16@@ ; int @@v17@@ ; unsigned int @@v18@@ ; int @@v19@@ ; unsigned int @@v20@@ ; unsigned int @@v21@@ ; __int64 @@v22@@ ; unsigned int @@v23@@ ; int @@v24@@ ; __int64 @@v25@@ ; __int64 @@v26@@ ; __int64 @@v27@@ ; __int64 @@v28@@ ; const char * @@v29@@ ; const char * @@v30@@ ; const char * * @@i@@ ; @@v9@@ = Number L ; @@v30@@ = Number L ; @@v29@@ = Number L ; @@v28@@ = Number L ; @@v27@@ = Number L ; @@v26@@ = Number L ; @@v25@@ = Number L ; @@v24@@ = Number ; @@v23@@ = Number ; @@v22@@ = Number L ; @@v21@@ = Number ; @@v18@@ = Number ; @@v17@@ = Number ; @@v16@@ = Number L ; @@v15@@ = Number L ; @@v14@@ = Number L ; @@v7@@ = Number L ; @@v6@@ = Number L ; @@s@@ = Number L ; @@v12@@ = Number ; @@v11@@ = Number ; @@v10@@ = Number L ; if ( ! bio_err ) bio_err = BIO_new_fp ( stderr , Number L ) ; if ( ( unsigned int ) load_config ( bio_err , Number L ) ) { @@v20@@ = Number ; @@v19@@ = Number ; ERR_load_crypto_strings ( ) ; OPENSSL_add_all_algorithms_noconf ( ) ; for ( @@i@@ = ( const char * * ) ( @@a2@@ + Number ) ; ! @@v12@@ && * @@i@@ && * * @@i@@ == Number ; ++ @@i@@ ) { if ( ! strcmp ( * @@i@@ , String ) ) { if ( @@i@@ [ Number ] ) { @@v22@@ = EVP_get_cipherbyname ( * ++ @@i@@ ) ; if ( ! @@v22@@ ) { BIO_printf ( bio_err , String , * @@i@@ ) ; @@v12@@ = Number ; } } else { @@v12@@ = Number ; } } else if ( ! strcmp ( * @@i@@ , String ) ) { if ( @@i@@ [ Number ] ) { @@v23@@ = OBJ_txt2nid ( * ++ @@i@@ ) ; if ( ! @@v23@@ ) { BIO_printf ( bio_err , String , * @@i@@ ) ; @@v12@@ = Number ; } } else { @@v12@@ = Number ; } } else if ( ! strcmp ( * @@i@@ , String ) ) { if ( @@i@@ [ Number ] ) @@v20@@ = str2fmt ( * ++ @@i@@ ) ; else @@v12@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { if ( @@i@@ [ Number ] ) @@v19@@ = str2fmt ( * ++ @@i@@ ) ; else @@v12@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { @@v24@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { @@v21@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { @@v17@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { @@v18@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { @@v18@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { @@v18@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { if ( ! @@i@@ [ Number ] ) goto LABEL_58 ; @@v28@@ = ( __int64 ) * ++ @@i@@ ; } else if ( ! strcmp ( * @@i@@ , String ) ) { if ( ! @@i@@ [ Number ] ) goto LABEL_58 ; @@v27@@ = ( __int64 ) * ++ @@i@@ ; } else if ( ! strcmp ( * @@i@@ , String ) ) { if ( ! @@i@@ [ Number ] ) goto LABEL_58 ; @@v10@@ = ( __int64 ) * ++ @@i@@ ; } else if ( ! strcmp ( * @@i@@ , String ) ) { if ( @@i@@ [ Number ] ) @@v30@@ = * ++ @@i@@ ; else @@v12@@ = Number ; } else if ( ! strcmp ( * @@i@@ , String ) ) { if ( @@i@@ [ Number ] ) @@v29@@ = * ++ @@i@@ ; else @@v12@@ = Number ; } else { @@v12@@ = Number ; } } if ( @@v12@@ ) { LABEL_58 : BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; BIO_printf ( bio_err , String ) ; goto LABEL_132 ; } @@v9@@ = setup_engine ( bio_err , @@v10@@ , Number L ) ; if ( ! ( unsigned int ) app_passwd ( bio_err , @@v28@@ , @@v27@@ , & @@v7@@ , & @@v6@@ ) ) { BIO_printf ( bio_err , String ) ; goto LABEL_132 ; } if ( @@v23@@ == Number && ! @@v22@@ ) @@v23@@ = Number ; if ( @@v30@@ ) { @@v26@@ = BIO_new_file ( @@v30@@ , String ) ; if ( ! @@v26@@ ) { BIO_printf ( bio_err , String , @@v30@@ ) ; goto LABEL_132 ; } } else { @@v26@@ = BIO_new_fp ( stdin , Number L ) ; } if ( @@v29@@ ) { @@v25@@ = BIO_new_file ( @@v29@@ , String ) ; if ( ! @@v25@@ ) { BIO_printf ( bio_err , String , @@v29@@ ) ; goto LABEL_132 ; } } else { @@v25@@ = BIO_new_fp ( stdout , Number L ) ; } if ( @@v24@@ ) { @@v14@@ = load_key ( bio_err , @@v30@@ , @@v20@@ , Number L , @@v7@@ , @@v9@@ , String ) ; if ( ! @@v14@@ ) goto LABEL_132 ; @@v15@@ = ( int * ) EVP_PKEY2PKCS8_broken ( @@v14@@ , @@v18@@ ) ; if ( ! @@v15@@ ) goto LABEL_75 ; if ( @@v17@@ ) { if ( @@v19@@ == Number ) { PEM_write_bio_PKCS8_PRIV_KEY_INFO ( @@v25@@ , @@v15@@ ) ; LABEL_92 : @@v11@@ = Number ; goto LABEL_132 ; } if ( @@v19@@ == Number ) { i2d_PKCS8_PRIV_KEY_INFO_bio ( @@v25@@ , @@v15@@ ) ; goto LABEL_92 ; } } else { if ( @@v6@@ ) { @@s@@ = @@v6@@ ; } else { @@s@@ = @@v8@@ ; if ( ( unsigned int ) EVP_read_pw_string ( @@v8@@ , Number L , String , Number L ) ) goto LABEL_132 ; } app_RAND_load_file ( Number L , bio_err , Number L ) ; v2 = strlen ( @@s@@ ) ; @@v16@@ = PKCS8_encrypt ( @@v23@@ , @@v22@@ , @@s@@ , v2 , Number L , Number L , @@v21@@ , @@v15@@ ) ; if ( ! @@v16@@ ) { BIO_printf ( bio_err , String ) ; ERR_print_errors ( bio_err ) ; goto LABEL_132 ; } app_RAND_write_file ( Number L , bio_err ) ; if ( @@v19@@ == Number ) { PEM_write_bio_PKCS8 ( @@v25@@ , @@v16@@ ) ; goto LABEL_92 ; } if ( @@v19@@ == Number ) { i2d_PKCS8_bio ( @@v25@@ , @@v16@@ ) ; goto LABEL_92 ; } } goto LABEL_130 ; } if ( @@v17@@ ) { if ( @@v20@@ == Number ) { @@v15@@ = ( int * ) PEM_read_bio_PKCS8_PRIV_KEY_INFO ( @@v26@@ , Number L , Number L , Number L ) ; } else { if ( @@v20@@ != Number ) goto LABEL_130 ; @@v15@@ = ( int * ) d2i_PKCS8_PRIV_KEY_INFO_bio ( @@v26@@ , Number L ) ; } } else { if ( @@v20@@ == Number ) { @@v16@@ = PEM_read_bio_PKCS8 ( @@v26@@ , Number L , Number L , Number L ) ; } else { if ( @@v20@@ != Number ) goto LABEL_130 ; @@v16@@ = d2i_PKCS8_bio ( @@v26@@ , Number L ) ; } if ( ! @@v16@@ ) { BIO_printf ( bio_err , String ) ; ERR_print_errors ( bio_err ) ; goto LABEL_132 ; } if ( @@v7@@ ) { @@s@@ = @@v7@@ ; } else { @@s@@ = @@v8@@ ; EVP_read_pw_string ( @@v8@@ , Number L , String , Number L ) ; } v3 = strlen ( @@s@@ ) ; @@v15@@ = ( int * ) PKCS8_decrypt ( @@v16@@ , @@s@@ , v3 ) ; } if ( ! @@v15@@ ) { BIO_printf ( bio_err , String ) ; ERR_print_errors ( bio_err ) ; goto LABEL_132 ; } @@v14@@ = EVP_PKCS82PKEY ( @@v15@@ ) ; if ( ! @@v14@@ ) { LABEL_75 : BIO_printf ( bio_err , String ) ; ERR_print_errors ( bio_err ) ; goto LABEL_132 ; } if ( * @@v15@@ ) { BIO_printf ( bio_err , String ) ; v4 = * @@v15@@ ; if ( * @@v15@@ == Number ) { BIO_printf ( bio_err , String ) ; goto LABEL_126 ; } if ( v4 > Number ) goto LABEL_125 ; if ( v4 == Number ) { BIO_printf ( bio_err , String ) ; goto LABEL_126 ; } if ( v4 > Number ) { LABEL_125 : BIO_printf ( bio_err , String ) ; goto LABEL_126 ; } if ( v4 == Number ) { BIO_printf ( bio_err , String ) ; } else { if ( v4 != Number ) goto LABEL_125 ; BIO_printf ( bio_err , String ) ; } } LABEL_126 : if ( @@v19@@ == Number ) { PEM_write_bio_PrivateKey ( @@v25@@ , @@v14@@ , Number L , Number L , Number L , Number L , @@v6@@ ) ; LABEL_131 : @@v11@@ = Number ; goto LABEL_132 ; } if ( @@v19@@ == Number ) { i2d_PrivateKey_bio ( @@v25@@ , @@v14@@ ) ; goto LABEL_131 ; } LABEL_130 : BIO_printf ( bio_err , String ) ; } LABEL_132 : X509_SIG_free ( @@v16@@ ) ; PKCS8_PRIV_KEY_INFO_free ( @@v15@@ ) ; EVP_PKEY_free ( @@v14@@ ) ; BIO_free_all ( @@v25@@ ) ; BIO_free ( @@v26@@ ) ; if ( @@v7@@ ) CRYPTO_free ( @@v7@@ ) ; if ( @@v6@@ ) CRYPTO_free ( @@v6@@ ) ; return @@v11@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v16", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s104"}, {"n": "v15", "t": {"T": 3, "t": "int"}, "location": "s112"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s120"}, {"n": "s", "t": {"T": 3, "t": "char"}, "location": "s128"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s136"}, {"n": "v10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s144"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s152"}, {"n": "v30", "t": {"T": 3, "t": "const char"}, "location": "s16"}, {"n": "v8", "t": {"T": 2, "n": 56, "s": 1, "t": "char"}, "location": "s208"}, {"n": "v7", "t": {"T": 3, "t": "char"}, "location": "s216"}, {"n": "v6", "t": {"T": 3, "t": "char"}, "location": "s224"}, {"n": "v29", "t": {"T": 3, "t": "const char"}, "location": "s24"}, {"n": "v28", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v27", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v26", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v25", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s56"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "v23", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s64"}, {"n": "v22", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v21", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s76"}, {"n": "i", "t": {"T": 3, "t": "const char *"}, "location": "s8"}, {"n": "v20", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s80"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s84"}, {"n": "v18", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s88"}, {"n": "v17", "t": {"T": 1, "n": "int", "s": 4}, "location": "s92"}]}