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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rsp + 0x190], rbx
mov rax, qword [0x14009b038]
xor rax, rsp
mov qword [rbp + 0x30], rax
mov r14, rdx
mov r15, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x58], rdx
xor r12d, r12d
mov qword [rbp - 0x80], r12
mov dword [rsp + 0x68], 0x10
call fcn.140011c10
mov rcx, rax
test rax, rax
jne 0x14001bfce
mov ecx, 0x80004005
call fcn.140018f70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x78], rdi
cmp qword [r14 + 0x18], 8
jb 0x14001bfe8
mov rbx, qword [r14]
jmp 0x14001bfeb
mov rbx, r14
call fcn.140011c10
mov rcx, rax
test rax, rax
jne 0x14001c003
mov ecx, 0x80004005
call fcn.140018f70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
or r13, 0xffffffffffffffff
test rbx, rbx
je 0x14001c042
test rbx, 0xffffffffffff0000
jne 0x14001c033
movzx edx, bx
lea rcx, [rsp + 0x60]
call fcn.140023040
jmp 0x14001c056
mov rax, r13
inc rax
cmp word [rbx + rax*2], 0
jne 0x14001c036
jmp 0x14001c045
mov eax, r12d
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.140023330
nop
mov rbx, qword [rsp + 0x60]
mov esi, dword [rbx - 0x10]
test esi, esi
jns 0x14001c06d
mov ecx, 0x80070057
call fcn.140018f70
int3
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or ecx, eax
jge 0x14001c08f
mov edx, esi
lea rcx, [rsp + 0x60]
call fcn.1400231c0
mov rbx, qword [rsp + 0x60]
mov r8d, r12d
cmp dword [rbx - 0x10], r12d
jle 0x14001c0c5
mov rcx, rbx
mov rdx, r12
nop
cmp qword [r14 + 0x18], 8
jb 0x14001c0ac
mov rax, qword [r14]
jmp 0x14001c0af
mov rax, r14
movzx eax, byte [rdx + rax]
mov byte [rcx], al
inc r8d
add rdx, 2
inc rcx
cmp r8d, dword [rbx - 0x10]
jl 0x14001c0a0
mov dword [rsp + 0x20], 0xf0000020
mov r9d, 1
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x14001c462
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x14001c44c
xor r9d, r9d
mov r8d, esi
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x14001c42e
mov dword [rsp + 0x20], r12d
lea r9, [rsp + 0x68]
lea r8, [rbp - 0x50]
mov edx, 2
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x14001c418
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14001c1a9
cmp dword [rdx + 0x10], 0
jge 0x14001c181
cmp dword [rbx - 0xc], 0
jge 0x14001c177
mov ecx, 0x80070057
call fcn.140018f70
int3
mov dword [rbx - 0x10], r12d
mov word [rbx], r12w
jmp 0x14001c1a9
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c197
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
call fcn.140011c10
mov rcx, rax
test rax, rax
jne 0x14001c1c1
mov ecx, 0x80004005
call fcn.140018f70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
call fcn.140011c10
mov rcx, rax
test rax, rax
jne 0x14001c1e8
mov ecx, 0x80004005
call fcn.140018f70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x60], rax
call fcn.140011c10
mov rcx, rax
test rax, rax
jne 0x14001c20e
mov ecx, 0x80004005
call fcn.140018f70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x68], rax
call fcn.140011c10
mov rcx, rax
test rax, rax
jne 0x14001c234
mov ecx, 0x80004005
call fcn.140018f70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x70], rax
call fcn.140011c10
mov rcx, rax
test rax, rax
jne 0x14001c25a
mov ecx, 0x80004005
call fcn.140018f70
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp - 0x58], rdi
nop dword [rax + rax]
movzx r8d, byte [rbp + r12 - 0x50]
lea rdx, str._02x
lea rcx, [rsp + 0x70]
call fcn.140023570
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x48], rcx
movsxd rdx, dword [rcx - 0x10]
mov rax, rcx
sub rax, rbx
sar rax, 1
mov qword [rsp + 0x40], rax
mov esi, dword [rbx - 0x10]
mov dword [rsp + 0x30], esi
mov eax, edx
not eax
shr eax, 0x1f
test eax, eax
je 0x14001c40d
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsnlen]
mov r15, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, esi
jl 0x14001c402
add esi, r15d
js 0x14001c3f7
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x14001c2fc
mov edx, esi
lea rcx, [rsp + 0x60]
call fcn.1400231c0
mov rbx, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x30]
mov rax, qword [rsp + 0x40]
cmp rax, rcx
lea r8, [rbx + rax*2]
jbe 0x14001c313
mov r8, qword [rsp + 0x48]
movsxd rdx, r15d
lea rcx, [rbx + rcx*2]
mov r9d, r15d
call fcn.1400234e0
cmp esi, dword [rbx - 0xc]
jg 0x14001c3ec
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
inc r12
cmp r12, 0x10
jl 0x14001c270
lea rdx, [rdi - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c35f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c37e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c39d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c3bc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c3db
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov rdi, qword [rbp - 0x78]
mov r15, qword [rsp + 0x38]
xor r12d, r12d
jmp 0x14001c487
mov ecx, 0x80070057
call fcn.140018f70
int3
mov ecx, 0x80070057
call fcn.140018f70
int3
mov ecx, 0x80070057
call fcn.140018f70
int3
mov ecx, 0x80070057
call fcn.140018f70
nop
lea rdx, str.Error_getting_hash_param
mov rax, r13
inc rax
cmp word [rdx + rax*2], 0
jne 0x14001c422
jmp 0x14001c47a
lea rdx, str.Error_hashing_data
mov rax, r13
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14001c440
jmp 0x14001c47a
lea rdx, str.Error_creating_hash
mov rax, r13
inc rax
cmp word [rdx + rax*2], 0
jne 0x14001c456
jmp 0x14001c47a
lea rdx, str.Error_acquiring_context
mov rax, r13
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14001c470
mov r8d, eax
lea rcx, [rsp + 0x60]
call fcn.140023330
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
xor edx, edx
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsnlen]
test eax, eax
js 0x14001c573
cmp eax, dword [rdi - 0xc]
jg 0x14001c573
mov dword [rdi - 0x10], eax
cdqe
mov word [rdi + rax*2], r12w
mov rbx, qword [rsp + 0x60]
mov r8, r13
nop
inc r8
cmp word [rbx + r8*2], 0
jne 0x14001c4d0
mov rdx, rbx
mov rcx, r14
call fcn.14000fab0
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r12
movups xmm0, xmmword [r14]
movups xmmword [r15], xmm0
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [r15 + 0x10], xmm1
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], 7
mov word [r14], r12w
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14001c52b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x14001c549
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov r8, qword [r14 + 0x18]
cmp r8, 8
jb 0x14001c55e
inc r8
mov rdx, qword [r14]
call fcn.1400107d0
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], 7
mov word [r14], r12w
mov rax, r15
jmp 0x14001c57e
mov ecx, 0x80070057
call fcn.140018f70
nop
mov rcx, qword [rbp + 0x30]
xor rcx, rsp
call fcn.140062800
mov rbx, qword [rsp + 0x190]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret