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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x88
mov rax, qword [0x140193440]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r10, qword [rsp + 0xe0]
xor r15d, r15d
mov r11, qword [rsp + 0xe8]
mov rdi, rdx
mov qword [rsp + 0x40], r10
mov edx, 0x98badcfe
mov dword [rsp + 0x38], edx
mov esi, 0x67452301
mov qword [rsp + 0x48], r11
mov ebp, 0xefcdab89
mov dword [rsp + 0x30], esi
mov ebx, r8d
movsxd r8, ecx
mov r14d, r15d
mov dword [rsp + 0x34], ebp
mov dword [rsp + 0x3c], 0x10325476
test r9, r9
je 0x1400a73ba
mov ecx, r15d
mov eax, r15d
cmp dword [r9 + rax*4], r14d
jne 0x1400a7397
inc ecx
inc rax
cmp rax, 4
jl 0x1400a7386
cmp ecx, 4
jge 0x1400a73ba
movups xmm2, xmmword [r9]
mov edx, dword [r9 + 8]
movdqa xmm1, xmm2
movd esi, xmm2
psrldq xmm1, 4
movd ebp, xmm1
movups xmmword [rsp + 0x30], xmm2
cmp r8d, 5
ja case.default.0x1400a73d9
mov rax, r8
lea r8, [0x140000000]
mov ecx, dword [r8 + rax*4 + 0xa75d0]
add rcx, r8
jmp rcx
mov r14d, 1
mov edx, 0x12a3fe2d
mov r8d, 0x37abe8f9
test ebx, ebx
je 0x1400a7453
test r14d, r14d
je 0x1400a7430
nop word [rax + rax]
movzx eax, byte [rdi]
lea rdi, [rdi + 1]
imul eax, eax, 0x6d22f5
xor eax, edx
add eax, r8d
mov r8d, edx
lea edx, [rax - 0x7fffffff]
cmovns edx, eax
sub ebx, 1
jne 0x1400a7400
lea esi, [rdx + rdx]
jmp 0x1400a7596
movsx eax, byte [rdi]
lea rdi, [rdi + 1]
imul eax, eax, 0x6d22f5
xor eax, edx
add eax, r8d
mov r8d, edx
lea edx, [rax - 0x7fffffff]
cmovns edx, eax
sub ebx, 1
jne 0x1400a7430
lea esi, [rdx + rdx]
jmp 0x1400a7596
mov r14d, 1
test ebx, ebx
jle 0x1400a74b6
nop word [rax + rax]
mov r9d, 8
mov dword [rsp + 0x20], r14d
lea r8, [rsp + 0x50]
mov edx, ebx
mov rcx, rdi
call fcn.1400a7a70
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x30]
call fcn.1400a76d0
sub ebx, 0x20
add rdi, 0x20
test ebx, ebx
jg 0x1400a7470
mov edx, dword [rsp + 0x38]
mov ebp, dword [rsp + 0x34]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
mov r15d, edx
mov esi, ebp
jmp 0x1400a7596
mov r14d, 1
test ebx, ebx
jle 0x1400a7593
mov qword [rsp + 0xc0], r12
mov qword [rsp + 0x80], r13
nop
mov r9d, 4
mov dword [rsp + 0x20], r14d
lea r8, [rsp + 0x50]
mov edx, ebx
mov rcx, rdi
call fcn.1400a7a70
mov r11d, dword [rsp + 0x5c]
mov r9d, r15d
mov r12d, dword [rsp + 0x58]
mov edx, esi
mov r13d, dword [rsp + 0x54]
mov r8d, ebp
mov r10d, 0x10
nop word [rax + rax]
mov ecx, r8d
lea r9d, [r9 - 0x61c88647]
shr ecx, 5
mov eax, r8d
add ecx, r13d
shl eax, 4
add eax, dword [rsp + 0x50]
xor ecx, eax
lea eax, [r8 + r9]
xor ecx, eax
add edx, ecx
mov ecx, edx
mov eax, edx
shr ecx, 5
shl eax, 4
add ecx, r11d
add eax, r12d
xor ecx, eax
lea eax, [rdx + r9]
xor ecx, eax
add r8d, ecx
sub r10d, 1
jne 0x1400a7520
add esi, edx
add ebp, r8d
sub ebx, 0x10
add rdi, 0x10
test ebx, ebx
jg 0x1400a74e0
mov r13, qword [rsp + 0x80]
mov r12, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
mov r15d, ebp
and esi, 0xfffffffe
mov dword [r10], esi
test r11, r11
je 0x1400a75a4
mov dword [r11], r15d
xor eax, eax
jmp 0x1400a75b0
mov dword [r10], r15d
mov eax, 0x7f2bb759
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1400b1f80
add rsp, 0x88
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret