Function at 0x1400ee540
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x70
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x98], rbx
mov rdi, r8
mov rbx, rdx
cmp qword [0x1401e1ea0], 0
jne 0x1400ee5bf
mov edx, MsiPreviewDialogW
lea rcx, [0x140161dc8]
call qword [sym.imp.MSVCR120.dll_strrchr]
test rax, rax
je 0x1400ee58a
inc rax
jmp 0x1400ee591
lea rax, [0x140161dc8]
mov rdx, rax
lea rcx, [0x1401e26e8]
call fcn.140005f30
shl rax, 0x34
mov ecx, dword [0x1401e1ea8]
or rcx, rax
movabs rax, 0x42500000000
or rax, rcx
jmp 0x1400ee7ee
mov rax, qword [r8]
mov qword [r8 + 8], rax
cmp qword [rdx + 0x10], 0
je 0x1400ee7d3
xor r14d, r14d
mov qword [rsp + 0x40], r14
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [0x1401e1ea0]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x1400ee624
call fcn.1400ee500
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
or rbx, rcx
movabs rax, 0x62500000000
or rax, rbx
jmp 0x1400ee7ee
mov rsi, qword [rsp + 0x40]
mov ecx, 0x18
call qword [sym.imp.MSVCR120.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1400ee663
lea rcx, vtable.appv::utility::scope_guard_func.0
mov qword [rax], rcx
lea rcx, vtable.appv::utility::scope_guard_func_impl_class_std::_Bind_1__int__int____cdecl__const__unsigned_long_long_unsigned___int64____unsigned_long_long_unsigned___int64_____ptr64__.0
mov qword [rax], rcx
mov rcx, qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rsi
jmp 0x1400ee666
mov rax, r14
mov qword [rsp + 0x48], rax
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x50], rax
mov ecx, 0xffffffff
cmp rax, rcx
jbe 0x1400ee697
mov dword [rsp + 0x30], 1
lea rdx, [0x1401d1a68]
lea rcx, [rsp + 0x30]
call sub.MSVCR120.dll__CxxThrowException
mov dword [rsp + 0x38], eax
mov ecx, eax
add rcx, rcx
mov qword [rsp + 0x60], rcx
mov rax, rcx
shr rax, 0x20
test eax, eax
je 0x1400ee6c9
mov dword [rsp + 0x34], 1
lea rdx, [0x1401d1a68]
lea rcx, [rsp + 0x34]
call sub.MSVCR120.dll__CxxThrowException
mov dword [rsp + 0x38], ecx
cmp qword [rbx + 0x18], 8
jb 0x1400ee6d7
mov rbx, qword [rbx]
xor r9d, r9d
mov r8d, ecx
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x1400ee721
call fcn.1400ee500
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
or rbx, rcx
movabs rax, 0x72500000000
or rbx, rax
lea rcx, [rsp + 0x48]
call fcn.140014790
mov rax, rbx
jmp 0x1400ee7ee
mov dword [rsp + 0x90], r14d
mov dword [rsp + 0xa8], 4
mov dword [rsp + 0x20], r14d
lea r9, [rsp + 0xa8]
lea r8, [rsp + 0x90]
mov edx, 4
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x1400ee78c
call fcn.1400ee500
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
or rbx, rcx
movabs rax, 0x82500000000
or rbx, rax
lea rcx, [rsp + 0x48]
call fcn.140014790
mov rax, rbx
jmp 0x1400ee7ee
mov edx, dword [rsp + 0x90]
mov rcx, rdi
call fcn.140036110
cmp dword [rsp + 0x90], 0
jbe 0x1400ee7c9
mov dword [rsp + 0x20], r14d
lea r9, [rsp + 0x90]
mov r8, qword [rdi]
mov edx, 2
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x1400ee75d
lea rcx, [rsp + 0x48]
call fcn.140014790
movabs rax, 0x8000000000
jmp 0x1400ee7ee
mov rbx, qword [rsp + 0x98]
add rsp, 0x70
pop r14
pop rdi
pop rsi
ret