Function at 0x14003f028
Capabilities:
Hash data with md5

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x88
mov r9, r8
mov r8, rdx
xor r10d, r10d
mov dword [rbp - 1], r10d
mov eax, 0xefcdab89
mov r13d, 0x67452301
mov dword [rbp + 0x67], eax
mov ecx, 0x98badcfe
mov dword [rbp + 0x7f], ecx
mov edx, 0x10325476
mov dword [rbp - 0x49], edx
mov dword [rbp - 0x19], r13d
mov dword [rbp - 0x15], eax
mov dword [rbp - 0x11], ecx
mov dword [rbp - 0xd], edx
mov qword [r8], r10
mov qword [r8 + 0x10], r10
mov qword [r8 + 0x18], 0xf
mov byte [r8], r10b
mov dword [rbp - 1], 1
mov r14, r9
cmp qword [r9 + 0x18], 0x10
jb 0x14003f0ac
mov r14, qword [r9]
mov r8, r10
mov qword [rbp - 9], r10
or rsi, 0xffffffffffffffff
inc rsi
cmp byte [r14 + rsi], r10b
jne 0x14003f0b7
lea r15d, [rsi*8]
mov edx, r15d
and edx, 0x800001ff
jge 0x14003f0dd
dec edx
or edx, 0xfffffe00
inc edx
mov r9d, 0x1c0
mov eax, r9d
sub eax, edx
mov ecx, 0x3c0
sub ecx, edx
cmp edx, r9d
cmovle ecx, eax
lea r12d, [r15 + rcx]
test ecx, ecx
jle 0x14003f14c
mov eax, r12d
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rdi, eax
lea rcx, [rdi + 8]
call fcn.1400402e0
mov qword [rbp - 9], rax
lea r8, [rdi + 8]
xor edx, edx
mov rcx, rax
call fcn.1400420a0
movsxd rbx, esi
mov r8, rbx
mov rdx, r14
mov rcx, qword [rbp - 9]
call fcn.140045b40
mov r8, qword [rbp - 9]
mov byte [r8 + rbx], 0x80
movsxd rcx, r15d
mov qword [rdi + r8], rcx
xor r10d, r10d
mov eax, r12d
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 8
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
cdqe
mov qword [rbp + 7], rax
test rax, rax
jle 0x14003f69a
mov r12, r8
mov qword [rbp - 0x21], r8
test r12, r12
je 0x14003f684
movdqa xmm0, xmmword [0x140200520]
movdqu xmmword [rbp - 0x41], xmm0
mov ebx, r10d
mov rdi, r12
lea r12d, [rbx + 1]
movd xmm0, r12d
cvtdq2pd xmm0, xmm0
call fcn.14005a8f0
andps xmm0, xmmword [0x140200550]
mulsd xmm0, qword [0x1402004f0]
cvttsd2si r8, xmm0
and ebx, 3
jne 0x14003f1f5
mov ecx, dword [rbp + rbx*4 - 0x41]
mov esi, dword [rbp + 0x67]
mov edx, esi
not edx
mov r15d, dword [rbp - 0x49]
and edx, r15d
mov r14d, dword [rbp + 0x7f]
mov eax, r14d
and eax, esi
or edx, eax
add edx, dword [rdi]
add edx, r8d
add edx, r13d
test ecx, ecx
jle 0x14003f1ec
rol edx, cl
lea r13d, [rdx + rsi]
jmp 0x14003f29a
cmp ebx, 1
jne 0x14003f22c
mov ecx, dword [rbp + rbx*4 - 0x41]
mov edx, r13d
not edx
mov r14d, dword [rbp + 0x7f]
and edx, r14d
mov esi, dword [rbp + 0x67]
mov eax, esi
and eax, r13d
or edx, eax
add edx, dword [rdi]
add edx, r8d
add edx, dword [rbp - 0x49]
test ecx, ecx
jle 0x14003f222
rol edx, cl
lea r15d, [rdx + r13]
mov dword [rbp - 0x49], r15d
jmp 0x14003f29a
mov r15d, dword [rbp - 0x49]
cmp ebx, 2
jne 0x14003f263
mov ecx, dword [rbp + rbx*4 - 0x41]
mov edx, r15d
not edx
mov esi, dword [rbp + 0x67]
and edx, esi
mov eax, r15d
and eax, r13d
or edx, eax
add edx, dword [rdi]
add edx, r8d
add edx, dword [rbp + 0x7f]
test ecx, ecx
jle 0x14003f259
rol edx, cl
lea r14d, [rdx + r15]
mov dword [rbp + 0x7f], r14d
jmp 0x14003f29a
mov r14d, dword [rbp + 0x7f]
cmp ebx, 3
jne 0x14003f297
mov ecx, dword [rbp + rbx*4 - 0x41]
mov edx, r14d
not edx
and edx, r13d
mov eax, r15d
and eax, r14d
or edx, eax
add edx, dword [rdi]
add edx, r8d
add edx, dword [rbp + 0x67]
test ecx, ecx
jle 0x14003f28e
rol edx, cl
lea esi, [rdx + r14]
mov dword [rbp + 0x67], esi
jmp 0x14003f29a
mov esi, dword [rbp + 0x67]
mov ebx, r12d
add rdi, 4
cmp r12d, 0x10
jl 0x14003f196
movdqa xmm0, xmmword [0x140200500]
movdqu xmmword [rbp - 0x41], xmm0
xor ebx, ebx
lea edi, [rbx + 1]
lea eax, [rbx + 0x11]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
call fcn.14005a8f0
andps xmm0, xmmword [0x140200550]
mulsd xmm0, qword [0x1402004f0]
cvttsd2si r9, xmm0
mov ecx, edi
and ecx, 0x8000000f
jge 0x14003f2f2
dec ecx
or ecx, 0xfffffff0
inc ecx
mov eax, ebx
and eax, 0x80000003
jge 0x14003f302
dec eax
or eax, 0xfffffffc
inc eax
mov r12, qword [rbp - 0x21]
test eax, eax
jne 0x14003f340
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
mov edx, r15d
not edx
and edx, r14d
mov eax, r15d
and eax, esi
or edx, eax
movsxd rax, ecx
add edx, dword [r12 + rax*4]
add edx, r9d
add edx, r13d
test r8d, r8d
jle 0x14003f337
mov ecx, r8d
rol edx, cl
lea r13d, [rdx + rsi]
jmp 0x14003f3e5
cmp eax, 1
jne 0x14003f378
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
mov edx, r14d
not edx
and edx, esi
mov eax, r14d
and eax, r13d
or edx, eax
movsxd rax, ecx
add edx, dword [r12 + rax*4]
add edx, r9d
add edx, r15d
test r8d, r8d
jle 0x14003f372
mov ecx, r8d
rol edx, cl
lea r15d, [rdx + r13]
jmp 0x14003f3e5
cmp eax, 2
jne 0x14003f3af
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
mov edx, esi
not edx
and edx, r13d
mov eax, r15d
and eax, esi
or edx, eax
movsxd rax, ecx
add edx, dword [r12 + rax*4]
add edx, r9d
add edx, r14d
test r8d, r8d
jle 0x14003f3a9
mov ecx, r8d
rol edx, cl
lea r14d, [rdx + r15]
jmp 0x14003f3e5
cmp eax, 3
jne 0x14003f3e5
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
mov edx, r13d
not edx
and edx, r15d
mov eax, r14d
and eax, r13d
or edx, eax
movsxd rax, ecx
add edx, dword [r12 + rax*4]
add edx, r9d
add edx, esi
test r8d, r8d
jle 0x14003f3e1
mov ecx, r8d
rol edx, cl
lea esi, [rdx + r14]
inc ebx
add edi, 5
cmp edi, 0x51
jl 0x14003f2bd
movdqa xmm0, xmmword [0x140200530]
movdqu xmmword [rbp - 0x41], xmm0
xor ebx, ebx
lea edi, [rbx + 5]
lea eax, [rbx + 0x21]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
call fcn.14005a8f0
andps xmm0, xmmword [0x140200550]
mulsd xmm0, qword [0x1402004f0]
cvttsd2si r9, xmm0
mov ecx, edi
and ecx, 0x8000000f
jge 0x14003f43a
dec ecx
or ecx, 0xfffffff0
inc ecx
mov eax, ebx
and eax, 0x80000003
jge 0x14003f44a
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x14003f47f
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
movsxd rax, ecx
mov ecx, r15d
xor ecx, r14d
xor ecx, esi
mov edx, dword [r12 + rax*4]
add edx, ecx
add edx, r9d
add edx, r13d
test r8d, r8d
jle 0x14003f476
mov ecx, r8d
rol edx, cl
lea r13d, [rdx + rsi]
jmp 0x14003f516
cmp eax, 1
jne 0x14003f4b2
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
movsxd rax, ecx
mov ecx, r14d
xor ecx, esi
xor ecx, r13d
mov edx, dword [r12 + rax*4]
add edx, ecx
add edx, r9d
add edx, r15d
test r8d, r8d
jle 0x14003f4ac
mov ecx, r8d
rol edx, cl
lea r15d, [rdx + r13]
jmp 0x14003f516
cmp eax, 2
jne 0x14003f4e5
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
movsxd rax, ecx
mov ecx, r15d
xor ecx, esi
xor ecx, r13d
mov edx, dword [r12 + rax*4]
add edx, ecx
add edx, r9d
add edx, r14d
test r8d, r8d
jle 0x14003f4df
mov ecx, r8d
rol edx, cl
lea r14d, [rdx + r15]
jmp 0x14003f516
cmp eax, 3
jne 0x14003f516
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
movsxd rax, ecx
mov ecx, r15d
xor ecx, r14d
xor ecx, r13d
mov edx, dword [r12 + rax*4]
add edx, ecx
add edx, r9d
add edx, esi
test r8d, r8d
jle 0x14003f512
mov ecx, r8d
rol edx, cl
lea esi, [rdx + r14]
inc ebx
add edi, 3
cmp edi, 0x35
jl 0x14003f405
movdqa xmm0, xmmword [0x140200510]
movdqu xmmword [rbp - 0x41], xmm0
xor ebx, ebx
xor edi, edi
lea eax, [rbx + 0x31]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
call fcn.14005a8f0
andps xmm0, xmmword [0x140200550]
mulsd xmm0, qword [0x1402004f0]
cvttsd2si r9, xmm0
mov ecx, edi
and ecx, 0x8000000f
jge 0x14003f56a
dec ecx
or ecx, 0xfffffff0
inc ecx
mov eax, ebx
and eax, 0x80000003
jge 0x14003f57a
dec eax
or eax, 0xfffffffc
inc eax
xor r10d, r10d
test eax, eax
jne 0x14003f5b2
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
mov edx, r15d
not edx
or edx, esi
xor edx, r14d
movsxd rax, ecx
add edx, dword [r12 + rax*4]
add edx, r9d
add edx, r13d
test r8d, r8d
jle 0x14003f5a9
mov ecx, r8d
rol edx, cl
lea r13d, [rdx + rsi]
jmp 0x14003f649
cmp eax, 1
jne 0x14003f5e5
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
mov edx, r14d
not edx
or edx, r13d
xor edx, esi
movsxd rax, ecx
add edx, dword [r12 + rax*4]
add edx, r9d
add edx, r15d
test r8d, r8d
jle 0x14003f5df
mov ecx, r8d
rol edx, cl
lea r15d, [rdx + r13]
jmp 0x14003f649
cmp eax, 2
jne 0x14003f618
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
mov edx, esi
not edx
or edx, r15d
xor edx, r13d
movsxd rax, ecx
add edx, dword [r12 + rax*4]
add edx, r9d
add edx, r14d
test r8d, r8d
jle 0x14003f612
mov ecx, r8d
rol edx, cl
lea r14d, [rdx + r15]
jmp 0x14003f649
cmp eax, 3
jne 0x14003f649
cdqe
mov r8d, dword [rbp + rax*4 - 0x41]
mov edx, r13d
not edx
or edx, r14d
xor edx, r15d
movsxd rax, ecx
add edx, dword [r12 + rax*4]
add edx, r9d
add edx, esi
test r8d, r8d
jle 0x14003f645
mov ecx, r8d
rol edx, cl
lea esi, [rdx + r14]
inc ebx
add edi, 7
cmp edi, 0x70
jl 0x14003f535
add r13d, dword [rbp - 0x19]
mov dword [rbp - 0x19], r13d
add esi, dword [rbp - 0x15]
mov dword [rbp + 0x67], esi
mov dword [rbp - 0x15], esi
add r14d, dword [rbp - 0x11]
mov dword [rbp + 0x7f], r14d
mov dword [rbp - 0x11], r14d
add r15d, dword [rbp - 0xd]
mov dword [rbp - 0x49], r15d
mov dword [rbp - 0xd], r15d
mov rax, qword [rbp + 7]
add r12, 0x40
mov qword [rbp - 0x21], r12
sub rax, 1
mov qword [rbp + 7], rax
jne 0x14003f17a
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x14003f6a8
call fcn.14004029c
mov r8d, r13d
lea rdx, [rbp - 0x41]
call fcn.14003ef9c
nop
mov rdx, rax
mov rbx, qword [rbp + 0x6f]
mov rcx, rbx
call fcn.14003fa10
nop
mov esi, 0x1000
mov rdx, qword [rbp - 0x29]
cmp rdx, 0x10
jb 0x14003f701
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, rsi
jb 0x14003f6fc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003f85a
call fcn.14004029c
mov r8d, dword [rbp + 0x67]
lea rdx, [rbp - 0x41]
call fcn.14003ef9c
nop
mov rdx, rax
mov rcx, rbx
call fcn.14003fa10
nop
mov rdx, qword [rbp - 0x29]
cmp rdx, 0x10
jb 0x14003f752
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, rsi
jb 0x14003f74d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003f860
call fcn.14004029c
mov r8d, dword [rbp + 0x7f]
lea rdx, [rbp - 0x41]
call fcn.14003ef9c
nop
mov rdx, rax
mov rcx, rbx
call fcn.14003fa10
nop
mov rdx, qword [rbp - 0x29]
cmp rdx, 0x10
jb 0x14003f7a3
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, rsi
jb 0x14003f79e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003f866
call fcn.14004029c
mov r8d, dword [rbp - 0x49]
lea rdx, [rbp - 0x41]
call fcn.14003ef9c
nop
mov rdx, rax
mov rcx, rbx
call fcn.14003fa10
nop
mov rdx, qword [rbp - 0x29]
cmp rdx, 0x10
jb 0x14003f7f1
inc rdx
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, rsi
jb 0x14003f7eb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003f84e
call fcn.14004029c
nop
mov rdi, qword [rbp + 0x77]
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x14003f827
inc rdx
mov rcx, qword [rdi]
cmp rdx, rsi
jb 0x14003f822
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14003f854
mov rcx, r8
call fcn.14004029c
and qword [rdi + 0x10], 0
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov rax, rbx
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1400463ec
nop
call fcn.1400463ec
nop
call fcn.1400463ec
int3
call fcn.1400463ec
int3
call fcn.1400463ec
int3