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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push r14
lea r14, [0x140273780]
mov edi, r8d
mov rbx, rdx
not ecx
test r8d, r8d
je 0x14012a6d2
test bl, 3
je 0x14012a6d2
movzx edx, byte [rbx]
mov eax, ecx
xor rdx, rax
inc rbx
shr eax, 8
movzx r8d, dl
mov ecx, dword [r14 + r8*4]
xor ecx, eax
add edi, 0xffffffff
jne 0x14012a6b0
cmp edi, 0x20
jb 0x14012a951
mov qword [rsp + 0x10], rsi
mov esi, edi
shr rsi, 5
nop word [rax + rax]
mov edx, dword [rbx]
mov r8d, dword [rbx + 4]
mov r10d, dword [rbx + 8]
mov r11d, dword [rbx + 0xc]
mov eax, ecx
xor rdx, rax
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r9d, dword [r14 + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [r14 + rcx*4 + 0x800]
xor r9, rax
mov rax, rdx
shr rax, 0x18
mov eax, dword [r14 + rax*4]
xor r9, rax
movzx eax, dl
mov eax, dword [r14 + rax*4 + 0xc00]
xor r9, rax
xor r9, r8
mov rax, r9
shr rax, 0x10
movzx ecx, al
mov rax, r9
shr rax, 8
mov edx, dword [r14 + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [r14 + rcx*4 + 0x800]
xor rdx, rax
mov rax, r9
shr rax, 0x18
mov eax, dword [r14 + rax*4]
xor rdx, rax
movzx eax, r9b
mov r9d, dword [rbx + 0x10]
mov eax, dword [r14 + rax*4 + 0xc00]
xor rdx, rax
xor rdx, r10
mov r10d, dword [rbx + 0x14]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r8d, dword [r14 + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [r14 + rcx*4 + 0x800]
xor r8, rax
mov rax, rdx
shr rax, 0x18
mov eax, dword [r14 + rax*4]
xor r8, rax
movzx eax, dl
mov eax, dword [r14 + rax*4 + 0xc00]
xor r8, rax
xor r8, r11
mov r11d, dword [rbx + 0x18]
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [r14 + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [r14 + rcx*4 + 0x800]
xor rdx, rax
mov rax, r8
shr rax, 0x18
mov eax, dword [r14 + rax*4]
xor rdx, rax
movzx eax, r8b
mov eax, dword [r14 + rax*4 + 0xc00]
xor rdx, rax
xor rdx, r9
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov r8d, dword [r14 + rcx*4 + 0x400]
mov r9d, dword [rbx + 0x1c]
mov rax, rdx
shr rax, 8
add rbx, 0x20
movzx ecx, al
add edi, 0xffffffe0
mov eax, dword [r14 + rcx*4 + 0x800]
xor r8, rax
mov rax, rdx
shr rax, 0x18
mov eax, dword [r14 + rax*4]
xor r8, rax
movzx eax, dl
mov eax, dword [r14 + rax*4 + 0xc00]
xor r8, rax
xor r8, r10
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [r14 + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [r14 + rcx*4 + 0x800]
xor rdx, rax
mov rax, r8
shr rax, 0x18
mov eax, dword [r14 + rax*4]
xor rdx, rax
movzx eax, r8b
mov eax, dword [r14 + rax*4 + 0xc00]
xor rdx, rax
xor rdx, r11
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r8d, dword [r14 + rcx*4 + 0x400]
movzx ecx, al
mov eax, dword [r14 + rcx*4 + 0x800]
xor r8, rax
mov rax, rdx
shr rax, 0x18
mov eax, dword [r14 + rax*4]
xor r8, rax
movzx eax, dl
mov eax, dword [r14 + rax*4 + 0xc00]
xor r8, rax
xor r8, r9
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
movzx edx, al
mov rax, r8
shr rax, 0x18
mov ecx, dword [r14 + rcx*4 + 0x400]
xor ecx, dword [r14 + rdx*4 + 0x800]
xor ecx, dword [r14 + rax*4]
movzx eax, r8b
xor ecx, dword [r14 + rax*4 + 0xc00]
sub rsi, 1
jne 0x14012a6f0
mov rsi, qword [rsp + 0x10]
cmp edi, 4
jb 0x14012a9b0
mov r9d, edi
shr r9, 2
nop dword [rax]
mov r8d, dword [rbx]
add edi, 0xfffffffc
mov eax, ecx
add rbx, 4
xor r8, rax
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
movzx edx, al
mov rax, r8
shr rax, 0x18
mov ecx, dword [r14 + rcx*4 + 0x400]
xor ecx, dword [r14 + rdx*4 + 0x800]
xor ecx, dword [r14 + rax*4]
movzx eax, r8b
xor ecx, dword [r14 + rax*4 + 0xc00]
sub r9, 1
jne 0x14012a960
test edi, edi
je 0x14012a9de
nop dword [rax]
nop dword [rax + rax]
movzx edx, byte [rbx]
lea rbx, [rbx + 1]
mov eax, ecx
xor rdx, rax
shr eax, 8
movzx r8d, dl
mov ecx, dword [r14 + r8*4]
xor ecx, eax
add edi, 0xffffffff
jne 0x14012a9c0
mov rbx, qword [rsp + 0x18]
not ecx
mov rdi, qword [rsp + 0x20]
mov eax, ecx
pop r14
ret