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

Disassembly:
push rbx
mov eax, ecx
test r8, r8
not eax
je 0x1400514ce
test dl, 3
je 0x1400510b0
lea r9, [0x1400b0120]
jmp 0x140051085
test dl, 3
je 0x1400510b0
add rdx, 1
movzx r10d, byte [rdx - 1]
xor r10d, eax
shr eax, 8
movzx r10d, r10b
xor eax, dword [r9 + r10*4]
sub r8, 1
jne 0x140051080
not eax
pop rbx
ret
cmp r8, 0x1f
jbe 0x140051286
lea rcx, [r8 - 0x20]
lea r9, [0x1400b0120]
and rcx, 0xffffffffffffffe0
lea r10, [rdx + rcx + 0x20]
nop
xor eax, dword [rdx]
mov r11d, eax
mov ebx, eax
movzx ecx, al
shr r11d, 0x10
shr ebx, 0x18
movzx eax, ah
mov ecx, dword [r9 + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [r9 + rbx*4]
xor ecx, dword [rdx + 4]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + r11*4 + 0x400]
mov r11d, ecx
mov ebx, ecx
movzx eax, cl
shr r11d, 0x10
shr ebx, 0x18
movzx ecx, ch
mov eax, dword [r9 + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [r9 + rbx*4]
xor eax, dword [rdx + 8]
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + r11*4 + 0x400]
mov r11d, eax
mov ebx, eax
movzx ecx, al
shr r11d, 0x10
shr ebx, 0x18
movzx eax, ah
mov ecx, dword [r9 + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [r9 + rbx*4]
xor ecx, dword [rdx + 0xc]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + r11*4 + 0x400]
mov r11d, ecx
mov ebx, ecx
movzx eax, cl
shr r11d, 0x10
shr ebx, 0x18
movzx ecx, ch
mov eax, dword [r9 + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [r9 + rbx*4]
xor eax, dword [rdx + 0x10]
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + r11*4 + 0x400]
mov r11d, eax
mov ebx, eax
movzx ecx, al
shr r11d, 0x10
shr ebx, 0x18
movzx eax, ah
mov ecx, dword [r9 + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [r9 + rbx*4]
xor ecx, dword [rdx + 0x14]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + r11*4 + 0x400]
mov r11d, ecx
mov ebx, ecx
movzx eax, cl
shr r11d, 0x10
movzx ecx, ch
shr ebx, 0x18
mov eax, dword [r9 + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [r9 + rbx*4]
add rdx, 0x20
xor eax, dword [rdx - 8]
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + r11*4 + 0x400]
mov ecx, eax
mov r11d, eax
movzx ebx, al
shr ecx, 0x10
shr r11d, 0x18
movzx eax, ah
mov ebx, dword [r9 + rbx*4 + 0xc00]
movzx ecx, cl
xor ebx, dword [r9 + r11*4]
xor ebx, dword [rdx - 4]
xor ebx, dword [r9 + rax*4 + 0x800]
xor ebx, dword [r9 + rcx*4 + 0x400]
mov ecx, ebx
mov r11d, ebx
movzx eax, bl
shr ecx, 0x10
shr r11d, 0x18
movzx ebx, bh
mov eax, dword [r9 + rax*4 + 0xc00]
movzx ecx, cl
xor eax, dword [r9 + r11*4]
xor eax, dword [r9 + rbx*4 + 0x800]
xor eax, dword [r9 + rcx*4 + 0x400]
cmp rdx, r10
jne 0x1400510d0
and r8d, 0x1f
cmp r8, 3
jbe 0x140051474
xor eax, dword [rdx]
lea r9, [0x1400b0120]
mov r10d, eax
mov ecx, eax
movzx r11d, al
shr r10d, 0x10
shr ecx, 0x18
movzx eax, ah
movzx r10d, r10b
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + r11*4 + 0xc00]
xor ecx, dword [r9 + rax*4 + 0x800]
mov eax, dword [r9 + r10*4 + 0x400]
lea r10, [r8 - 4]
xor eax, ecx
cmp r10, 3
jbe 0x140051464
xor eax, dword [rdx + 4]
mov r11d, eax
mov ecx, eax
movzx ebx, al
shr r11d, 0x10
shr ecx, 0x18
movzx eax, ah
movzx r11d, r11b
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + rbx*4 + 0xc00]
xor ecx, dword [r9 + rax*4 + 0x800]
mov eax, dword [r9 + r11*4 + 0x400]
xor eax, ecx
lea rcx, [r8 - 8]
cmp rcx, 3
jbe 0x140051464
xor eax, dword [rdx + 8]
mov r11d, eax
mov ecx, eax
movzx ebx, al
shr r11d, 0x10
shr ecx, 0x18
movzx eax, ah
movzx r11d, r11b
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + rbx*4 + 0xc00]
xor ecx, dword [r9 + rax*4 + 0x800]
mov eax, dword [r9 + r11*4 + 0x400]
xor eax, ecx
lea rcx, [r8 - 0xc]
cmp rcx, 3
jbe 0x140051464
xor eax, dword [rdx + 0xc]
mov r11d, eax
mov ecx, eax
movzx ebx, al
shr r11d, 0x10
shr ecx, 0x18
movzx eax, ah
movzx r11d, r11b
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + rbx*4 + 0xc00]
xor ecx, dword [r9 + rax*4 + 0x800]
mov eax, dword [r9 + r11*4 + 0x400]
xor eax, ecx
lea rcx, [r8 - 0x10]
cmp rcx, 3
jbe 0x140051464
xor eax, dword [rdx + 0x10]
mov r11d, eax
mov ecx, eax
movzx ebx, al
shr r11d, 0x10
shr ecx, 0x18
movzx eax, ah
movzx r11d, r11b
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + rbx*4 + 0xc00]
xor ecx, dword [r9 + rax*4 + 0x800]
mov eax, dword [r9 + r11*4 + 0x400]
xor eax, ecx
lea rcx, [r8 - 0x14]
cmp rcx, 3
jbe 0x140051464
xor eax, dword [rdx + 0x14]
mov r11d, eax
mov ecx, eax
movzx ebx, al
shr r11d, 0x10
shr ecx, 0x18
movzx eax, ah
movzx r11d, r11b
mov ecx, dword [r9 + rcx*4]
xor ecx, dword [r9 + rbx*4 + 0xc00]
xor ecx, dword [r9 + rax*4 + 0x800]
mov eax, dword [r9 + r11*4 + 0x400]
xor eax, ecx
lea rcx, [r8 - 0x18]
cmp rcx, 3
jbe 0x140051464
xor eax, dword [rdx + 0x18]
mov r11d, eax
mov ebx, eax
movzx ecx, al
shr r11d, 0x10
movzx eax, ah
shr ebx, 0x18
mov ecx, dword [r9 + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [r9 + rbx*4]
xor ecx, dword [r9 + rax*4 + 0x800]
mov eax, dword [r9 + r11*4 + 0x400]
xor eax, ecx
mov rcx, r10
and r8d, 3
shr rcx, 2
lea rdx, [rdx + rcx*4 + 4]
test r8, r8
je 0x1400510a2
movzx ecx, byte [rdx]
lea r9, [0x1400b0120]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [r9 + rcx*4]
sub r8, 1
je 0x1400510a2
movzx ecx, byte [rdx + 1]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [r9 + rcx*4]
cmp r8, 1
je 0x1400510a2
movzx ebx, byte [rdx + 2]
xor ebx, eax
shr eax, 8
movzx edx, bl
xor eax, dword [r9 + rdx*4]
not eax
jmp 0x1400510a4
mov eax, ecx
pop rbx
ret
test rdx, rdx
je 0x1400516f0
mov r8d, r8d
jmp 0x140051060
xor eax, eax
ret