Function at 0x4c21d2
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 ebx, dword [rbp + 0x20]
not ebx
jmp 0x4c2223
mov rax, qword [rbp + 0x28]
lea rdx, [rax + 1]
mov qword [rbp + 0x28], rdx
movzx eax, byte [rax]
movzx eax, al
xor eax, ebx
movzx eax, al
mov eax, eax
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
shr ebx, 8
mov edx, ebx
xor eax, edx
mov ebx, eax
sub qword [rbp + 0x30], 1
cmp qword [rbp + 0x30], 0
je 0x4c2236
mov rax, qword [rbp + 0x28]
and eax, 3
test rax, rax
jne 0x4c21ea
mov rsi, qword [rbp + 0x28]
jmp 0x4c26bc
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x300
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, 0x200
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, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
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, 0x300
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, 0x200
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, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
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, 0x300
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, 0x200
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, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
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, 0x300
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, 0x200
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, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
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, 0x300
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, 0x200
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, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
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, 0x300
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, 0x200
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, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
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, 0x300
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, 0x200
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, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
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, 0x300
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, 0x200
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, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
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 0x4c223f
jmp 0x4c2760
mov rax, rsi
lea rsi, [rax + 4]
mov eax, dword [rax]
xor ebx, eax
movzx eax, bl
mov eax, eax
add rax, 0x300
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, 0x200
lea rcx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rcx + rax]
xor edx, eax
mov ecx, edx
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov eax, eax
add rax, 0x100
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov eax, ebx
shr eax, 0x18
mov eax, eax
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
xor ecx, eax
mov ebx, ecx
sub qword [rbp + 0x30], 4
cmp qword [rbp + 0x30], 3
ja 0x4c26cc
mov qword [rbp + 0x28], rsi
cmp qword [rbp + 0x30], 0
je 0x4c27b6
mov rax, qword [rbp + 0x28]
lea rdx, [rax + 1]
mov qword [rbp + 0x28], rdx
movzx eax, byte [rax]
movzx eax, al
xor eax, ebx
movzx eax, al
mov eax, eax
lea rdx, [rax*4]
lea rax, [0x00521d00]
mov eax, dword [rdx + rax]
shr ebx, 8
mov edx, ebx
xor eax, edx
mov ebx, eax
sub qword [rbp + 0x30], 1
cmp qword [rbp + 0x30], 0
jne 0x4c2776
not ebx
mov eax, ebx
pop rbx
pop rsi
pop rbp
ret