Function at 0x140016450
Capabilities:
Hash data with md5

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x14007f080]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov r14, r8
mov rsi, rdx
mov rbx, rcx
mov qword [rsp + 0x28], rdx
mov qword [rbp - 0x40], r8
xor edi, edi
mov qword [rbp - 0x20], rdi
mov dword [rbp - 0x30], 0x67452301
mov dword [rbp - 0x2c], 0xefcdab89
mov dword [rbp - 0x28], 0x98badcfe
mov dword [rbp - 0x24], 0x10325476
mov rdx, qword [r8]
cmp dword [rdx - 8], 1
jle 0x1400164b9
mov edx, dword [rdx - 0x10]
mov rcx, r8
call fcn.140002cd0
lea rax, [rsp + 0x38]
mov qword [rsp + 0x30], rax
mov r8d, 3
mov rdx, qword [r14]
lea rcx, [rsp + 0x30]
call fcn.140015320
mov rax, qword [r14]
mov r9d, dword [rax - 0x10]
mov r8, qword [rsp + 0x30]
lea rdx, [rbp - 0x30]
mov rcx, qword [rbx]
call fcn.140039a50
lea rax, [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
cmp rcx, rax
je 0x140016502
call fcn.14004b808
mov byte [rbp + 0x30], 0
xor eax, eax
mov qword [rbp + 0x31], rax
mov dword [rbp + 0x39], eax
mov word [rbp + 0x3d], ax
mov byte [rbp + 0x3f], al
mov rbx, qword [rbx]
mov r8d, edi
lea rdx, [rbp + 0x42]
lea r9d, [rax + 2]
nop dword [rax]
nop dword [rax + rax]
mov eax, r8d
lea rcx, [rax*4]
movzx eax, byte [rbp + rcx - 0x20]
mov byte [rdx - 2], al
movzx eax, byte [rbp + rcx - 0x1f]
mov byte [rdx - 1], al
movzx eax, byte [rbp + rcx - 0x1e]
mov byte [rdx], al
movzx eax, byte [rbp + rcx - 0x1d]
mov byte [rdx + 1], al
inc r8d
lea rdx, [rdx + 4]
sub r9, 1
jne 0x140016530
mov edx, dword [rbp - 0x20]
shr edx, 3
and edx, 0x3f
mov eax, 0x78
sub eax, edx
mov r9d, 0x38
sub r9d, edx
cmp edx, 0x38
cmovae r9d, eax
lea r8, [0x140082ee0]
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140039a50
mov r9d, 8
lea r8, [rbp + 0x40]
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.140039a50
mov r8d, edi
lea rdx, [rbp + 0x32]
mov r9d, 4
nop dword [rax]
mov eax, r8d
lea rcx, [rax*4]
movzx eax, byte [rbp + rcx - 0x30]
mov byte [rdx - 2], al
movzx eax, byte [rbp + rcx - 0x2f]
mov byte [rdx - 1], al
movzx eax, byte [rbp + rcx - 0x2e]
mov byte [rdx], al
movzx eax, byte [rbp + rcx - 0x2d]
mov byte [rdx + 1], al
inc r8d
lea rdx, [rdx + 4]
sub r9, 1
jne 0x1400165c0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rax
mov rbx, rdi
nop word [rax + rax]
movzx r8d, byte [rbp + rbx + 0x30]
movsxd rax, edi
lea rcx, [rbp + 0x48]
add rcx, rax
lea rdx, str._02x
call fcn.140016780
add edi, 2
inc rbx
cmp rbx, 0x10
jl 0x140016620
mov byte [rbp + 0x68], 0
call fcn.140001a70
mov rcx, rax
test rax, rax
je 0x1400166ca
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsi], rax
lea rax, [rbp + 0x48]
mov rcx, rsi
cmp rax, 0x10000
jae 0x140016683
lea rax, [rbp + 0x48]
movzx edx, ax
call fcn.140002950
jmp 0x14001668d
lea rdx, [rbp + 0x48]
call fcn.140015a70
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov ecx, 0xffffffff
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x1400166ad
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, rsi
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.14003f1d0
add rsp, 0x180
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.1400018b0
int3