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

Disassembly:
push rbp
push rsi
push rbx
mov rbp, rsp
mov dword [rbp + 0x20], ecx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov eax, dword [rbp + 0x20]
shr eax, 0x18
mov edx, eax
mov eax, dword [rbp + 0x20]
shr eax, 8
and eax, 0xff00
add edx, eax
mov eax, dword [rbp + 0x20]
shl eax, 8
and eax, 0xff0000
add edx, eax
mov eax, dword [rbp + 0x20]
shl eax, 0x18
lea ebx, [rdx + rax]
not ebx
jmp 0x4c283f
mov ecx, ebx
shr ecx, 0x18
mov rax, qword [rbp + 0x28]
lea rdx, [rax + 1]
mov qword [rbp + 0x28], rdx
movzx eax, byte [rax]
movzx eax, al
xor eax, ecx
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
shl ebx, 8
mov edx, ebx
xor eax, edx
mov ebx, eax
sub qword [rbp + 0x30], 1
cmp qword [rbp + 0x30], 0
je 0x4c2852
mov rax, qword [rbp + 0x28]
and eax, 3
test rax, rax
jne 0x4c27fe
mov rsi, qword [rbp + 0x28]
jmp 0x4c2d08
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov ebx, ecx
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
mov ebx, ecx
xor ebx, eax
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
mov ebx, ecx
xor ebx, eax
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
mov ebx, ecx
xor ebx, eax
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
mov ebx, ecx
xor ebx, eax
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
mov ebx, ecx
xor ebx, eax
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
mov ebx, ecx
xor ebx, eax
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
mov ebx, ecx
xor ebx, eax
sub qword [rbp + 0x30], 0x20
cmp qword [rbp + 0x30], 0x1f
ja 0x4c285b
jmp 0x4c2db2
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov edx, dword [rdx + rax]
mov eax, ebx
shr eax, 8
movzx eax, al
mov eax, eax
add rax, 0x500
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
mov ecx, edx
xor ecx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x600
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
add rax, 0x700
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
mov ebx, ecx
xor ebx, eax
sub qword [rbp + 0x30], 4
cmp qword [rbp + 0x30], 3
ja 0x4c2d18
mov qword [rbp + 0x28], rsi
cmp qword [rbp + 0x30], 0
je 0x4c2e10
mov ecx, ebx
shr ecx, 0x18
mov rax, qword [rbp + 0x28]
lea rdx, [rax + 1]
mov qword [rbp + 0x28], rdx
movzx eax, byte [rax]
movzx eax, al
xor eax, ecx
mov eax, eax
add rax, 0x400
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
shl ebx, 8
mov edx, ebx
xor eax, edx
mov ebx, eax
sub qword [rbp + 0x30], 1
cmp qword [rbp + 0x30], 0
jne 0x4c2dc8
not ebx
mov edx, ebx
shr edx, 0x18
mov eax, ebx
shr eax, 8
and eax, 0xff00
add edx, eax
mov eax, ebx
shl eax, 8
and eax, 0xff0000
add edx, eax
mov eax, ebx
shl eax, 0x18
add eax, edx
pop rbx
pop rsi
pop rbp
ret