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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3e0]
sub rsp, 0x4e0
mov qword [rbp - 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x538], rbx
mov rax, qword [0x140040650]
xor rax, rsp
mov qword [rbp + 0x3d0], rax
mov rax, r8
mov qword [rsp + 0x78], rax
mov rbx, rdx
mov rdi, rcx
xor r14d, r14d
mov qword [r8 + 0x10], r14
cmp qword [r8 + 0x18], 0x10
jb 0x14000710b
mov rax, qword [r8]
mov byte [rax], r14b
mov qword [rbp - 0x50], r14
mov qword [rbp - 0x48], r14
mov dword [rbp - 0x58], r14d
mov dword [rbp - 0x78], r14d
cmp qword [rdx + 0x18], 8
jb 0x14000712a
mov rcx, qword [rdx]
jmp 0x14000712d
mov rcx, rdx
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r13, rax
mov qword [rsp + 0x70], rax
cmp rax, 0xffffffffffffffff
jne 0x14000719c
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rbx + 0x10]
movaps xmmword [rsp + 0x60], xmm1
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [rdi + 0x18]
mov dword [rsp + 0x20], eax
lea r9, [rsp + 0x50]
lea r8, str.CDriverInstaller::CalcMD5OfFile__:_Error_opening_file___File:___s___ErrorCode:___d__
mov edx, 0xc8
call fcn.14000a820
jmp 0x140007984
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 1
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x1400071e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea rcx, [rdi + 0x18]
lea r8, str.CDriverInstaller::CalcMD5OfFile__:_CryptAcquireContext_failed:_ErrorCode:___d__
mov edx, 0xc8
call fcn.14000a820
jmp 0x14000797b
lea rax, [rbp - 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x14000723a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea rcx, [rdi + 0x18]
lea r8, str.CDriverInstaller::CalcMD5OfFile__:_CryptAcquireContext_failed:_ErrorCode:___d__
mov edx, 0xc8
call fcn.14000a820
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x140007984
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x58]
mov r8d, 0x400
lea rdx, [rbp - 0x30]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140007947
nop
mov r8d, dword [rbp - 0x58]
test r8d, r8d
je 0x1400072b5
xor r9d, r9d
lea rdx, [rbp - 0x30]
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x1400072a3
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x58]
mov r8d, 0x400
lea rdx, [rbp - 0x30]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140007260
jmp 0x140007947
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, str.CDriverInstaller::CalcMD5OfFile__:_CryptHashData_failed:_ErrorCode:___d__
jmp 0x140007954
test eax, eax
je 0x140007947
mov dword [rbp - 0x78], 0x10
xor eax, eax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
mov rbx, r14
mov qword [rbp - 0x60], rbx
mov dword [rsp + 0x20], r14d
lea r9, [rbp - 0x78]
lea r8, [rbp - 0x40]
lea edx, [rax + 2]
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x140007911
mov eax, r14d
mov dword [rsp + 0x44], eax
mov rdi, qword [rbp - 0x68]
mov rsi, qword [rbp - 0x70]
cmp dword [rbp - 0x78], 0
jbe 0x1400076e8
lea rcx, str.0123456789abcdef
nop dword [rax]
nop word [rax + rax]
lea r13, [rbp - 0x40]
add r13, rax
movzx r15d, byte [r13]
shr r15, 4
add r15, rcx
cmp r15, rdi
jae 0x14000741b
cmp rsi, r15
ja 0x14000741b
sub r15, rsi
cmp rdi, rbx
jne 0x140007408
mov rax, rbx
sub rax, rdi
cmp rax, 1
jae 0x140007408
mov rax, rsi
sub rax, rdi
dec rax
cmp rax, 1
jb 0x14000769d
sub rdi, rsi
lea rdx, [rdi + 1]
sub rbx, rsi
mov rcx, rbx
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jae 0x1400073a5
mov rbx, r14
jmp 0x1400073a8
add rbx, rcx
cmp rbx, rdx
cmovb rbx, rdx
mov r12, r14
test rbx, rbx
je 0x1400073d5
cmp rbx, 0xffffffffffffffff
ja 0x140007697
mov rcx, rbx
call fcn.140018d0c
mov r12, rax
test rax, rax
je 0x140007697
mov r8, rdi
mov rdx, rsi
mov rcx, r12
call fcn.140018500
test rsi, rsi
je 0x1400073f0
mov rcx, rsi
call fcn.140018ca8
add rbx, r12
mov qword [rbp - 0x60], rbx
add rdi, r12
mov rsi, r12
mov qword [rbp - 0x70], r12
lea rcx, str.0123456789abcdef
test rdi, rdi
je 0x1400074d6
movzx eax, byte [rsi + r15]
jmp 0x1400074d4
cmp rdi, rbx
jne 0x1400074cb
mov rax, rbx
sub rax, rdi
cmp rax, 1
jae 0x1400074cb
mov rax, rsi
sub rax, rdi
dec rax
cmp rax, 1
jb 0x1400076b0
sub rdi, rsi
lea rdx, [rdi + 1]
sub rbx, rsi
mov rcx, rbx
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jae 0x140007468
mov rbx, r14
jmp 0x14000746b
add rbx, rcx
cmp rbx, rdx
cmovb rbx, rdx
mov r12, r14
test rbx, rbx
je 0x140007498
cmp rbx, 0xffffffffffffffff
ja 0x1400076aa
mov rcx, rbx
call fcn.140018d0c
mov r12, rax
test rax, rax
je 0x1400076aa
mov r8, rdi
mov rdx, rsi
mov rcx, r12
call fcn.140018500
test rsi, rsi
je 0x1400074b3
mov rcx, rsi
call fcn.140018ca8
add rbx, r12
mov qword [rbp - 0x60], rbx
add rdi, r12
mov rsi, r12
mov qword [rbp - 0x70], r12
lea rcx, str.0123456789abcdef
test rdi, rdi
je 0x1400074d6
movzx eax, byte [r15]
mov byte [rdi], al
inc rdi
mov qword [rbp - 0x68], rdi
movzx r15d, byte [r13]
and r15d, 0xf
add r15, rcx
cmp r15, rdi
jae 0x1400075c1
cmp rsi, r15
ja 0x1400075c1
sub r15, rsi
cmp rdi, rbx
jne 0x1400075ae
mov rax, rbx
sub rax, rdi
cmp rax, 1
jae 0x1400075ae
mov rax, rsi
sub rax, rdi
dec rax
cmp rax, 1
jb 0x1400076c3
sub rdi, rsi
lea rdx, [rdi + 1]
sub rbx, rsi
mov rcx, rbx
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jae 0x14000754b
mov rbx, r14
jmp 0x14000754e
add rbx, rcx
cmp rbx, rdx
cmovb rbx, rdx
mov r12, r14
test rbx, rbx
je 0x14000757b
cmp rbx, 0xffffffffffffffff
ja 0x1400076bd
mov rcx, rbx
call fcn.140018d0c
mov r12, rax
test rax, rax
je 0x1400076bd
mov r8, rdi
mov rdx, rsi
mov rcx, r12
call fcn.140018500
test rsi, rsi
je 0x140007596
mov rcx, rsi
call fcn.140018ca8
add rbx, r12
mov qword [rbp - 0x60], rbx
add rdi, r12
mov rsi, r12
mov qword [rbp - 0x70], r12
lea rcx, str.0123456789abcdef
test rdi, rdi
je 0x14000767c
movzx eax, byte [r15 + rsi]
jmp 0x14000767a
cmp rdi, rbx
jne 0x140007671
mov rax, rbx
sub rax, rdi
cmp rax, 1
jae 0x140007671
mov rax, rsi
sub rax, rdi
dec rax
cmp rax, 1
jb 0x1400076d6
sub rdi, rsi
lea rdx, [rdi + 1]
sub rbx, rsi
mov rcx, rbx
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jae 0x14000760e
mov rbx, r14
jmp 0x140007611
add rbx, rcx
cmp rbx, rdx
cmovb rbx, rdx
mov r12, r14
test rbx, rbx
je 0x14000763e
cmp rbx, 0xffffffffffffffff
ja 0x1400076d0
mov rcx, rbx
call fcn.140018d0c
mov r12, rax
test rax, rax
je 0x1400076d0
mov r8, rdi
mov rdx, rsi
mov rcx, r12
call fcn.140018500
test rsi, rsi
je 0x140007659
mov rcx, rsi
call fcn.140018ca8
add rbx, r12
mov qword [rbp - 0x60], rbx
add rdi, r12
mov rsi, r12
mov qword [rbp - 0x70], r12
lea rcx, str.0123456789abcdef
test rdi, rdi
je 0x14000767c
movzx eax, byte [r15]
mov byte [rdi], al
inc rdi
mov qword [rbp - 0x68], rdi
mov eax, dword [rsp + 0x44]
inc eax
mov dword [rsp + 0x44], eax
cmp eax, dword [rbp - 0x78]
jae 0x1400076e3
jmp 0x140007330
call fcn.140013d68
int3
lea rcx, str.vector_T__too_long
call fcn.140013dac
int3
call fcn.140013d68
int3
lea rcx, str.vector_T__too_long
call fcn.140013dac
int3
call fcn.140013d68
int3
lea rcx, str.vector_T__too_long
call fcn.140013dac
int3
call fcn.140013d68
int3
lea rcx, str.vector_T__too_long
call fcn.140013dac
int3
mov r13, qword [rsp + 0x70]
mov byte [rsp + 0x40], 0
lea rax, [rsp + 0x40]
cmp rax, rdi
jae 0x1400077d7
lea rax, [rsp + 0x40]
cmp rsi, rax
ja 0x1400077d7
lea r12, [rsp + 0x40]
sub r12, rsi
cmp rdi, rbx
jne 0x1400077c2
mov rax, rbx
sub rax, rdi
cmp rax, 1
jae 0x1400077c2
mov rax, rsi
sub rax, rdi
dec rax
cmp rax, 1
jae 0x140007746
lea rcx, str.vector_T__too_long
call fcn.140013dac
int3
sub rdi, rsi
lea rdx, [rdi + 1]
sub rbx, rsi
mov rcx, rbx
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jae 0x140007767
mov rbx, r14
jmp 0x14000776a
add rbx, rcx
cmp rbx, rdx
cmovb rbx, rdx
mov r15, r14
test rbx, rbx
je 0x140007795
cmp rbx, 0xffffffffffffffff
ja 0x14000778f
mov rcx, rbx
call fcn.140018d0c
mov r15, rax
test rax, rax
jne 0x140007795
call fcn.140013d68
int3
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call fcn.140018500
test rsi, rsi
je 0x1400077b0
mov rcx, rsi
call fcn.140018ca8
lea rax, [r15 + rbx]
mov qword [rbp - 0x60], rax
add rdi, r15
mov rsi, r15
mov qword [rbp - 0x70], r15
test rdi, rdi
je 0x140007890
movzx eax, byte [r12 + rsi]
mov byte [rdi], al
jmp 0x140007890
cmp rdi, rbx
jne 0x140007888
mov rax, rbx
sub rax, rdi
cmp rax, 1
jae 0x140007888
mov rax, rsi
sub rax, rdi
dec rax
cmp rax, 1
jae 0x14000780c
lea rcx, str.vector_T__too_long
call fcn.140013dac
int3
sub rdi, rsi
lea rdx, [rdi + 1]
sub rbx, rsi
mov rcx, rbx
shr rcx, 1
or rax, 0xffffffffffffffff
sub rax, rcx
cmp rax, rbx
jae 0x14000782d
mov rbx, r14
jmp 0x140007830
add rbx, rcx
cmp rbx, rdx
cmovb rbx, rdx
mov r15, r14
test rbx, rbx
je 0x14000785b
cmp rbx, 0xffffffffffffffff
ja 0x140007855
mov rcx, rbx
call fcn.140018d0c
mov r15, rax
test rax, rax
jne 0x14000785b
call fcn.140013d68
int3
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call fcn.140018500
test rsi, rsi
je 0x140007876
mov rcx, rsi
call fcn.140018ca8
lea rax, [rbx + r15]
mov qword [rbp - 0x60], rax
add rdi, r15
mov rsi, r15
mov qword [rbp - 0x70], r15
test rdi, rdi
je 0x140007890
mov byte [rdi], 0
inc rdi
mov qword [rbp - 0x68], rdi
mov qword [rsp + 0x68], 0xf
mov qword [rsp + 0x60], r14
mov byte [rsp + 0x50], 0
cmp byte [rsi], 0
je 0x1400078bd
or r14, 0xffffffffffffffff
inc r14
cmp byte [rsi + r14], 0
jne 0x1400078b3
mov r8, r14
mov rdx, rsi
lea rcx, [rsp + 0x50]
call fcn.140001e60
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
call fcn.140007c90
cmp qword [rsp + 0x68], 0x10
jb 0x1400078ee
mov rcx, qword [rsp + 0x50]
call fcn.140018ca8
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
xor edx, edx
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov bl, 1
jmp 0x140007935
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea rcx, [rdi + 0x18]
lea r8, str.CDriverInstaller::CalcMD5OfFile__:_CryptGetHashParam_failed:_ErrorCode:___d__
mov edx, 0xc8
call fcn.14000a820
xor bl, bl
mov rsi, qword [rbp - 0x70]
test rsi, rsi
je 0x140007942
mov rcx, rsi
call fcn.140018ca8
movzx eax, bl
jmp 0x140007986
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, str.CDriverInstaller::CalcMD5OfFile__:_ReadFile_failed:_ErrorCode:___d__
mov r9d, eax
mov edx, 0xc8
lea rcx, [rdi + 0x18]
call fcn.14000a820
xor edx, edx
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov rcx, qword [rbp + 0x3d0]
xor rcx, rsp
call fcn.1400184d0
mov rbx, qword [rsp + 0x538]
add rsp, 0x4e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret