Function at 0x14000191a
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, 0xb0
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x28], r9
lea rax, [rbp - 0x20]
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 0x140001989
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 - 0x20]
lea rdx, [rbp - 0x30]
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 0x1400019de
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 - 0x30]
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 0x140001a29
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 - 0x30]
mov rax, qword [rbp - 0x20]
lea rdx, [rbp - 0x28]
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 0x140001a7f
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 - 0x28]
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 0x140001acc
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 qword [rbp - 8], 0
mov rax, qword [rbp + 0x18]
mov qword [rbp - 0x10], rax
jmp 0x140001bb4
mov eax, 0x40
cmp qword [rbp - 0x10], 0x40
cmovbe rax, qword [rbp - 0x10]
mov qword [rbp - 0x18], rax
mov rdx, qword [rbp + 0x10]
mov rax, qword [rbp - 8]
add rdx, rax
mov rcx, qword [rbp - 0x18]
lea rax, [rbp - 0x70]
mov r8, rcx
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp - 0x18]
mov dword [rbp - 0x74], eax
mov rax, qword [rbp - 0x28]
lea rdx, [rbp - 0x74]
mov qword [rsp + 0x28], rdx
lea rdx, [rbp - 0x70]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8d, 1
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
call rax
test eax, eax
jne 0x140001b77
mov ecx, 2
mov rax, qword [dbg.__acrt_iob_func]
call rax
lea rdx, str.CryptDecrypt_failed._n
mov rcx, rax
call sym.fprintf
mov ecx, 1
call sym.exit
mov eax, dword [rbp - 0x74]
mov r8d, eax
mov rdx, qword [rbp + 0x20]
mov rax, qword [rbp - 8]
lea rcx, [rdx + rax]
lea rax, [rbp - 0x70]
mov rdx, rax
call sym.memcpy
mov eax, dword [rbp - 0x74]
mov eax, eax
add qword [rbp - 8], rax
mov rax, qword [rbp - 0x18]
sub qword [rbp - 0x10], rax
mov ecx, 0x1f4
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
cmp qword [rbp - 0x10], 0
jne 0x140001ae1
mov rax, qword [rbp + 0x28]
mov rdx, qword [rbp - 8]
mov qword [rax], rdx
mov rax, qword [rbp - 0x28]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
call rax
mov rax, qword [rbp - 0x30]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call rax
mov rax, qword [rbp - 0x20]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call rax
nop
add rsp, 0xb0
pop rbp
ret