Function at 0x180005ac8
Capabilities:
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov r14, qword [rbp + 0x58]
mov rbx, rcx
xor r15d, r15d
mov dword [rbp - 0x34], 0x20
lea rcx, [rbp - 0x48]
mov qword [rbp - 0x40], r15
mov rsi, r9
mov dword [rbp - 0x48], 0x18
mov rdi, rdx
mov dword [rbp - 0x44], 0xf0000000
call fcn.1800058c8
test rax, rax
jne 0x180005b27
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x180005cde
jmp 0x180005cd6
mov rax, qword [rbp - 0x40]
mov rcx, r15
mov qword [rbp - 0x50], rcx
test rax, rax
je 0x180005b3c
mov rdx, rax
jmp 0x180005b50
lea rcx, [rbp - 0x48]
call fcn.1800058c8
mov rcx, qword [rbp - 0x50]
mov rdx, rax
mov rax, qword [rbp - 0x40]
test rdx, rdx
je 0x180005cbb
mov r9d, 0x10
lea rdx, [rbp - 0x48]
mov r8, rdi
lea rcx, [rbp - 0x50]
call fcn.180005a18
test eax, eax
mov rax, qword [rbp - 0x40]
jne 0x180005cb7
mov rdi, qword [rbp - 0x50]
test rax, rax
jne 0x180005b8d
lea rcx, [rbp - 0x48]
call fcn.1800058c8
xor r9d, r9d
mov qword [rsp + 0x20], rbx
mov r8, rdi
mov edx, 0x8009
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x180005bdf
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rbp - 0x50]
mov ebx, eax
test rcx, rcx
je 0x180005bc5
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov qword [rbp - 0x50], r15
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x180005ce1
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x180005ce1
xor edx, edx
lea rcx, [rbp - 0x30]
lea r8d, [rdx + 0x28]
call sub.msvcrt.dll_memset
mov rcx, qword [rbx]
lea r8, [rbp - 0x30]
xor r9d, r9d
mov dword [rbp - 0x30], 0x800c
lea edx, [r9 + 5]
call qword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
test eax, eax
je 0x180005baa
mov r8d, dword [rbp + 0x50]
xor r9d, r9d
mov rcx, qword [rbx]
mov rdx, rsi
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x180005baa
mov rcx, qword [rbx]
lea r9, [rbp - 0x38]
xor r8d, r8d
mov dword [rbp - 0x38], r15d
mov dword [rsp + 0x20], r15d
lea edi, [r8 + 2]
mov edx, edi
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x180005baa
mov eax, dword [rbp - 0x34]
cmp dword [rbp - 0x38], eax
je 0x180005c6f
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x180005b15
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov qword [rbp - 0x50], r15
jmp 0x180005b15
mov rcx, qword [rbx]
lea r9, [rbp - 0x34]
mov r8, r14
mov dword [rsp + 0x20], r15d
mov edx, edi
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x180005baa
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x180005ca1
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov qword [rbp - 0x50], r15
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x180005cb2
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ebx, r15d
jmp 0x180005ce1
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x180005cce
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x50], r15
test rax, rax
je 0x180005cde
mov rcx, rax
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
or ebx, 0xffffffff
mov eax, ebx
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret