Function at 0x1400aaa86
Capabilities:
Create new key via cryptacquirecontext
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x80
mov r14d, edx
mov rsi, rcx
test r8, r8
je 0x1400aaaeb
mov dword [rsp + 0x40], 0
mov eax, dword [r8 + 0x18]
test eax, eax
je 0x1400aaaf8
add r8, 0x1c
xor ecx, ecx
xor edx, edx
mov ebp, edx
lea rdi, [r8 + rbp]
movdqu xmm0, xmmword [rsi + 4]
movdqu xmm1, xmmword [r8 + rbp]
pcmpeqb xmm1, xmm0
pmovmskb ebp, xmm1
cmp ebp, 0xffff
je 0x1400aaaff
inc ecx
mov dword [rsp + 0x40], ecx
mov ebp, dword [rdi + 0x14]
add edx, ebp
add edx, 0x18
cmp ecx, eax
jb 0x1400aaab6
jmp 0x1400aaaf8
mov rdi, r9
mov ebp, 0x10
test r9, r9
jne 0x1400aab06
xor ebx, ebx
jmp 0x1400aacc8
mov ebp, dword [rdi + 0x14]
add rdi, 0x18
mov dword [rsp + 0x44], ebp
mov dword [rsp + 0x20], 0xf0000000
xor ebx, ebx
lea rcx, [rsp + 0x58]
xor edx, edx
xor r8d, r8d
mov r9d, Ordinal_26
call qword [sym.imp.advapi32.dll_CryptAcquireContextW]
test eax, eax
je 0x1400aacc8
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor ebx, ebx
mov edx, 0x800c
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.advapi32.dll_CryptCreateHash]
test eax, eax
je 0x1400aacbb
mov rcx, qword [rsp + 0x48]
mov rdx, rdi
mov r8d, ebp
xor r9d, r9d
call qword [sym.imp.advapi32.dll_CryptHashData]
mov dword [rsp + 0x40], 0
lea rdi, [rsi + 0x1c]
mov ebx, 0xffffffff
mov rbp, qword [sym.imp.advapi32.dll_CryptHashData]
mov rcx, qword [rsp + 0x48]
mov rdx, rdi
mov r8d, Ordinal_36
xor r9d, r9d
call rbp
lea eax, [rbx + 2]
mov dword [rsp + 0x40], eax
inc ebx
cmp ebx, 0x3e7
jb 0x1400aab88
lea rdi, [rsp + 0x44]
mov dword [rdi], Ordinal_36
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0x60]
mov edx, 2
mov r9, rdi
call qword [sym.imp.advapi32.dll_CryptGetHashParam]
xor ebx, ebx
test eax, eax
je 0x1400aacb0
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], 0
lea r8, [rsp + 0x60]
mov edx, 0x6610
mov r9d, Ordinal_36
call fcn.140006d05
test eax, eax
je 0x1400aac76
lea r8, [rsp + 0x40]
mov dword [r8], 2
mov rcx, qword [rsp + 0x50]
mov edx, 4
xor r9d, r9d
call qword [sym.imp.advapi32.dll_CryptSetKeyParam]
test eax, eax
je 0x1400aac8c
add r14d, 0xffffffc4
mov dword [rsp + 0x44], r14d
add rsi, 0x3c
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rsi
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.advapi32.dll_CryptDecrypt]
mov ebx, eax
test eax, eax
jne 0x1400aaca5
lea rsi, str.6s_s_s_s_sSsSsHsSs0s
jmp 0x1400aac93
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x14015f9c0]
mov edx, eax
call fcn.140016430
jmp 0x1400aacb0
lea rsi, [0x14015f970]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rsi
mov edx, eax
call fcn.140016430
xor ebx, ebx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.advapi32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.advapi32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x58]
xor edx, edx
call qword [sym.imp.advapi32.dll_CryptReleaseContext]
mov eax, ebx
add rsp, 0x80
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret