Function at 0x1401b5110
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 [0x14035cb78]
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 [0x14028bdf0]
mov byte [rbp + 0x18], al
mov r15, qword [rbx + 0x10]
movabs rdx, 0x7fffffffffffffff
mov rax, rdx
sub rax, r15
cmp rax, 0x10
jb 0x1401b5928
mov r12, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401b51b2
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 0x1401b51fd
mov rdi, r14
or rdi, 0xf
cmp rdi, rdx
jbe 0x1401b51e1
mov rdi, rdx
jmp 0x1401b51ed
mov eax, SafeArrayPutElement
cmp rdi, rax
cmovb rdi, rax
lea rcx, [rdi + 1]
call fcn.1400b9950
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.1401ff6b0
mov byte [rsi + r14], 0
lea rcx, [rbp - 0x40]
call fcn.1401630b0
mov rax, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401b5239
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 0x1401b5270
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 0x1401b52cb
lea r8, [rbp - 0x2b]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x60]
call fcn.1400d0690
nop
lea r8, [rbp - 0x60]
lea rdx, str.mbsrtowcs_s:
lea rcx, [rsp + 0x78]
call fcn.1400b9790
mov rcx, rax
call fcn.1401630b0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401b5324
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401b531f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401b592e
call fcn.1401c72f8
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.1401c7aec
mov r14, rax
test rax, rax
je 0x1401b5361
mov r8, rsi
xor edx, edx
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
jmp 0x1401b5364
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 0x1401b5390
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 0x1401b53ea
lea r8, [rbp - 0x2b]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x60]
call fcn.1400d0690
nop
lea r8, [rbp - 0x60]
lea rdx, str.mbsrtowcs_s:
lea rcx, [rsp + 0x78]
call fcn.1400b9790
mov rcx, rax
call fcn.1401630b0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401b5443
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401b543e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401b5934
call fcn.1401c72f8
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 0x1401b5483
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x1401b55c0
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 0x1401b54c0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov edx, eax
lea rcx, str.CryptAcquireContext_failed:__d_n
call fcn.1401be1a0
jmp 0x1401b55b7
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 0x1401b5515
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov edx, eax
lea rcx, str.CryptAcquireContext_failed:__d_n
call fcn.1401be1a0
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 0x1401b55c0
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 0x1401b5589
nop word [rax + rax]
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
test r8d, r8d
je 0x1401b5651
xor r9d, r9d
lea rdx, [rbp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x1401b563e
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 0x1401b5540
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ReadFile_failed:__d_n
mov edx, eax
mov edi, eax
call fcn.1401be1a0
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.1401c7a6c
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401b5603
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1401b55fe
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401b5922
mov rcx, r8
call fcn.1401c72f8
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.1401c7850
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 0x1401b5596
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 0x1401b5900
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x1401b56ba
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 0x1401b5690
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 0x1401b56d5
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x60]
call fcn.1400d0690
nop
lea r8, [rbp - 0x60]
lea rdx, str.MD5_is:
lea rcx, [rsp + 0x78]
call fcn.1400b9790
mov rcx, rax
call fcn.1401630b0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401b5746
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401b5741
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401b593a
call fcn.1401c72f8
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.1401c7a6c
lea rax, [rbp - 0x20]
mov rcx, rdi
nop dword [rax + rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x1401b5780
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 0x1401b57a0
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 0x1401b57c0
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.1400dbce0
nop
mov r8, rax
lea rdx, str.strcpy_s:
lea rcx, [rsp + 0x78]
call fcn.1400b9790
mov rcx, rax
call fcn.1401630b0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401b583e
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401b5839
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401b5940
call fcn.1401c72f8
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 0x1401b5856
mov r8, rdi
lea rcx, [rbp - 0x60]
call fcn.1400d0690
nop
lea r8, [rbp - 0x60]
lea rdx, str.createMD5forFile_md5_is:
lea rcx, [rsp + 0x78]
call fcn.1400b9790
mov rcx, rax
call fcn.1401630b0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401b58c2
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401b58bc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401b591c
call fcn.1401c72f8
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401b58f8
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1401b58f3
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401b5922
mov rcx, r8
call fcn.1401c72f8
mov eax, r15d
jmp 0x1401b5605
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
mov edx, eax
lea rcx, str.CryptGetHashParam_failed:__d_n
call fcn.1401be1a0
jmp 0x1401b574b
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.1400d0220
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