Function at 0x14000527a
Capabilities:
Create new key via cryptacquirecontext
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x90
mov dword [rbp + 0x10], ecx
mov qword [rbp + 0x18], rdx
mov dword [rbp + 0x20], r8d
mov qword [rbp + 0x28], r9
mov dword [rbp - 4], 0
mov dword [rbp - 0x1c], 0
mov eax, dword [rbp + 0x10]
mov dword [rbp - 0x60], eax
mov qword [rbp - 0x58], 0
mov dword [rbp - 0x50], 0
mov qword [rbp - 0x48], 0
mov dword [rbp - 0x40], 0
mov eax, dword [rbp + 0x20]
add eax, 0xc
mov dword [rbp - 8], eax
lea rax, [rbp - 0x28]
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 0x18
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
call rax
test eax, eax
je 0x14000551f
mov eax, dword [rbp - 8]
mov rdx, rax
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_LocalAlloc]
call rax
mov qword [rbp - 0x10], rax
cmp qword [rbp - 0x10], 0
je 0x14000550a
mov rax, qword [rbp - 0x10]
mov byte [rax], 8
mov rax, qword [rbp - 0x10]
mov byte [rax + 1], 2
mov rax, qword [rbp - 0x10]
mov word [rax + 2], 0
mov rax, qword [rbp - 0x10]
mov dword [rax + 4], 0x6602
mov rax, qword [rbp - 0x10]
mov edx, dword [rbp + 0x20]
mov dword [rax + 8], edx
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 8]
mov edx, eax
mov rax, qword [rbp - 0x10]
lea rcx, [rax + 0xc]
mov rax, qword [rbp + 0x18]
mov r8, rdx
mov rdx, rax
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp - 0x28]
mov r8d, dword [rbp - 8]
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x100
mov r9d, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptImportKey]
call rax
test eax, eax
je 0x1400054fa
mov rcx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
lea rdx, [rbp - 0x38]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8, rcx
mov edx, 0x8009
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
call rax
test eax, eax
je 0x1400054ea
mov rax, qword [rbp - 0x38]
lea rdx, [rbp - 0x60]
mov r9d, 0
mov r8, rdx
mov edx, 5
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
call rax
test eax, eax
je 0x1400054da
mov rax, qword [rbp - 0x38]
mov ecx, dword [rbp + 0x30]
mov rdx, qword [rbp + 0x28]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptHashData]
call rax
test eax, eax
je 0x1400054da
mov rax, qword [rbp - 0x38]
lea rdx, [rbp - 0x1c]
mov dword [rsp + 0x20], 0
mov r9, rdx
mov r8d, 0
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
call rax
test eax, eax
je 0x1400054da
mov eax, dword [rbp - 0x1c]
mov eax, eax
mov rdx, rax
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_LocalAlloc]
call rax
mov qword [rbp - 0x18], rax
cmp qword [rbp - 0x18], 0
je 0x1400054da
mov rax, qword [rbp - 0x38]
lea rcx, [rbp - 0x1c]
mov rdx, qword [rbp - 0x18]
mov dword [rsp + 0x20], 0
mov r9, rcx
mov r8, rdx
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
call rax
mov dword [rbp - 4], eax
mov edx, dword [rbp - 0x1c]
mov eax, dword [rbp + 0x40]
cmp edx, eax
cmovbe eax, edx
mov ecx, eax
mov rdx, qword [rbp - 0x18]
mov rax, qword [rbp + 0x38]
mov r8, rcx
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp - 0x18]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov rax, qword [rbp - 0x38]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call rax
mov rax, qword [rbp - 0x30]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
call rax
mov rax, qword [rbp - 0x10]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov rax, qword [rbp - 0x28]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call rax
mov eax, dword [rbp - 4]
add rsp, 0x90
pop rbp
ret