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

Disassembly:
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x40
xor r14d, r14d
mov rsi, r9
mov r13d, r8d
mov r12d, edx
mov rbp, rcx
mov dword [rsp + 0x70], r14d
mov rdi, r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
test rcx, rcx
jne 0x180024c01
mov eax, 0x80070057
jmp 0x180024e49
test r9, r9
je 0x180024bf7
mov qword [rsp + 0x78], rbx
mov rbx, qword [rsp + 0x90]
test rbx, rbx
jne 0x180024c22
mov eax, 0x80070057
jmp 0x180024e44
lea rcx, [rsp + 0x38]
mov r9d, 0x18
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 0xf0000000
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x180024c7e
call qword [sym.imp.KERNEL32.dll_GetLastError]
bt eax, 0x1d
mov ebx, eax
jae 0x180024c68
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0xa0070000
jmp 0x180024e09
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0x80070000
jmp 0x180024e09
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
xor r9d, r9d
xor r8d, r8d
mov edx, r13d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x180024cda
call qword [sym.imp.KERNEL32.dll_GetLastError]
bt eax, 0x1d
mov ebx, eax
jae 0x180024cc4
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0xa0070000
jmp 0x180024e09
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0x80070000
jmp 0x180024e09
mov rcx, qword [rsp + 0x30]
xor r9d, r9d
mov r8d, r12d
mov rdx, rbp
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x180024d2c
call qword [sym.imp.KERNEL32.dll_GetLastError]
bt eax, 0x1d
mov ebx, eax
jae 0x180024d16
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0xa0070000
jmp 0x180024e09
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0x80070000
jmp 0x180024e09
mov rcx, qword [rsp + 0x30]
xor r8d, r8d
lea r9, [rsp + 0x70]
lea edx, [r8 + 2]
mov dword [rsp + 0x20], r14d
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x180024d86
call qword [sym.imp.KERNEL32.dll_GetLastError]
bt eax, 0x1d
mov ebx, eax
jae 0x180024d70
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0xa0070000
jmp 0x180024e09
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0x80070000
jmp 0x180024e09
mov ecx, dword [rsp + 0x70]
call fcn.180036df8
mov rdi, rax
test rax, rax
jne 0x180024d9e
mov ebx, 0x8007000e
jmp 0x180024e09
mov r8d, dword [rsp + 0x70]
xor edx, edx
mov rcx, rax
call fcn.180037390
mov rcx, qword [rsp + 0x30]
lea r9, [rsp + 0x70]
mov r8, rdi
mov edx, 2
mov dword [rsp + 0x20], r14d
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x180024dfa
call qword [sym.imp.KERNEL32.dll_GetLastError]
bt eax, 0x1d
mov ebx, eax
jae 0x180024deb
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0xa0070000
jmp 0x180024e09
test eax, eax
jle 0x180024e09
movzx ebx, ax
or ebx, 0x80070000
jmp 0x180024e09
mov eax, dword [rsp + 0x70]
mov qword [rsi], rdi
mov rdi, r14
mov dword [rbx], eax
mov ebx, r14d
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x180024e1e
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov qword [rsp + 0x30], r14
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180024e35
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov qword [rsp + 0x38], r14
test rdi, rdi
je 0x180024e42
mov rcx, rdi
call fcn.18003747c
mov eax, ebx
mov rbx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
add rsp, 0x40
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret