Function at 0x4457b0
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
push r13
push r12
sub rsp, 0x48
mov edx, dword [0x0072612c]
mov r12, rcx
test edx, edx
js 0x445868
mov r8d, 0x658
lea rdx, str..._openssl_3.1.1_engines_e_capi.c
mov ecx, 0x60
call sym.CRYPTO_zalloc
mov r8, rax
test rax, rax
je 0x445b35
movabs rax, 0x10001c000
mov dword [r8 + 0x20], 1
mov edx, dword [0x0072612c]
mov rcx, r12
mov qword [r8 + 0x38], rax
lea rax, [sym.cert_select_simple]
mov dword [r8 + 0x10], 1
mov dword [r8 + 0x40], 3
mov qword [r8 + 0x48], rax
call sym.ENGINE_set_ex_data
xor edx, edx
lea rcx, [rsp + 0x38]
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 0x18
lea r8, str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x445b10
mov eax, 1
add rsp, 0x48
pop r12
pop r13
ret
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xa
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call sym.CRYPTO_get_ex_new_index
mov dword [0x0072612c], eax
test eax, eax
js 0x44590d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 3
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call sym.CRYPTO_get_ex_new_index
xor edx, edx
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x28], 0
mov ecx, 9
mov qword [rsp + 0x20], 0
mov dword [0x00726120], eax
call sym.CRYPTO_get_ex_new_index
mov dword [0x00726128], eax
call sym.RSA_PKCS1_OpenSSL
mov rcx, rax
mov r13, rax
call sym.RSA_meth_get_pub_enc
mov rcx, qword [0x00828400]
mov rdx, rax
call sym.RSA_meth_set_pub_enc
test eax, eax
jne 0x445970
mov eax, dword [0x0082840c]
test eax, eax
je 0x445b00
call sym.ERR_new
lea r8, str.ERR_CAPI_error
mov edx, 0x5c
lea rcx, str..._openssl_3.1.1_engines_e_capi_err.c
call sym.ERR_set_debug
mov ecx, dword [0x0082840c]
xor r8d, r8d
mov edx, 0xc0100
call sym.ERR_set_error
xor r8d, r8d
mov edx, 0x1ec
lea rcx, str..._openssl_3.1.1_engines_e_capi.c
call sym.ERR_set_debug
xor eax, eax
add rsp, 0x48
pop r12
pop r13
ret
mov rcx, r13
call sym.RSA_meth_get_pub_dec
mov rcx, qword [0x00828400]
mov rdx, rax
call sym.RSA_meth_set_pub_dec
test eax, eax
je 0x44590d
mov rcx, qword [0x00828400]
lea rdx, [sym.capi_rsa_priv_enc]
call sym.RSA_meth_set_priv_enc
test eax, eax
je 0x44590d
mov rcx, qword [0x00828400]
lea rdx, [sym.capi_rsa_priv_dec]
call sym.RSA_meth_set_priv_dec
test eax, eax
je 0x44590d
mov rcx, r13
call sym.RSA_meth_get_mod_exp
mov rcx, qword [0x00828400]
mov rdx, rax
call sym.RSA_meth_set_mod_exp
test eax, eax
je 0x44590d
mov rcx, r13
call sym.RSA_meth_get_bn_mod_exp
mov rcx, qword [0x00828400]
mov rdx, rax
call sym.RSA_meth_set_bn_mod_exp
test eax, eax
je 0x44590d
mov rcx, qword [0x00828400]
lea rdx, [sym.capi_rsa_free]
call sym.RSA_meth_set_finish
test eax, eax
je 0x44590d
mov rcx, qword [0x00828400]
lea rdx, [sym.capi_rsa_sign]
call sym.RSA_meth_set_sign
test eax, eax
je 0x44590d
xor edx, edx
xor r9d, r9d
xor r8d, r8d
mov ecx, 7
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call sym.CRYPTO_get_ex_new_index
mov dword [0x00726124], eax
call sym.DSA_OpenSSL
mov rcx, qword [0x008283f8]
lea rdx, [sym.capi_dsa_do_sign]
mov r13, rax
call sym.DSA_meth_set_sign
test eax, eax
je 0x44590d
mov rcx, r13
call sym.DSA_meth_get_verify
mov rcx, qword [0x008283f8]
mov rdx, rax
call sym.DSA_meth_set_verify
test eax, eax
je 0x44590d
mov rcx, qword [0x008283f8]
lea rdx, [sym.capi_dsa_free]
call sym.DSA_meth_set_finish
test eax, eax
je 0x44590d
mov rcx, r13
call sym.DSA_meth_get_mod_exp
mov rcx, qword [0x008283f8]
mov rdx, rax
call sym.DSA_meth_set_mod_exp
test eax, eax
je 0x44590d
mov rcx, r13
call sym.DSA_meth_get_bn_mod_exp
mov rcx, qword [0x008283f8]
mov rdx, rax
call sym.DSA_meth_set_bn_mod_exp
test eax, eax
jne 0x4457c9
jmp 0x44590d
call sym.ERR_get_next_error_library
mov dword [0x0082840c], eax
jmp 0x44591b
mov rcx, qword [rsp + 0x38]
xor edx, edx
mov dword [0x008283f0], 1
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, 1
add rsp, 0x48
pop r12
pop r13
ret
mov edx, 0x65b
mov ecx, 0xc0100
call sym.ERR_CAPI_error.constprop.0
jmp 0x44590d