Function at 0x1400a7c90
Capabilities:
Encode data using xor
Hash data with md5

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x70
mov rax, qword [0x140193440]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov r10, qword [rsp + 0xc0]
xor r13d, r13d
mov r11, qword [rsp + 0xc8]
mov rsi, rdx
movsxd rdi, ecx
mov edx, 0x98badcfe
mov dword [rsp + 0x30], edx
mov r15d, 0x67452301
mov qword [rsp + 0x38], r10
mov r12d, 0xefcdab89
mov qword [rsp + 0x40], r11
mov ebx, r8d
mov dword [rsp + 0x20], r13d
mov r8d, r13d
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x2c], r12d
mov dword [rsp + 0x34], 0x10325476
test r9, r9
je 0x1400a7d46
mov ecx, r13d
mov eax, r13d
cmp dword [r9 + rax*4], r8d
jne 0x1400a7d21
inc ecx
inc rax
cmp rax, 4
jl 0x1400a7d10
cmp ecx, 4
jge 0x1400a7d46
movups xmm2, xmmword [r9]
mov edx, dword [r9 + 8]
movdqa xmm1, xmm2
movd r15d, xmm2
psrldq xmm1, 4
movd r12d, xmm1
movups xmmword [rsp + 0x28], xmm2
mov qword [rsp + 0xa0], rbp
cmp edi, 5
ja case.default.0x1400a7d6b
mov rax, rdi
lea rdi, [0x140000000]
mov ecx, dword [rdi + rax*4 + 0xa80dc]
add rcx, rdi
jmp rcx
mov r8d, 1
mov edx, 0x12a3fe2d
mov edi, 0x37abe8f9
test ebx, ebx
je 0x1400a7de1
test r8d, r8d
je 0x1400a7dc0
nop word [rax + rax]
movzx eax, byte [rsi]
lea rsi, [rsi + 1]
imul eax, eax, 0x6d22f5
xor eax, edx
add eax, edi
mov edi, edx
lea edx, [rax - 0x7fffffff]
cmovns edx, eax
sub ebx, 1
jne 0x1400a7d90
lea r15d, [rdx + rdx]
jmp 0x1400a8094
movsx eax, byte [rsi]
lea rsi, [rsi + 1]
imul eax, eax, 0x6d22f5
xor eax, edx
add eax, edi
mov edi, edx
lea edx, [rax - 0x7fffffff]
cmovns edx, eax
sub ebx, 1
jne 0x1400a7dc0
lea r15d, [rdx + rdx]
jmp 0x1400a8094
mov r8d, 1
mov dword [rsp + 0x20], r8d
test ebx, ebx
jle 0x1400a7ef7
mov ebp, 0x20
nop dword [rax]
nop word [rax + rax]
mov r9d, ebx
lea rdi, [rsp + 0x48]
shl r9d, 8
mov r11d, ebx
or r9d, ebx
mov edx, 8
mov eax, r9d
mov r10, rsi
shl eax, 0x10
or r9d, eax
cmp ebx, ebp
mov eax, r9d
cmova r11d, ebp
test r8d, r8d
mov r8d, r13d
je 0x1400a7e80
movzx ecx, byte [r10]
shl eax, 8
add eax, ecx
mov ecx, r8d
and ecx, 0x80000003
jge 0x1400a7e5f
dec ecx
or ecx, 0xfffffffc
inc ecx
cmp ecx, 3
jne 0x1400a7e6f
mov dword [rdi], eax
add rdi, 4
dec edx
mov eax, r9d
inc r8d
inc r10
cmp r8d, r11d
jl 0x1400a7e44
jmp 0x1400a7eaa
movsx ecx, byte [r10]
shl eax, 8
add eax, ecx
mov ecx, r8d
and ecx, 3
cmp cl, 3
jne 0x1400a7e9f
mov dword [rdi], eax
add rdi, 4
dec edx
mov eax, r9d
inc r8d
inc r10
cmp r8d, r11d
jl 0x1400a7e80
test edx, edx
jle 0x1400a7eb4
mov dword [rdi], eax
add rdi, 4
lea eax, [rdx - 2]
test eax, eax
js 0x1400a7ec3
lea ecx, [rax + 1]
mov eax, r9d
rep stosd dword [rdi], eax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x28]
call fcn.1400a81e0
mov r8d, dword [rsp + 0x20]
sub ebx, ebp
add rsi, rbp
test ebx, ebx
jg 0x1400a7e10
mov edx, dword [rsp + 0x30]
mov r12d, dword [rsp + 0x2c]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
mov r13d, edx
mov r15d, r12d
jmp 0x1400a8094
mov r8d, 1
mov dword [rsp + 0x20], r8d
test ebx, ebx
jle 0x1400a8091
mov qword [rsp + 0xa8], r14
mov ebp, 0x10
nop dword [rax]
nop word [rax + rax]
mov r10d, ebx
lea rdi, [rsp + 0x48]
shl r10d, 8
mov r11d, ebx
or r10d, ebx
mov edx, 4
mov eax, r10d
mov r9, rsi
shl eax, 0x10
or r10d, eax
cmp ebx, 0x10
mov ecx, r10d
cmova r11d, ebp
test r8d, r8d
mov r8d, r13d
je 0x1400a7fb0
nop word [rax + rax]
movzx eax, byte [r9]
shl ecx, 8
add ecx, eax
mov eax, r8d
and eax, 0x80000003
jge 0x1400a7f8a
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 3
jne 0x1400a7f9a
mov dword [rdi], ecx
add rdi, 4
dec edx
mov ecx, r10d
inc r8d
inc r9
cmp r8d, r11d
jl 0x1400a7f70
jmp 0x1400a7fd9
movsx eax, byte [r9]
shl ecx, 8
add ecx, eax
mov eax, r8d
and eax, 3
cmp al, 3
jne 0x1400a7fce
mov dword [rdi], ecx
add rdi, 4
dec edx
mov ecx, r10d
inc r8d
inc r9
cmp r8d, r11d
jl 0x1400a7fb0
test edx, edx
jle 0x1400a7fe3
mov dword [rdi], ecx
add rdi, 4
lea eax, [rdx - 2]
test eax, eax
js 0x1400a7ff2
lea ecx, [rax + 1]
mov eax, r10d
rep stosd dword [rdi], eax
mov r10d, dword [rsp + 0x54]
mov r9d, ebp
mov ebp, dword [rsp + 0x4c]
mov r8d, r13d
mov r11d, dword [rsp + 0x50]
mov edx, r15d
mov r14d, dword [rsp + 0x48]
mov edi, r12d
nop dword [rax]
nop word [rax + rax]
mov ecx, edi
lea r8d, [r8 - 0x61c88647]
shr ecx, 5
mov eax, edi
add ecx, ebp
shl eax, 4
add eax, r14d
xor ecx, eax
lea eax, [rdi + r8]
xor ecx, eax
add edx, ecx
mov ecx, edx
mov eax, edx
shr ecx, 5
shl eax, 4
add ecx, r10d
add eax, r11d
xor ecx, eax
lea eax, [rdx + r8]
xor ecx, eax
add edi, ecx
sub r9d, 1
jne 0x1400a8020
mov r8d, dword [rsp + 0x20]
add r15d, edx
add r12d, edi
sub ebx, 0x10
add rsi, 0x10
mov ebp, 0x10
test ebx, ebx
jg 0x1400a7f30
mov r14, qword [rsp + 0xa8]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
mov r13d, r12d
and r15d, 0xfffffffe
mov dword [r10], r15d
test r11, r11
je 0x1400a80a3
mov dword [r11], r13d
xor eax, eax
jmp 0x1400a80af
mov dword [r10], r13d
mov eax, 0x7f2bb759
mov rbp, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1400b2a30
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret