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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x440]
sub rsp, 0x540
mov rax, qword [0x14039a678]
xor rax, rsp
mov qword [rbp + 0x430], rax
mov r13, rdx
mov rbx, rcx
mov qword [rbp - 0x68], rcx
xor ecx, ecx
mov dword [rsp + 0x58], ecx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x44], ecx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
mov byte [rbp], al
movups xmm0, xmmword [str.0123456789abcdef]
movups xmmword [rbp + 8], xmm0
movzx eax, byte [0x1402b1a00]
mov byte [rbp + 0x18], al
mov r15, qword [rbx + 0x10]
movabs rdx, 0x7fffffffffffffff
mov rax, rdx
sub rax, r15
cmp rax, 0x10
jb 0x1401d1d98
mov r12, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401d1622
mov r12, qword [rbx]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], rcx
lea r14, [r15 + 0x10]
mov edi, SafeArrayGetLBound
lea rsi, [rbp - 0x40]
cmp r14, rdi
jbe 0x1401d166d
mov rdi, r14
or rdi, 0xf
cmp rdi, rdx
jbe 0x1401d1651
mov rdi, rdx
jmp 0x1401d165d
mov eax, SafeArrayPutElement
cmp rdi, rax
cmovb rdi, rax
lea rcx, [rdi + 1]
call fcn.1400d1570
mov rsi, rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], rdi
movups xmm0, xmmword [str.createMD5_path:]
movups xmmword [rsi], xmm0
lea rcx, [rsi + 0x10]
mov r8, r15
mov rdx, r12
call fcn.14021bb20
mov byte [rsi + r14], 0
lea rcx, [rbp - 0x40]
call fcn.14017eab0
mov rax, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401d16a9
mov rax, qword [rbx]
mov qword [rsp + 0x70], rax
xor r12d, r12d
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x70]
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x68]
call sub.api_ms_win_crt_convert_l1_1_0.dll_mbsrtowcs_s
movsxd r8, eax
lea r9, [rbp - 0x2b]
movabs r15, 0xcccccccccccccccd
dec r9
mov rax, r15
mul r8
shr rdx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8, rdx
test rdx, rdx
jne 0x1401d16e0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], SafeArrayGetLBound
mov byte [rbp - 0x60], r12b
lea rax, [rbp - 0x2b]
cmp r9, rax
je 0x1401d173b
lea r8, [rbp - 0x2b]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x60]
call fcn.1400e82b0
nop
lea r8, [rbp - 0x60]
lea rdx, str.mbsrtowcs_s:
lea rcx, [rsp + 0x78]
call fcn.1400d13b0
mov rcx, rax
call fcn.14017eab0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401d1794
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401d178f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401d1d9e
call fcn.1401e3784
mov rcx, qword [rsp + 0x68]
inc rcx
mov eax, 2
mul rcx
mov rsi, rax
mov rdi, 0xffffffffffffffff
cmovo rsi, rdi
mov rcx, rsi
call fcn.1401e3f7c
mov r14, rax
test rax, rax
je 0x1401d17d1
mov r8, rsi
xor edx, edx
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
jmp 0x1401d17d4
mov r14, r12
mov r8, qword [rsp + 0x68]
inc r8
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r8
lea r9, [rsp + 0x70]
mov rdx, r14
lea rcx, [rsp + 0x68]
call sub.api_ms_win_crt_convert_l1_1_0.dll_mbsrtowcs_s
movsxd r8, eax
lea r9, [rbp - 0x2b]
nop
dec r9
mov rax, r15
mul r8
shr rdx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8, rdx
test rdx, rdx
jne 0x1401d1800
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], SafeArrayGetLBound
mov byte [rbp - 0x60], dl
lea rax, [rbp - 0x2b]
cmp r9, rax
je 0x1401d185a
lea r8, [rbp - 0x2b]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x60]
call fcn.1400e82b0
nop
lea r8, [rbp - 0x60]
lea rdx, str.mbsrtowcs_s:
lea rcx, [rsp + 0x78]
call fcn.1400d13b0
mov rcx, rax
call fcn.14017eab0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401d18b3
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401d18ae
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401d1da4
call fcn.1401e3784
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1401d18f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x1401d1a30
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 1
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x1401d1930
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov edx, eax
lea rcx, str.CryptAcquireContext_failed:__d_n
call fcn.1401da610
jmp 0x1401d1a27
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x1401d1985
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov edx, eax
lea rcx, str.CryptAcquireContext_failed:__d_n
call fcn.1401da610
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x1401d1a30
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x40]
mov r8d, 0x400
lea rdx, [rbp + 0x30]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1401d19f9
nop word [rax + rax]
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
test r8d, r8d
je 0x1401d1ac1
xor r9d, r9d
lea rdx, [rbp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x1401d1aae
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x40]
mov r8d, 0x400
lea rdx, [rbp + 0x30]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1401d19b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ReadFile_failed:__d_n
mov edx, eax
mov edi, eax
call fcn.1401da610
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r14
call fcn.1401e3efc
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401d1a73
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1401d1a6e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401d1d92
mov rcx, r8
call fcn.1401e3784
mov eax, edi
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], SafeArrayGetLBound
mov byte [rbx], 0
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.1401e3ce0
mov rbx, qword [rsp + 0x590]
add rsp, 0x540
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop
lea rcx, str.CryptHashData_failed:__d_n
jmp 0x1401d1a06
mov dword [rsp + 0x44], SafeArrayGetLBound
mov dword [rsp + 0x20], r12d
lea r9, [rsp + 0x44]
lea r8, [rbp + 0x20]
mov edx, 2
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x1401d1d70
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x1401d1b2a
lea rdx, [rbp - 0x1f]
lea r8, [rbp + 0x20]
mov r9d, eax
nop dword [rax]
movzx ecx, byte [r8]
mov eax, ecx
shr rax, 4
movzx eax, byte [rbp + rax + 8]
mov byte [rdx - 1], al
and ecx, 0xf
movzx eax, byte [rbp + rcx + 8]
mov byte [rdx], al
lea rdx, [rdx + 2]
lea r8, [r8 + 1]
sub r9, 1
jne 0x1401d1b00
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], SafeArrayGetLBound
mov byte [rbp - 0x60], 0
lea rax, [rbp - 0x20]
mov r8, rdi
inc r8
cmp byte [rax + r8], 0
jne 0x1401d1b45
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x60]
call fcn.1400e82b0
nop
lea r8, [rbp - 0x60]
lea rdx, str.MD5_is:
lea rcx, [rsp + 0x78]
call fcn.1400d13b0
mov rcx, rax
call fcn.14017eab0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401d1bb6
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401d1bb1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401d1daa
call fcn.1401e3784
mov r15d, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r14
call fcn.1401e3efc
lea rax, [rbp - 0x20]
mov rcx, rdi
nop dword [rax + rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x1401d1bf0
inc rcx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov qword [r13], rax
lea rcx, [rbp - 0x20]
mov r8, rdi
nop dword [rax]
inc r8
cmp byte [rcx + r8], 0
jne 0x1401d1c10
inc r8
xor edx, edx
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
lea rax, [rbp - 0x20]
mov rdx, rdi
nop
inc rdx
cmp byte [rax + rdx], 0
jne 0x1401d1c30
inc rdx
lea r8, [rbp - 0x20]
mov rcx, qword [r13]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy_s
movsxd rdx, eax
lea rcx, [rbp - 0x60]
call fcn.1400f3900
nop
mov r8, rax
lea rdx, str.strcpy_s:
lea rcx, [rsp + 0x78]
call fcn.1400d13b0
mov rcx, rax
call fcn.14017eab0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401d1cae
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401d1ca9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401d1db0
call fcn.1401e3784
mov rdx, qword [r13]
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], SafeArrayGetLBound
mov byte [rbp - 0x60], 0
inc rdi
cmp byte [rdx + rdi], 0
jne 0x1401d1cc6
mov r8, rdi
lea rcx, [rbp - 0x60]
call fcn.1400e82b0
nop
lea r8, [rbp - 0x60]
lea rdx, str.createMD5forFile_md5_is:
lea rcx, [rsp + 0x78]
call fcn.1400d13b0
mov rcx, rax
call fcn.14017eab0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401d1d32
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401d1d2c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401d1d8c
call fcn.1401e3784
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401d1d68
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1401d1d63
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401d1d92
mov rcx, r8
call fcn.1401e3784
mov eax, r15d
jmp 0x1401d1a75
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
mov edx, eax
lea rcx, str.CryptGetHashParam_failed:__d_n
call fcn.1401da610
jmp 0x1401d1bbb
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call fcn.1400e7e40
int3
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
int3
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
int3
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
int3
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
int3