{"name": "EVP_MD_CTX_copy", "code": "__int64 __fastcall EVP_MD_CTX_copy ( _QWORD * @@a1@@ , __int64 @@a2@@ ) { EVP_MD_CTX_reset ( @@a1@@ ) ; return EVP_MD_CTX_copy_ex ( @@a1@@ , @@a2@@ ) ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}]}
{"name": "EVP_MD_CTX_reset", "code": "__int64 __fastcall EVP_MD_CTX_reset ( _QWORD * @@a1@@ ) { if ( ! @@a1@@ ) return Number L ; if ( * @@a1@@ && * ( _QWORD * ) ( * @@a1@@ + Number L ) && ! ( unsigned int ) EVP_MD_CTX_test_flags ( @@a1@@ , Number L ) ) ( * ( void ( __fastcall * * ) ( _QWORD * ) ) ( * @@a1@@ + Number L ) ) ( @@a1@@ ) ; if ( * @@a1@@ && * ( _DWORD * ) ( * @@a1@@ + Number L ) && @@a1@@ [ Number ] && ! ( unsigned int ) EVP_MD_CTX_test_flags ( @@a1@@ , Number L ) ) CRYPTO_clear_free ( @@a1@@ [ Number ] , * ( int * ) ( * @@a1@@ + Number L ) , String , Number L ) ; if ( ! ( unsigned int ) EVP_MD_CTX_test_flags ( @@a1@@ , Number L ) ) EVP_PKEY_CTX_free ( @@a1@@ [ Number ] ) ; ENGINE_finish ( @@a1@@ [ Number ] ) ; OPENSSL_cleanse ( @@a1@@ , Number L ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}]} {"name": "EVP_MD_CTX_copy_ex", "code": "__int64 __fastcall EVP_MD_CTX_copy_ex ( __int64 @@a1@@ , _QWORD * @@a2@@ ) { __int64 @@result@@ ; __int64 @@v3@@ ; if ( ! @@a2@@ || ! * @@a2@@ ) { ERR_put_error ( Number L , Number L , Number L , String , Number L ) ; return Number L ; } if ( @@a2@@ [ Number ] && ! ( unsigned int ) ENGINE_init ( @@a2@@ [ Number ] ) ) { ERR_put_error ( Number L , Number L , Number L , String , Number L ) ; return Number L ; } if ( * ( _QWORD * ) @@a1@@ == * @@a2@@ ) { @@v3@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; EVP_MD_CTX_set_flags ( @@a1@@ , Number L ) ; } else { @@v3@@ = Number L ; } EVP_MD_CTX_reset ( ( _QWORD * ) @@a1@@ ) ; memcpy ( ( void * ) @@a1@@ , @@a2@@ , Number ) ; EVP_MD_CTX_clear_flags ( @@a1@@ , Number L ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number L ; if ( @@a2@@ [ Number ] && * ( _DWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ) { if ( @@v3@@ ) { * ( _QWORD * ) ( @@a1@@ + Number ) = @@v3@@ ; } else { * ( _QWORD * ) ( @@a1@@ + Number ) = CRYPTO_malloc ( * ( int * ) ( * ( _QWORD * ) @@a1@@ + Number L ) , String , Number L ) ; if ( ! * ( _QWORD * ) ( @@a1@@ + Number ) ) { ERR_put_error ( Number L , Number L , Number L , String , Number L ) ; return Number L ; } } memcpy ( * ( void * * ) ( @@a1@@ + Number ) , ( const void * ) @@a2@@ [ Number ] , * ( int * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ) ; } * ( _QWORD * ) ( @@a1@@ + Number ) = @@a2@@ [ Number ] ; if ( ! @@a2@@ [ Number ] || ( * ( _QWORD * ) ( @@a1@@ + Number ) = EVP_PKEY_CTX_dup ( @@a2@@ [ Number ] ) ) != Number L ) { if ( * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) ) @@result@@ = ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD * ) ) ( * ( _QWORD * ) @@a1@@ + Number L ) ) ( @@a1@@ , @@a2@@ ) ; else @@result@@ = Number L ; } else { EVP_MD_CTX_reset ( ( _QWORD * ) @@a1@@ ) ; @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s8"}]}