Function at 0x5e6bd0
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
push ebx
sub esp, 0x38
mov eax, dword [0x7ed96c]
test eax, eax
js 0x5e6c90
mov dword [esp + 8], 0x641
mov dword [esp + 4], str.engines_e_capi.c
mov dword [esp], 0x34
call sym._CRYPTO_zalloc
test eax, eax
je 0x5e6f93
mov dword [eax + 0x10], 1
mov dword [eax + 0x24], 3
mov ebx, 1
mov dword [eax + 8], 1
mov dword [eax + 0x1c], 0x1c000
mov dword [eax + 0x20], 1
mov dword [eax + 0x28], sym._cert_select_simple
mov dword [esp + 8], eax
mov eax, dword [0x7ed96c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sym._ENGINE_set_ex_data
lea eax, [esp + 0x2c]
mov dword [esp + 0x10], 0xf0000000
mov dword [esp + 0xc], 0x18
mov dword [esp + 8], str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
sub esp, 0x14
test eax, eax
jne 0x5e6d11
add esp, 0x38
mov eax, ebx
pop ebx
ret
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0xa
call sym._CRYPTO_get_ex_new_index
test eax, eax
mov dword [0x7ed96c], eax
jns 0x5e6d40
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e6ce0
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
mov dword [esp], eax
mov dword [esp + 0x10], 0x1e9
xor ebx, ebx
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x6a
call sym._ERR_put_error
add esp, 0x38
mov eax, ebx
pop ebx
ret
mov eax, dword [esp + 0x2c]
mov dword [0x9475a4], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
sub esp, 8
mov eax, ebx
add esp, 0x38
pop ebx
ret
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 3
call sym._CRYPTO_get_ex_new_index
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 9
mov dword [0x7ed960], eax
call sym._CRYPTO_get_ex_new_index
mov dword [0x7ed968], eax
call sym._RSA_PKCS1_OpenSSL
mov dword [esp], eax
mov ebx, eax
call sym._RSA_meth_get_pub_enc
mov dword [esp + 4], eax
mov eax, dword [0x9475ac]
mov dword [esp], eax
call sym._RSA_meth_set_pub_enc
test eax, eax
je 0x5e6ccd
mov dword [esp], ebx
call sym._RSA_meth_get_pub_dec
mov dword [esp + 4], eax
mov eax, dword [0x9475ac]
mov dword [esp], eax
call sym._RSA_meth_set_pub_dec
test eax, eax
je 0x5e6ccd
mov eax, dword [0x9475ac]
mov dword [esp + 4], sym._capi_rsa_priv_enc
mov dword [esp], eax
call sym._RSA_meth_set_priv_enc
test eax, eax
je 0x5e6ccd
mov eax, dword [0x9475ac]
mov dword [esp + 4], sym._capi_rsa_priv_dec
mov dword [esp], eax
call sym._RSA_meth_set_priv_dec
test eax, eax
je 0x5e6ccd
mov dword [esp], ebx
call sym._RSA_meth_get_mod_exp
mov dword [esp + 4], eax
mov eax, dword [0x9475ac]
mov dword [esp], eax
call sym._RSA_meth_set_mod_exp
test eax, eax
je 0x5e6ccd
mov dword [esp], ebx
call sym._RSA_meth_get_bn_mod_exp
mov dword [esp + 4], eax
mov eax, dword [0x9475ac]
mov dword [esp], eax
call sym._RSA_meth_set_bn_mod_exp
test eax, eax
je 0x5e6ccd
mov eax, dword [0x9475ac]
mov dword [esp + 4], sym._capi_rsa_free
mov dword [esp], eax
call sym._RSA_meth_set_finish
test eax, eax
je 0x5e6ccd
mov eax, dword [0x9475ac]
mov dword [esp + 4], sym._capi_rsa_sign
mov dword [esp], eax
call sym._RSA_meth_set_sign
test eax, eax
je 0x5e6ccd
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 7
call sym._CRYPTO_get_ex_new_index
mov dword [0x7ed964], eax
call sym._DSA_OpenSSL
mov ebx, eax
mov eax, dword [0x9475a8]
mov dword [esp + 4], sym._capi_dsa_do_sign
mov dword [esp], eax
call sym._DSA_meth_set_sign
test eax, eax
je 0x5e6ccd
mov dword [esp], ebx
call sym._DSA_meth_get_verify
mov dword [esp + 4], eax
mov eax, dword [0x9475a8]
mov dword [esp], eax
call sym._DSA_meth_set_verify
test eax, eax
je 0x5e6ccd
mov eax, dword [0x9475a8]
mov dword [esp + 4], sym._capi_dsa_free
mov dword [esp], eax
call sym._DSA_meth_set_finish
test eax, eax
je 0x5e6ccd
mov dword [esp], ebx
call sym._DSA_meth_get_mod_exp
mov dword [esp + 4], eax
mov eax, dword [0x9475a8]
mov dword [esp], eax
call sym._DSA_meth_set_mod_exp
test eax, eax
je 0x5e6ccd
mov dword [esp], ebx
call sym._DSA_meth_get_bn_mod_exp
mov dword [esp + 4], eax
mov eax, dword [0x9475a8]
mov dword [esp], eax
call sym._DSA_meth_set_bn_mod_exp
test eax, eax
je 0x5e6ccd
jmp 0x5e6be1
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e6fa6
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
mov dword [esp + 0x10], 0x644
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x65
mov dword [esp], eax
call sym._ERR_put_error
jmp 0x5e6ccd