Function at 0x140009608
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push r14
push rsi
push rdi
push rbx
test rdx, rdx
je 0x140009876
not ecx
test r8, r8
je 0x14000963f
lea rax, [0x140053750]
test dl, 3
je 0x140009642
movzx ebx, byte [rdx]
inc rdx
movzx edi, cl
xor edi, ebx
shr ecx, 8
xor ecx, dword [rax + rdi*4]
dec r8
jne 0x140009624
xor r8d, r8d
mov rax, r8
not rax
mov rbx, 0xffffffffffffffe0
cmp rax, rbx
cmovbe rax, rbx
lea r9, [r8 + rax]
add r9, 0x20
and r9, 0xffffffffffffffe0
cmp r8, 0x20
jb 0x1400097fa
lea rax, [0x140053750]
mov r10, rdx
mov r11, r8
xor ecx, dword [r10]
movzx esi, cl
movzx edi, ch
mov ebx, dword [rax + rdi*4 + 0x800]
xor ebx, dword [rax + rsi*4 + 0xc00]
mov esi, ecx
shr esi, 0x10
movzx esi, sil
xor ebx, dword [rax + rsi*4 + 0x400]
shr ecx, 0x18
xor ebx, dword [rax + rcx*4]
xor ebx, dword [r10 + 4]
movzx esi, bl
movzx ecx, bh
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rsi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor ecx, dword [rax + rsi*4 + 0x400]
shr ebx, 0x18
xor ecx, dword [rax + rbx*4]
xor ecx, dword [r10 + 8]
movzx esi, cl
movzx edi, ch
mov ebx, dword [rax + rdi*4 + 0x800]
xor ebx, dword [rax + rsi*4 + 0xc00]
mov esi, ecx
shr esi, 0x10
movzx esi, sil
xor ebx, dword [rax + rsi*4 + 0x400]
shr ecx, 0x18
xor ebx, dword [rax + rcx*4]
xor ebx, dword [r10 + 0xc]
movzx esi, bl
movzx ecx, bh
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rsi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor ecx, dword [rax + rsi*4 + 0x400]
shr ebx, 0x18
xor ecx, dword [rax + rbx*4]
xor ecx, dword [r10 + 0x10]
movzx esi, cl
movzx edi, ch
mov ebx, dword [rax + rdi*4 + 0x800]
xor ebx, dword [rax + rsi*4 + 0xc00]
mov esi, ecx
shr esi, 0x10
movzx esi, sil
xor ebx, dword [rax + rsi*4 + 0x400]
shr ecx, 0x18
xor ebx, dword [rax + rcx*4]
xor ebx, dword [r10 + 0x14]
movzx esi, bl
movzx ecx, bh
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rsi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor ecx, dword [rax + rsi*4 + 0x400]
shr ebx, 0x18
xor ecx, dword [rax + rbx*4]
xor ecx, dword [r10 + 0x18]
movzx esi, cl
movzx edi, ch
mov ebx, dword [rax + rdi*4 + 0x800]
xor ebx, dword [rax + rsi*4 + 0xc00]
mov esi, ecx
shr esi, 0x10
movzx esi, sil
xor ebx, dword [rax + rsi*4 + 0x400]
shr ecx, 0x18
xor ebx, dword [rax + rcx*4]
xor ebx, dword [r10 + 0x1c]
movzx esi, bl
movzx ecx, bh
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rsi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor ecx, dword [rax + rsi*4 + 0x400]
shr ebx, 0x18
xor ecx, dword [rax + rbx*4]
add r11, 0xffffffffffffffe0
add r10, 0x20
cmp r11, 0x1f
ja 0x140009679
mov r10, r8
sub r10, r9
mov rax, r10
not rax
mov rbx, 0xfffffffffffffffc
cmp rax, rbx
cmovbe rax, rbx
lea r11, [r10 + rax]
add r11, 4
and r11, 0xfffffffffffffffc
cmp r10, 4
jb 0x14000987a
lea rsi, [rdx + r9]
lea r14, [0x140053750]
mov rbx, r10
xor ecx, dword [rsi]
add rsi, 4
movzx edi, cl
movzx eax, ch
mov eax, dword [r14 + rax*4 + 0x800]
xor eax, dword [r14 + rdi*4 + 0xc00]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r14 + rdi*4 + 0x400]
shr ecx, 0x18
xor eax, dword [r14 + rcx*4]
add rbx, 0xfffffffffffffffc
mov ecx, eax
cmp rbx, 3
ja 0x140009834
jmp 0x14000987c
xor eax, eax
jmp 0x1400098a5
mov eax, ecx
cmp r10, r11
je 0x1400098a3
add r9, r11
lea rcx, [0x140053750]
movzx ebx, byte [rdx + r9]
movzx edi, al
xor edi, ebx
shr eax, 8
xor eax, dword [rcx + rdi*4]
inc r9
cmp r8, r9
jne 0x14000988b
not eax
pop rbx
pop rdi
pop rsi
pop r14
ret