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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
test rdx, rdx
jne 0x140a5213c
xor eax, eax
jmp 0x140a52467
mov r9, rdx
mov r10d, ecx
not r10d
cmp r8, 0x17
jb 0x140a52278
test r9b, 3
je 0x140a52181
lea rax, [0x140ccd8b0]
movzx ecx, r10b
shr r10d, 8
movzx edx, byte [r9]
inc r9
xor ecx, edx
xor r10d, dword [rax + rcx*4]
dec r8
je 0x140a52181
mov ecx, r9d
and ecx, 3
test rcx, rcx
jne 0x140a5215c
movabs rcx, 0xcccccccccccccccd
mov rax, r8
mul rcx
shr rdx, 4
lea rax, [rdx*4]
lea rcx, [rax + rax*4]
xor r10d, dword [r9]
xor edi, edi
mov rbp, rdx
dec rbp
jne 0x140a5235e
xor esi, esi
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x140a521e7
mov r9, qword [rsp + 0x20]
xor r10d, dword [r9 + 0x14]
add r9, 0x14
mov rbp, qword [rsp + 0x18]
dec rbp
jne 0x140a52387
mov r9, qword [rsp]
mov r8, qword [rsp + 0x10]
xor edi, edi
mov rcx, qword [rsp + 8]
sub r8, rcx
lea rcx, [0x140ccd8b0]
movzx ebp, r10b
shr r10d, 8
xor r10d, dword [rcx + rbp*4]
inc edi
cmp edi, 4
jne 0x140a521f1
xor r10d, ebx
xor r10d, dword [r9 + 4]
xor ebp, ebp
movzx ebx, r10b
shr r10d, 8
xor r10d, dword [rcx + rbx*4]
inc ebp
cmp ebp, 4
jne 0x140a5220d
xor r10d, esi
xor r10d, dword [r9 + 8]
xor ebp, ebp
movzx ebx, r10b
shr r10d, 8
xor r10d, dword [rcx + rbx*4]
inc ebp
cmp ebp, 4
jne 0x140a52229
xor r10d, edx
xor r10d, dword [r9 + 0xc]
xor edx, edx
movzx ebp, r10b
shr r10d, 8
xor r10d, dword [rcx + rbp*4]
inc edx
cmp edx, 4
jne 0x140a52245
xor r10d, eax
xor r10d, dword [r9 + 0x10]
xor eax, eax
movzx edx, r10b
shr r10d, 8
xor r10d, dword [rcx + rdx*4]
inc eax
cmp eax, 4
jne 0x140a52261
add r9, 0x14
cmp r8, 8
jb 0x140a5234d
lea rax, [r8 - 8]
mov rcx, rax
and rcx, 0xfffffffffffffff8
lea rdx, [rcx + 8]
lea rbp, [0x140ccd8b0]
mov rbx, r9
add r8, 0xfffffffffffffff8
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 1]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 2]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 3]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 4]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 5]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 6]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 7]
add rbx, 8
xor edi, esi
xor r10d, dword [rbp + rdi*4]
cmp r8, 7
ja 0x140a5229b
sub rax, rcx
add r9, rdx
mov r8, rax
test r8, r8
jne 0x140a52440
mov eax, r10d
jmp 0x140a52465
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], r8
lea rax, [rdx + rdx*4]
lea rax, [r9 + rax*4]
add rax, 0xffffffffffffffec
mov qword [rsp], rax
xor eax, eax
lea r13, [0x140ccdcb0]
xor edx, edx
xor ebx, ebx
xor esi, esi
mov qword [rsp + 0x18], rbp
mov r8d, ebx
xor r8d, dword [r9 + 4]
mov edi, esi
xor edi, dword [r9 + 8]
mov r14d, edx
xor r14d, dword [r9 + 0xc]
mov r15d, eax
mov qword [rsp + 0x20], r9
xor r15d, dword [r9 + 0x10]
mov r12d, r10d
movzx eax, r12b
mov r10d, dword [r13 + rax*4]
movzx eax, r8b
mov ebx, dword [r13 + rax*4]
movzx eax, dil
mov esi, dword [r13 + rax*4]
movzx eax, r14b
mov edx, dword [r13 + rax*4]
movzx eax, r15b
mov eax, dword [r13 + rax*4]
mov r9d, 1
mov ecx, r9d
shl cl, 3
mov ebp, r12d
shr ebp, cl
movzx ebp, bpl
mov r11, r9
shl r11, 0xa
add r11, r13
xor r10d, dword [r11 + rbp*4]
mov ebp, r8d
shr ebp, cl
movzx ebp, bpl
xor ebx, dword [r11 + rbp*4]
mov ebp, edi
shr ebp, cl
movzx ebp, bpl
xor esi, dword [r11 + rbp*4]
mov ebp, r14d
shr ebp, cl
movzx ebp, bpl
xor edx, dword [r11 + rbp*4]
mov ebp, r15d
shr ebp, cl
movzx ecx, bpl
xor eax, dword [r11 + rcx*4]
inc r9
cmp r9, 4
jne 0x140a523e2
jmp 0x140a521bc
lea rcx, [0x140ccd8b0]
mov eax, r10d
shr eax, 8
movzx edx, byte [r9]
inc r9
movzx ebp, r10b
xor ebp, edx
xor eax, dword [rcx + rbp*4]
mov r10d, eax
dec r8
jne 0x140a5244a
not eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, r8d
jmp 0x140a52120