Function at 0x140004600
Capabilities:
Hash data with md5

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x14035f0c0]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov r15d, 0
mov qword [rsp + 0x38], rcx
lea rbx, [r8 + 0x48]
mov dword [r11 - 0x58], 0x67452301
mov dword [r11 - 0x4c], 0x10325476
mov r14d, 0xefcdab89
mov dword [r11 - 0x54], r14d
mov r13d, 0x98badcfe
mov dword [r11 - 0x50], r13d
mov rdi, r8
mov qword [rsp + 0x20], r15
mov rsi, rdx
lea rbp, [r8*8]
mov r12d, r15d
and rbx, 0xffffffffffffffc0
je 0x1400046e0
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
ja 0x140004ad5
cmp rbx, 0x1000
jb 0x1400046bf
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140004ac9
call fcn.1400415d8
test rax, rax
je 0x140004acf
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x1400046ca
mov rcx, rbx
call fcn.1400415d8
mov r15, rax
mov r8, rbx
mov qword [rsp + 0x20], r15
xor edx, edx
lea r12, [r15 + rbx]
mov rcx, r15
call fcn.14006f4e0
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call fcn.14006ee40
sub r12, r15
mov byte [r15 + rdi], 0x80
mov rcx, r12
mov qword [r15 + rbx - 8], rbp
shr rcx, 6
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rcx
test rcx, rcx
je 0x140004a5a
mov r12, r15
lea r10, [0x140000000]
mov r15d, 0x67452301
mov eax, 0x10325476
nop word [rax + rax]
movups xmm0, xmmword [r12]
xor r8d, r8d
mov ebp, 2
movups xmm1, xmmword [r12 + 0x10]
mov r9d, r14d
mov esi, r13d
movaps xmmword [rsp + 0x40], xmm0
mov r11d, r15d
movups xmm0, xmmword [r12 + 0x20]
mov edi, eax
xor r14d, r14d
movaps xmmword [rsp + 0x50], xmm1
mov r13d, ebp
movups xmm1, xmmword [r12 + 0x30]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm1
cmp r8d, 0x10
jge 0x14000478d
mov eax, esi
mov edx, r9d
not edx
and eax, r9d
and edx, edi
or edx, eax
mov eax, r8d
jmp 0x1400047de
mov edx, edi
cmp r8d, 0x20
jge 0x1400047ad
not edx
mov eax, edi
and eax, r9d
and edx, esi
or edx, eax
lea eax, [r8*4 + 1]
add eax, r8d
jmp 0x1400047d0
cmp r8d, 0x30
jge 0x1400047c5
xor edx, esi
lea eax, [r8*2 + 5]
xor edx, r9d
add eax, r8d
jmp 0x1400047d0
not edx
or edx, r9d
xor edx, esi
imul eax, r8d, 7
and eax, 0x8000000f
jge 0x1400047de
dec eax
or eax, 0xfffffff0
inc eax
mov eax, dword [rsp + rax*4 + 0x40]
mov ebx, r9d
add eax, dword [r14 + r10 + 0x73660]
movzx ecx, byte [r14 + r10 + 0x73560]
add eax, edx
add eax, r11d
rol eax, cl
add r9d, eax
lea eax, [r13 - 1]
cmp eax, 0x10
jge 0x140004821
mov edx, r9d
lea r10d, [r8 + 2]
not edx
mov eax, ebx
and eax, r9d
and edx, esi
or edx, eax
lea eax, [r10 - 1]
jmp 0x14000488d
lea eax, [rbp - 1]
mov edx, esi
cmp eax, 0x20
jge 0x140004855
not edx
mov eax, esi
and eax, r9d
and edx, ebx
or edx, eax
lea eax, [r8*4 + 6]
add eax, r8d
and eax, 0x8000000f
jge 0x14000484f
dec eax
or eax, 0xfffffff0
inc eax
lea r10d, [r8 + 2]
jmp 0x14000488d
lea r10d, [r8 + 2]
lea eax, [r10 - 1]
cmp eax, 0x30
jge 0x140004871
xor edx, ebx
lea eax, [r8 + 4]
xor edx, r9d
lea eax, [r8 + rax*2]
jmp 0x14000487f
not edx
lea eax, [r8 + 1]
or edx, r9d
xor edx, ebx
imul eax, eax, 7
and eax, 0x8000000f
jge 0x14000488d
dec eax
or eax, 0xfffffff0
inc eax
mov ecx, dword [rsp + rax*4 + 0x40]
mov r11d, r9d
lea rax, [0x140000000]
add ecx, dword [r14 + rax + 0x73664]
lea eax, [rdx + rcx]
add eax, edi
lea rdi, [0x140000000]
movzx ecx, byte [r14 + rdi + 0x73564]
rol eax, cl
add r9d, eax
cmp r10d, 0x10
jge 0x1400048d7
mov eax, r11d
mov edx, r9d
not edx
and eax, r9d
and edx, ebx
or edx, eax
mov eax, r10d
jmp 0x14000492e
mov edx, ebx
cmp r10d, 0x20
jge 0x1400048f8
not edx
mov eax, ebx
and eax, r9d
and edx, r11d
or edx, eax
lea eax, [r8*4 + 0xb]
add eax, r8d
jmp 0x140004920
cmp r10d, 0x30
jge 0x140004911
xor edx, r11d
lea eax, [r8*2 + 0xb]
xor edx, r9d
add eax, r8d
jmp 0x140004920
not edx
lea eax, [r8 + 2]
or edx, r9d
xor edx, r11d
imul eax, eax, 7
and eax, 0x8000000f
jge 0x14000492e
dec eax
or eax, 0xfffffff0
inc eax
mov eax, dword [rsp + rax*4 + 0x40]
lea rcx, [0x140000000]
add eax, dword [r14 + rdi + 0x73668]
mov edi, r9d
movzx ecx, byte [r14 + rcx + 0x73568]
add eax, edx
add eax, esi
rol eax, cl
add r9d, eax
lea eax, [r10 + 1]
cmp eax, 0x10
jge 0x140004970
mov edx, r9d
mov ecx, edi
not edx
and ecx, r9d
and edx, r11d
or edx, ecx
jmp 0x1400049be
mov edx, r11d
cmp eax, 0x20
jge 0x14000498e
not edx
mov eax, r11d
and eax, r9d
and edx, edi
or edx, eax
lea eax, [r8 + 4]
lea eax, [r8 + rax*4]
jmp 0x1400049b0
cmp eax, 0x30
jge 0x1400049a2
xor edx, edi
lea eax, [r8 + 7]
xor edx, r9d
lea eax, [r8 + rax*2]
jmp 0x1400049b0
not edx
lea eax, [r8 + 3]
or edx, r9d
xor edx, edi
imul eax, eax, 7
and eax, 0x8000000f
jge 0x1400049be
dec eax
or eax, 0xfffffff0
inc eax
mov eax, dword [rsp + rax*4 + 0x40]
lea r10, [0x140000000]
add eax, dword [r14 + r10 + 0x7366c]
mov esi, r9d
movzx ecx, byte [r14 + r10 + 0x7356c]
add edx, eax
add edx, ebx
add r8d, 4
rol edx, cl
add r14, 0x10
add r9d, edx
add r13d, 4
add ebp, 4
cmp r8d, 0x40
jl 0x140004774
mov r14d, dword [rsp + 0x84]
add r15d, r11d
mov r13d, dword [rsp + 0x88]
add r14d, r9d
mov eax, dword [rsp + 0x8c]
add r13d, esi
add eax, edi
mov dword [rsp + 0x84], r14d
add r12, 0x40
mov dword [rsp + 0x88], r13d
sub qword [rsp + 0x28], 1
mov dword [rsp + 0x8c], eax
jne 0x140004730
mov r12, qword [rsp + 0x30]
mov dword [rsp + 0x80], r15d
mov r15, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x38]
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rbx], xmm0
test r15, r15
je 0x140004a9b
cmp r12, 0x1000
jb 0x140004a90
mov rcx, qword [r15 - 8]
add r12, 0x27
sub r15, rcx
lea rax, [r15 - 8]
cmp rax, 0x1f
ja 0x140004acf
mov r15, rcx
mov rdx, r12
mov rcx, r15
call fcn.140041614
mov rax, rbx
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140041c10
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140004580
int3
call fcn.140047824
int3
call fcn.1400045a0
int3