Function at 0x1401f8d80
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 [0x1403debe8]
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 [0x1402e6ab0]
mov byte [rbp + 0x18], al
mov r15, qword [rbx + 0x10]
movabs rdx, 0x7fffffffffffffff
mov rax, rdx
sub rax, r15
cmp rax, 0x10
jb 0x1401f9598
mov r12, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401f8e22
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 0x1401f8e6d
mov rdi, r14
or rdi, 0xf
cmp rdi, rdx
jbe 0x1401f8e51
mov rdi, rdx
jmp 0x1401f8e5d
mov eax, SafeArrayPutElement
cmp rdi, rax
cmovb rdi, rax
lea rcx, [rdi + 1]
call fcn.1400e1b00
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.140244220
mov byte [rsi + r14], 0
lea rcx, [rbp - 0x40]
call fcn.140195010
mov rax, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401f8ea9
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 0x1401f8ee0
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], SafeArrayLock
mov byte [rbp - 0x60], r12b
lea rax, [rbp - 0x2b]
cmp r9, rax
je 0x1401f8f3b
lea r8, [rbp - 0x2b]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x60]
call fcn.1400f8840
nop
lea r8, [rbp - 0x60]
lea rdx, str.mbsrtowcs_s:
lea rcx, [rsp + 0x78]
call fcn.1400e1940
mov rcx, rax
call fcn.140195010
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401f8f94
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401f8f8f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401f959e
call fcn.14020be84
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.14020c67c
mov r14, rax
test rax, rax
je 0x1401f8fd1
mov r8, rsi
xor edx, edx
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
jmp 0x1401f8fd4
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 0x1401f9000
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], SafeArrayLock
mov byte [rbp - 0x60], dl
lea rax, [rbp - 0x2b]
cmp r9, rax
je 0x1401f905a
lea r8, [rbp - 0x2b]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x60]
call fcn.1400f8840
nop
lea r8, [rbp - 0x60]
lea rdx, str.mbsrtowcs_s:
lea rcx, [rsp + 0x78]
call fcn.1400e1940
mov rcx, rax
call fcn.140195010
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401f90b3
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401f90ae
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401f95a4
call fcn.14020be84
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 0x1401f90f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x1401f9230
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 0x1401f9130
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov edx, eax
lea rcx, str.CryptAcquireContext_failed:__d_n
call fcn.140202e50
jmp 0x1401f9227
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 0x1401f9185
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov edx, eax
lea rcx, str.CryptAcquireContext_failed:__d_n
call fcn.140202e50
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 0x1401f9230
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 0x1401f91f9
nop word [rax + rax]
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
test r8d, r8d
je 0x1401f92c1
xor r9d, r9d
lea rdx, [rbp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x1401f92ae
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 0x1401f91b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ReadFile_failed:__d_n
mov edx, eax
mov edi, eax
call fcn.140202e50
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.14020c5fc
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401f9273
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1401f926e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401f9592
mov rcx, r8
call fcn.14020be84
mov eax, edi
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], SafeArrayLock
mov byte [rbx], 0
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.14020c3e0
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 0x1401f9206
mov dword [rsp + 0x44], SafeArrayLock
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 0x1401f9570
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x1401f932a
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 0x1401f9300
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], SafeArrayLock
mov byte [rbp - 0x60], 0
lea rax, [rbp - 0x20]
mov r8, rdi
inc r8
cmp byte [rax + r8], 0
jne 0x1401f9345
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x60]
call fcn.1400f8840
nop
lea r8, [rbp - 0x60]
lea rdx, str.MD5_is:
lea rcx, [rsp + 0x78]
call fcn.1400e1940
mov rcx, rax
call fcn.140195010
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401f93b6
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401f93b1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401f95aa
call fcn.14020be84
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.14020c5fc
lea rax, [rbp - 0x20]
mov rcx, rdi
nop dword [rax + rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x1401f93f0
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 0x1401f9410
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 0x1401f9430
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.140103e90
nop
mov r8, rax
lea rdx, str.strcpy_s:
lea rcx, [rsp + 0x78]
call fcn.1400e1940
mov rcx, rax
call fcn.140195010
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401f94ae
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401f94a9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401f95b0
call fcn.14020be84
mov rdx, qword [r13]
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], SafeArrayLock
mov byte [rbp - 0x60], 0
inc rdi
cmp byte [rdx + rdi], 0
jne 0x1401f94c6
mov r8, rdi
lea rcx, [rbp - 0x60]
call fcn.1400f8840
nop
lea r8, [rbp - 0x60]
lea rdx, str.createMD5forFile_md5_is:
lea rcx, [rsp + 0x78]
call fcn.1400e1940
mov rcx, rax
call fcn.140195010
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401f9532
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401f952c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401f958c
call fcn.14020be84
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401f9568
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1401f9563
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401f9592
mov rcx, r8
call fcn.14020be84
mov eax, r15d
jmp 0x1401f9275
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
mov edx, eax
lea rcx, str.CryptGetHashParam_failed:__d_n
call fcn.140202e50
jmp 0x1401f93bb
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.1400f83d0
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