Function at 0x14000149a
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt
Read file on windows

Disassembly:
push rbp
sub rsp, 0x4a0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x430], rcx
mov qword [rbp + 0x438], rdx
mov dword [rbp + 0x440], r8d
mov qword [rbp + 0x408], 0
mov qword [rbp + 0x400], 0
mov qword [rbp + 0x410], 0
mov dword [rbp - 0x24], 0x10
movabs rax, 0x3736353433323130
movabs rdx, 0x6665646362613938
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
mov byte [rbp - 0x30], 0
mov dword [rbp + 0x41c], 0
mov rax, qword [rbp + 0x430]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
mov r9d, 0
mov r8d, 1
mov edx, 0x80000000
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.DLL_CreateFileA]
call rax
mov qword [rbp + 0x410], rax
cmp qword [rbp + 0x410], 0xffffffffffffffff
jne 0x140001569
mov eax, 0
jmp 0x14000177e
lea rax, [rbp + 0x408]
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 1
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
call rax
test eax, eax
je 0x14000170e
mov rax, qword [rbp + 0x408]
lea rdx, [rbp + 0x400]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8d, 0
mov edx, 0x8003
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
call rax
test eax, eax
je 0x140001711
jmp 0x140001601
mov ecx, dword [rbp - 4]
mov rax, qword [rbp + 0x400]
mov rdx, rbp
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptHashData]
call rax
test eax, eax
je 0x140001714
lea rcx, [rbp - 4]
mov rdx, rbp
mov rax, qword [rbp + 0x410]
mov qword [rsp + 0x20], 0
mov r9, rcx
mov r8d, 0x400
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.DLL_ReadFile]
call rax
test eax, eax
je 0x140001638
mov eax, dword [rbp - 4]
test eax, eax
jne 0x1400015d7
mov rax, qword [rbp + 0x400]
lea rcx, [rbp - 0x24]
lea rdx, [rbp - 0x20]
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
test eax, eax
je 0x140001717
mov dword [rbp + 0x418], 0
jmp 0x1400016e3
mov eax, dword [rbp + 0x418]
movzx eax, byte [rbp + rax - 0x20]
shr al, 4
movzx eax, al
mov edx, dword [rbp + 0x418]
add edx, edx
mov ecx, edx
mov rdx, qword [rbp + 0x438]
add rdx, rcx
cdqe
movzx eax, byte [rbp + rax - 0x40]
mov byte [rdx], al
mov eax, dword [rbp + 0x418]
movzx eax, byte [rbp + rax - 0x20]
movzx eax, al
and eax, 0xf
mov ecx, eax
mov eax, dword [rbp + 0x418]
add eax, eax
add eax, 1
mov edx, eax
mov rax, qword [rbp + 0x438]
add rdx, rax
movsxd rax, ecx
movzx eax, byte [rbp + rax - 0x40]
mov byte [rdx], al
add dword [rbp + 0x418], 1
mov eax, dword [rbp - 0x24]
cmp dword [rbp + 0x418], eax
jb 0x14000167a
mov eax, dword [rbp - 0x24]
add eax, eax
mov edx, eax
mov rax, qword [rbp + 0x438]
add rax, rdx
mov byte [rax], 0
mov dword [rbp + 0x41c], 1
jmp 0x140001718
nop
jmp 0x140001718
nop
jmp 0x140001718
nop
jmp 0x140001718
nop
cmp qword [rbp + 0x410], 0
je 0x140001735
mov rax, qword [rbp + 0x410]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.DLL_CloseHandle]
call rax
mov rax, qword [rbp + 0x400]
test rax, rax
je 0x140001754
mov rax, qword [rbp + 0x400]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call rax
mov rax, qword [rbp + 0x408]
test rax, rax
je 0x140001778
mov rax, qword [rbp + 0x408]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call rax
mov eax, dword [rbp + 0x41c]
add rsp, 0x4a0
pop rbp
ret