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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
xor eax, eax
mov r9d, ecx
mov r10, rdx
mov r11, r8
test rdx, rdx
je 0x140198651
not r9d
lea rax, [0x14027ed00]
cmp r8, 0x2e
jbe 0x140198569
test r10b, 7
je 0x14019841b
inc r10
mov edx, r9d
xor r9b, byte [r10 - 1]
shr edx, 8
movzx r9d, r9b
xor edx, dword [rax + r9*4]
mov r9d, edx
dec r11
jne 0x1401983f8
mov edi, 0x28
mov rax, r11
xor edx, edx
mov rbx, r10
div rdi
xor esi, esi
xor edi, edi
xor ebp, ebp
xor r12d, r12d
mov qword [rsp + 0x40], rax
mov r11, rdx
lea rdx, [0x14027cd00]
mov qword [rsp + 0x48], rax
mov ecx, ebp
xor rcx, qword [rbx + 0x10]
mov r13d, r9d
mov r15d, r12d
xor r13, qword [rbx]
xor r15, qword [rbx + 8]
mov qword [rsp + 0x28], rcx
mov ecx, edi
xor rcx, qword [rbx + 0x18]
add rbx, 0x28
mov qword [rsp + 0x30], rcx
mov ecx, esi
xor rcx, qword [rbx - 8]
dec qword [rsp + 0x48]
mov qword [rsp + 0x38], rcx
je 0x140198527
movzx eax, r13b
mov r9d, dword [rdx + rax*4]
movzx eax, r15b
mov r12d, dword [rdx + rax*4]
movzx eax, byte [rsp + 0x28]
mov ebp, dword [rdx + rax*4]
movzx eax, byte [rsp + 0x30]
mov edi, dword [rdx + rax*4]
movzx eax, byte [rsp + 0x38]
mov esi, dword [rdx + rax*4]
mov eax, 1
lea ecx, [rax*8]
mov r14, r13
movsxd r8, eax
inc eax
shr r14, cl
shl r8, 8
movzx r14d, r14b
add r14, r8
xor r9d, dword [rdx + r14*4]
mov r14, r15
shr r14, cl
movzx r14d, r14b
add r14, r8
xor r12d, dword [rdx + r14*4]
mov r14, qword [rsp + 0x28]
shr r14, cl
movzx r14d, r14b
add r14, r8
xor ebp, dword [rdx + r14*4]
mov r14, qword [rsp + 0x30]
shr r14, cl
movzx r14d, r14b
add r14, r8
xor edi, dword [rdx + r14*4]
mov r14, qword [rsp + 0x38]
shr r14, cl
movzx ecx, r14b
add r8, rcx
xor esi, dword [rdx + r8*4]
cmp eax, 8
jne 0x1401984b2
jmp 0x140198448
imul rax, qword [rsp + 0x40], 0x28
mov rcx, r13
add r10, rax
call sym.crc_word
mov ecx, eax
xor rcx, r15
call sym.crc_word
mov ecx, eax
xor rcx, qword [rsp + 0x28]
call sym.crc_word
mov ecx, eax
xor rcx, qword [rsp + 0x30]
call sym.crc_word
mov ecx, eax
xor rcx, qword [rsp + 0x38]
call sym.crc_word
mov r9d, eax
mov rdx, r10
lea rsi, [r10 + r11]
lea r8, [0x14027ed00]
mov rax, rsi
sub rax, rdx
cmp rax, 7
jbe 0x14019860c
mov ecx, r9d
xor r9b, byte [rdx]
add rdx, 8
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [r8 + r9*4]
mov eax, ecx
xor cl, byte [rdx - 7]
movzx ecx, cl
shr eax, 8
xor eax, dword [r8 + rcx*4]
mov ecx, eax
xor al, byte [rdx - 6]
movzx eax, al
shr ecx, 8
xor ecx, dword [r8 + rax*4]
mov eax, ecx
xor cl, byte [rdx - 5]
movzx ecx, cl
shr eax, 8
xor eax, dword [r8 + rcx*4]
mov ecx, eax
xor al, byte [rdx - 4]
movzx eax, al
shr ecx, 8
xor ecx, dword [r8 + rax*4]
mov eax, ecx
xor cl, byte [rdx - 3]
movzx ecx, cl
shr eax, 8
xor eax, dword [r8 + rcx*4]
mov ebx, eax
xor al, byte [rdx - 2]
movzx eax, al
shr ebx, 8
xor ebx, dword [r8 + rax*4]
mov r9d, ebx
xor bl, byte [rdx - 1]
movzx ebx, bl
shr r9d, 8
xor r9d, dword [r8 + rbx*4]
jmp 0x140198577
mov r8, r11
mov rdx, r11
lea rax, [0x14027ed00]
shr r8, 3
and rdx, 0xfffffffffffffff8
imul r8, r8, 0xfffffffffffffff8
add r10, rdx
xor edx, edx
add r11, r8
cmp rdx, r11
je 0x14019864c
mov ecx, r9d
xor r9b, byte [r10 + rdx]
inc rdx
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [rax + r9*4]
mov r9d, ecx
jmp 0x14019862d
mov eax, r9d
not eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret