Function at 0x180009df0
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt
Print debug messages
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x10f0
call fcn.180056f80
sub rsp, rax
mov rax, qword [0x1800a2de8]
xor rax, rsp
mov qword [rsp + 0x10e0], rax
mov qword [rsp + 0x50], rsp
mov rdi, rdx
mov rsi, rcx
xor ebx, ebx
mov dword [rsp + 0x44], ebx
mov dword [rsp + 0x48], 0x22
mov byte [rsp + 0xe0], bl
xor edx, edx
mov r8d, 0xfff
lea rcx, [rsp + 0xe1]
call fcn.180056c20
mov byte [rsp + 0xb0], bl
xor eax, eax
mov qword [rsp + 0xb1], rax
mov qword [rsp + 0xb9], rax
mov qword [rsp + 0xc1], rax
mov qword [rsp + 0xc9], rax
mov byte [rsp + 0xd1], al
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x70], 0xffffffffffffffff
test rsi, rsi
je 0x18000a4d8
cmp word [rsi], ax
je 0x18000a4d8
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rbx + 3]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
mov qword [rsp + 0x70], rax
cmp rax, 0xffffffffffffffff
jne 0x18000a033
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r12d, [rax + 0x1e]
mov dword [rsp + 0x40], r12d
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r15d, [rax + 0x1e]
mov qword [rsp + 0x88], rbx
mov ecx, 0x1000a
call fcn.180053ad4
mov r14, rax
mov ecx, 0x2000a
call fcn.180053ad4
mov rdi, rax
test r14, r14
je 0x180009fde
test rax, rax
je 0x180009fde
mov r9, rsi
lea r8, [0x18008890c]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a4c
test eax, eax
jle 0x180009fc6
mov word [rdi + 0x1fffe], bx
lea rdx, [rbx - 2]
mov rcx, rdi
call fcn.180053398
lea r8, [rax + 1]
mov qword [rsp + 0x20], 0xffffffffffffffff
mov r9, rdi
mov rdx, r14
lea rcx, [rsp + 0x88]
call fcn.180054798
test eax, eax
je 0x180009f9c
mov r8d, r15d
mov rdx, rdi
lea rcx, str.wcstombs_s_error_in_log_file:__s____d_n
call fcn.180053f50
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r14
lea r9, str.GetFileMD5
mov edx, 0x1cf
mov r8d, 1
lea rcx, str...ApiAuxNA.cpp
call fcn.180001b40
jmp 0x180009ff7
mov edx, r15d
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
jmp 0x180009ff1
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
test r14, r14
je 0x18000a004
mov rcx, r14
call fcn.180053a94
test rdi, rdi
je 0x18000a011
mov rcx, rdi
call fcn.180053a94
mov dword [rsp + 0x7c], r12d
lea rdx, [0x18000a02a]
mov rcx, qword [rsp + 0x50]
call fcn.180057580
nop
nop
nop
mov eax, dword [rsp + 0x40]
jmp 0x18000a645
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 1
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x18000a12b
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [rax + 0x1e]
mov dword [rsp + 0x40], edi
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [rax + 0x1e]
mov ecx, 0x1000a
call fcn.180053ad4
mov rbx, rax
test rax, rax
jne 0x18000a09c
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x18000a107
lea r8, [0x180088a64]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a70
test eax, eax
jle 0x18000a0e4
mov byte [rbx + 0xffff], 0
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r9, str.GetFileMD5
mov edx, 0x1d3
mov r8d, 1
lea rcx, str...ApiAuxNA.cpp
call fcn.180001b40
jmp 0x18000a0ff
mov edx, esi
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.180053a94
mov dword [rsp + 0x94], edi
lea rdx, [0x18000a122]
mov rcx, qword [rsp + 0x50]
call fcn.180057580
nop
nop
nop
mov eax, dword [rsp + 0x40]
jmp 0x18000a645
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x18000a230
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [rax + 0x1e]
mov dword [rsp + 0x40], edi
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [rax + 0x1e]
mov ecx, 0x1000a
call fcn.180053ad4
mov rbx, rax
test rax, rax
jne 0x18000a196
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x18000a201
lea r8, [0x180088a64]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a70
test eax, eax
jle 0x18000a1de
mov byte [rbx + 0xffff], 0
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r9, str.GetFileMD5
mov edx, 0x1d6
mov r8d, 1
lea rcx, str...ApiAuxNA.cpp
call fcn.180001b40
jmp 0x18000a1f9
mov edx, esi
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.180053a94
mov dword [rsp + 0x90], edi
lea rdx, [0x18000a21c]
mov rcx, qword [rsp + 0x50]
call fcn.180057580
nop
nop
nop
mov eax, dword [rsp + 0x40]
jmp 0x18000a645
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x44]
mov r8d, 0x1000
lea rdx, [rsp + 0xe0]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18000a364
mov r8d, dword [rsp + 0x44]
test r8d, r8d
je 0x18000a35c
xor r9d, r9d
lea rdx, [rsp + 0xe0]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x18000a357
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [rax + 0x1e]
mov dword [rsp + 0x40], edi
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [rax + 0x1e]
mov ecx, 0x1000a
call fcn.180053ad4
mov rbx, rax
test rax, rax
jne 0x18000a2c8
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x18000a333
lea r8, [0x180088a64]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a70
test eax, eax
jle 0x18000a310
mov byte [rbx + 0xffff], 0
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r9, str.GetFileMD5
mov edx, 0x1de
mov r8d, 1
lea rcx, str...ApiAuxNA.cpp
call fcn.180001b40
jmp 0x18000a32b
mov edx, esi
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.180053a94
mov dword [rsp + 0x98], edi
lea rdx, [0x18000a34e]
mov rcx, qword [rsp + 0x50]
call fcn.180057580
nop
nop
nop
mov eax, dword [rsp + 0x40]
jmp 0x18000a645
jmp 0x18000a230
test eax, eax
jne 0x18000a433
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [rax + 0x1e]
mov dword [rsp + 0x40], edi
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [rax + 0x1e]
mov ecx, 0x1000a
call fcn.180053ad4
mov rbx, rax
test rax, rax
jne 0x18000a3a7
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x18000a412
lea r8, [0x180088a64]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a70
test eax, eax
jle 0x18000a3ef
mov byte [rbx + 0xffff], 0
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r9, str.GetFileMD5
mov edx, 0x1e1
mov r8d, 1
lea rcx, str...ApiAuxNA.cpp
call fcn.180001b40
jmp 0x18000a40a
mov edx, esi
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.180053a94
mov dword [rsp + 0x78], edi
lea rdx, [0x18000a42a]
mov rcx, qword [rsp + 0x50]
call fcn.180057580
nop
nop
nop
mov eax, dword [rsp + 0x40]
jmp 0x18000a645
mov dword [rsp + 0x20], ebx
lea r9, [rsp + 0x48]
lea r8, [rsp + 0xb0]
mov edx, 2
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x18000a49f
mov dword [rsp + 0x68], ebx
cmp ebx, 0x22
jae 0x18000a49f
cmp ebx, dword [rsp + 0x48]
jae 0x18000a49f
mov eax, ebx
movzx r8d, byte [rsp + rax + 0xb0]
lea rdx, str._02X
mov rcx, rdi
call fcn.1800019a0
or rax, 0xffffffffffffffff
inc rax
cmp word [rdi + rax*2], 0
jne 0x18000a485
lea rdi, [rdi + rax*2]
mov qword [rsp + 0xa0], rdi
inc ebx
jmp 0x18000a458
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x18000a4af
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x18000a4c1
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp r14, 0xffffffffffffffff
je 0x18000a4d1
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor eax, eax
jmp 0x18000a645
mov ecx, 0x1000a
call fcn.180053ad4
mov rbx, rax
test rax, rax
jne 0x18000a505
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x18000a577
lea r8, [0x180088a64]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a70
test eax, eax
jle 0x18000a551
mov byte [rbx + 0xffff], 0
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], rbx
lea r9, str.GetFileMD5
mov edx, 0x1ca
mov r8d, 1
lea rcx, str...ApiAuxNA.cpp
call fcn.180001b40
jmp 0x18000a56f
mov edx, 8
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.180053a94
mov dword [rsp + 0x80], 8
lea rdx, [0x18000a596]
mov rcx, qword [rsp + 0x50]
call fcn.180057580
nop
nop
nop
mov eax, 8
jmp 0x18000a645
mov rcx, qword [rsp + 0x10e0]
xor rcx, rsp
call fcn.180052be0
mov rbx, qword [rsp + 0x1130]
add rsp, 0x10f0
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret