Function at 0x140001a80
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using aes via winapi
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov qword [rbp + 0xf], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rdi
mov rax, qword [0x14000d010]
xor rax, rsp
mov qword [rbp + 0x4f], rax
mov rdi, rdx
mov qword [rbp + 0x17], 0
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 0x18
xor r8d, r8d
xor edx, edx
lea rcx, [rbp + 0x17]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x140001c5b
mov rbx, qword [rbp + 0x17]
mov qword [rbp + 0x1f], 0
mov qword [rbp + 0x2f], 0
lea rax, [rbp + 0x1f]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x800c
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x140001c7c
lea rdx, [0x14000d078]
cmp qword [0x14000d090], 0x10
cmovae rdx, qword [0x14000d078]
xor r9d, r9d
mov r8d, dword [0x14000d088]
mov rcx, qword [rbp + 0x1f]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x140001c9d
lea rax, [rbp + 0x2f]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rbp + 0x1f]
mov edx, 0x6610
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
je 0x140001cc8
mov dword [rbp + 0x27], 2
xor r9d, r9d
lea r8, [rbp + 0x27]
lea edx, [r9 + 4]
mov rcx, qword [rbp + 0x2f]
call qword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
test eax, eax
je 0x140001c3a
mov rcx, qword [rbp + 0x1f]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
xor eax, eax
mov qword [rbp + 0x37], rax
mov qword [rbp + 0x3f], rax
mov qword [rbp + 0x47], rax
mov r9, rdi
mov r8, qword [rbp + 0x2f]
lea rcx, [rbp + 0x37]
call fcn.1400014d0
nop
lea rdx, [rbp + 0x37]
call fcn.140001780
mov rcx, qword [rbp + 0x2f]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
xor edx, edx
mov rcx, qword [rbp + 0x17]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
nop
mov rcx, qword [rbp + 0x37]
test rcx, rcx
je 0x140001c19
mov rdx, qword [rbp + 0x47]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001c14
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001c14
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140006000
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.140005fa0
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
lea rdx, str.CryptSetKeyParam_failed_to_set_ECB_mode
lea rcx, [rbp - 9]
call fcn.1400012f0
lea rdx, [0x14000a9b8]
lea rcx, [rbp - 9]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rdx, str.CryptAcquireContext_failed
lea rcx, [rbp - 9]
call fcn.1400012f0
lea rdx, [0x14000a9b8]
lea rcx, [rbp - 9]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rdx, str.CryptCreateHash_failed
lea rcx, [rbp - 9]
call fcn.1400012f0
lea rdx, [0x14000a9b8]
lea rcx, [rbp - 9]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
mov rcx, qword [rbp + 0x1f]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
lea rdx, str.CryptHashData_failed
lea rcx, [rbp - 9]
call fcn.1400012f0
lea rdx, [0x14000a9b8]
lea rcx, [rbp - 9]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
mov rcx, qword [rbp + 0x1f]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
lea rdx, str.CryptDeriveKey_failed
lea rcx, [rbp - 9]
call fcn.1400012f0
lea rdx, [0x14000a9b8]
lea rcx, [rbp - 9]
call sub.VCRUNTIME140.dll__CxxThrowException
int3