Function at 0x14008f12c
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x20], r9d
push rbp
push rsi
push rdi
push r12
push r14
mov rbp, rsp
sub rsp, 0x30
and qword [rbp + 0x50], 0
mov r14, r8
and qword [rbp + 0x38], 0
lea r8, str.Microsoft_Base_Cryptographic_Provider_v1.0
mov rbx, rdx
mov dword [rsp + 0x20], 0xf0000000
mov rsi, rcx
xor edx, edx
lea rcx, [rbp + 0x50]
mov r9d, 1
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x14008f18c
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f18c
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, qword [rbp + 0x50]
lea rax, [rbp + 0x38]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x8003
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x14008f1be
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f1be
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov r12d, 0xffffffff
cmp rbx, r12
jbe 0x14008f238
xor edx, edx
movabs rax, 0xffffffff00000000
add rax, rbx
div r12
lea rdi, [rax + 1]
movabs rax, 0xffffffff00000001
mov rcx, rdi
imul rcx, rax
add rbx, rcx
mov rcx, qword [rbp + 0x38]
xor r9d, r9d
mov r8d, r12d
mov rdx, rsi
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x14008f21a
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f21a
call qword [sym.imp.KERNEL32.dll_DebugBreak]
add rsi, r12
sub rdi, 1
jne 0x14008f1f3
cmp rbx, r12
jbe 0x14008f238
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f238
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, qword [rbp + 0x38]
xor r9d, r9d
mov r8d, ebx
mov rdx, rsi
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x14008f25f
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f25f
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, qword [rbp + 0x38]
lea r9, [rbp + 0x58]
and dword [rbp + 0x48], 0
lea r8, [rbp + 0x48]
and dword [rsp + 0x20], 0
mov edi, 4
mov edx, edi
mov dword [rbp + 0x58], edi
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov ebx, eax
cmp dword [rbp + 0x58], edi
je 0x14008f29b
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f29b
call qword [sym.imp.KERNEL32.dll_DebugBreak]
test ebx, ebx
jne 0x14008f2af
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f2af
call qword [sym.imp.KERNEL32.dll_DebugBreak]
cmp dword [rbp + 0x48], 0x10
je 0x14008f2c5
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f2c5
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, qword [rbp + 0x38]
lea r9, [rbp + 0x48]
and dword [rsp + 0x20], 0
mov r8, r14
mov edx, 2
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
jne 0x14008f2f4
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f2f4
call qword [sym.imp.KERNEL32.dll_DebugBreak]
cmp dword [rbp + 0x48], 0x10
je 0x14008f30a
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x14008f30a
call qword [sym.imp.KERNEL32.dll_DebugBreak]
mov rcx, qword [rbp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rbp + 0x50]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rbx, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret