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

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x28], r9
lea rax, [rbp - 8]
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 0x18
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
call rax
test eax, eax
jne 0x14000170e
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
lea rdx, str.CryptAcquireContext_failed._n
mov rcx, rax
call sym.fprintf
mov ecx, 1
call sym.exit
mov rax, qword [rbp - 8]
lea rdx, [rbp - 0x18]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8d, 0
mov edx, 0x800c
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
call rax
test eax, eax
jne 0x140001763
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
lea rdx, str.CryptCreateHash_failed._n
mov rcx, rax
call sym.fprintf
mov ecx, 1
call sym.exit
mov rax, qword [rbp - 0x18]
mov rdx, qword [rbp + 0x30]
mov r9d, 0
mov r8d, 0x20
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptHashData]
call rax
test eax, eax
jne 0x1400017ae
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
lea rdx, str.CryptHashData_failed._n
mov rcx, rax
call sym.fprintf
mov ecx, 1
call sym.exit
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 8]
lea rdx, [rbp - 0x10]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8, rcx
mov edx, 0x6610
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
call rax
test eax, eax
jne 0x140001804
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
lea rdx, str.CryptDeriveKey_failed._n
mov rcx, rax
call sym.fprintf
mov ecx, 1
call sym.exit
mov rax, qword [rbp - 0x10]
mov rdx, qword [rbp + 0x38]
mov r9d, 0
mov r8, rdx
mov edx, 1
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
call rax
test eax, eax
jne 0x140001851
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
lea rdx, str.CryptSetKeyParam__IV__failed._n
mov rcx, rax
call sym.fprintf
mov ecx, 1
call sym.exit
mov rdx, qword [rbp + 0x18]
mov rax, qword [rbp + 0x20]
mov r8, rdx
mov rdx, qword [rbp + 0x10]
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x18]
mov qword [rax], rdx
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
mov edx, eax
mov rax, qword [rbp - 0x10]
mov dword [rsp + 0x30], edx
mov rdx, qword [rbp + 0x28]
mov qword [rsp + 0x28], rdx
mov rdx, qword [rbp + 0x20]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8d, 1
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptEncrypt]
call rax
test eax, eax
jne 0x1400018de
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
lea rdx, str.CryptEncrypt_failed._n
mov rcx, rax
call sym.fprintf
mov ecx, 1
call sym.exit
mov rax, qword [rbp - 0x10]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
call rax
mov rax, qword [rbp - 0x18]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call rax
mov rax, qword [rbp - 8]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call rax
nop
add rsp, 0x60
pop rbp
ret