Function at 0x1401ad950
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 [0x140351248]
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 [0x140282320]
mov byte [rbp + 0x18], al
mov r15, qword [rbx + 0x10]
movabs rdx, 0x7fffffffffffffff
mov rax, rdx
sub rax, r15
cmp rax, 0x10
jb 0x1401ae168
mov r12, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401ad9f2
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 0x1401ada3d
mov rdi, r14
or rdi, 0xf
cmp rdi, rdx
jbe 0x1401ada21
mov rdi, rdx
jmp 0x1401ada2d
mov eax, SafeArrayPutElement
cmp rdi, rax
cmovb rdi, rax
lea rcx, [rdi + 1]
call fcn.1400b88d0
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.1401f7750
mov byte [rsi + r14], 0
lea rcx, [rbp - 0x40]
call fcn.140162100
mov rax, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1401ada79
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 0x1401adab0
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 0x1401adb0b
lea r8, [rbp - 0x2b]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x60]
call fcn.1400cf610
nop
lea r8, [rbp - 0x60]
lea rdx, str.mbsrtowcs_s:
lea rcx, [rsp + 0x78]
call fcn.1400b8710
mov rcx, rax
call fcn.140162100
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401adb64
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401adb5f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401ae16e
call fcn.1401bfb10
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.1401c030c
mov r14, rax
test rax, rax
je 0x1401adba1
mov r8, rsi
xor edx, edx
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
jmp 0x1401adba4
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 0x1401adbd0
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 0x1401adc2a
lea r8, [rbp - 0x2b]
sub r8, r9
mov rdx, r9
lea rcx, [rbp - 0x60]
call fcn.1400cf610
nop
lea r8, [rbp - 0x60]
lea rdx, str.mbsrtowcs_s:
lea rcx, [rsp + 0x78]
call fcn.1400b8710
mov rcx, rax
call fcn.140162100
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401adc83
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401adc7e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401ae174
call fcn.1401bfb10
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 0x1401adcc3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x1401ade00
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 0x1401add00
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov edx, eax
lea rcx, str.CryptAcquireContext_failed:__d_n
call fcn.1401b69e0
jmp 0x1401addf7
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 0x1401add55
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov edx, eax
lea rcx, str.CryptAcquireContext_failed:__d_n
call fcn.1401b69e0
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 0x1401ade00
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 0x1401addc9
nop word [rax + rax]
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
test r8d, r8d
je 0x1401ade91
xor r9d, r9d
lea rdx, [rbp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x1401ade7e
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 0x1401add80
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.ReadFile_failed:__d_n
mov edx, eax
mov edi, eax
call fcn.1401b69e0
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.1401c028c
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401ade43
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1401ade3e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401ae162
mov rcx, r8
call fcn.1401bfb10
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.1401c0070
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 0x1401addd6
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 0x1401ae140
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x1401adefa
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 0x1401aded0
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 0x1401adf15
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x60]
call fcn.1400cf610
nop
lea r8, [rbp - 0x60]
lea rdx, str.MD5_is:
lea rcx, [rsp + 0x78]
call fcn.1400b8710
mov rcx, rax
call fcn.140162100
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401adf86
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401adf81
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401ae17a
call fcn.1401bfb10
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.1401c028c
lea rax, [rbp - 0x20]
mov rcx, rdi
nop dword [rax + rax]
inc rcx
cmp byte [rax + rcx], 0
jne 0x1401adfc0
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 0x1401adfe0
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 0x1401ae000
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.1400dac60
nop
mov r8, rax
lea rdx, str.strcpy_s:
lea rcx, [rsp + 0x78]
call fcn.1400b8710
mov rcx, rax
call fcn.140162100
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401ae07e
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401ae079
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401ae180
call fcn.1401bfb10
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 0x1401ae096
mov r8, rdi
lea rcx, [rbp - 0x60]
call fcn.1400cf610
nop
lea r8, [rbp - 0x60]
lea rdx, str.createMD5forFile_md5_is:
lea rcx, [rsp + 0x78]
call fcn.1400b8710
mov rcx, rax
call fcn.140162100
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x1401ae102
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401ae0fc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401ae15c
call fcn.1401bfb10
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401ae138
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x1401ae133
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401ae162
mov rcx, r8
call fcn.1401bfb10
mov eax, r15d
jmp 0x1401ade45
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
mov edx, eax
lea rcx, str.CryptGetHashParam_failed:__d_n
call fcn.1401b69e0
jmp 0x1401adf8b
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.1400cf1a0
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