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

Disassembly:
push rsi
push rdi
push rbx
test rdx, rdx
je 0x140003d1b
mov eax, ecx
not eax
test r8, r8
je 0x140003d15
lea rdi, [r8 - 0x20]
xor ecx, ecx
lea r9, [0x14000b200]
lea r11, [rdx + rcx]
test r11b, 3
je 0x140003d1f
movzx ebx, byte [r11]
movzx esi, al
xor esi, ebx
shr eax, 8
xor eax, dword [r9 + rsi*4]
add rdi, 0xffffffffffffffff
add rcx, 1
cmp r8, rcx
jne 0x140003cee
not eax
pop rbx
pop rdi
pop rsi
ret
xor eax, eax
jmp 0x140003d17
mov r10, r8
sub r10, rcx
cmp r10, 0x20
jb 0x140003eec
xor eax, dword [r11]
movzx esi, al
movzx ebx, ah
mov ebx, dword [r9 + rbx*4 + 0x800]
xor ebx, dword [r9 + rsi*4 + 0xc00]
mov esi, eax
shr esi, 0x10
movzx esi, sil
xor ebx, dword [r9 + rsi*4 + 0x400]
shr eax, 0x18
xor ebx, dword [r9 + rax*4]
xor ebx, dword [r11 + 4]
movzx esi, bl
movzx eax, bh
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rsi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor eax, dword [r9 + rsi*4 + 0x400]
shr ebx, 0x18
xor eax, dword [r9 + rbx*4]
xor eax, dword [r11 + 8]
movzx esi, al
movzx ebx, ah
mov ebx, dword [r9 + rbx*4 + 0x800]
xor ebx, dword [r9 + rsi*4 + 0xc00]
mov esi, eax
shr esi, 0x10
movzx esi, sil
xor ebx, dword [r9 + rsi*4 + 0x400]
shr eax, 0x18
xor ebx, dword [r9 + rax*4]
xor ebx, dword [r11 + 0xc]
movzx esi, bl
movzx eax, bh
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rsi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor eax, dword [r9 + rsi*4 + 0x400]
shr ebx, 0x18
xor eax, dword [r9 + rbx*4]
xor eax, dword [r11 + 0x10]
movzx esi, al
movzx ebx, ah
mov ebx, dword [r9 + rbx*4 + 0x800]
xor ebx, dword [r9 + rsi*4 + 0xc00]
mov esi, eax
shr esi, 0x10
movzx esi, sil
xor ebx, dword [r9 + rsi*4 + 0x400]
shr eax, 0x18
xor ebx, dword [r9 + rax*4]
xor ebx, dword [r11 + 0x14]
movzx esi, bl
movzx eax, bh
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rsi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor eax, dword [r9 + rsi*4 + 0x400]
shr ebx, 0x18
xor eax, dword [r9 + rbx*4]
xor eax, dword [r11 + 0x18]
movzx esi, al
movzx ebx, ah
mov ebx, dword [r9 + rbx*4 + 0x800]
xor ebx, dword [r9 + rsi*4 + 0xc00]
mov esi, eax
shr esi, 0x10
movzx esi, sil
xor ebx, dword [r9 + rsi*4 + 0x400]
shr eax, 0x18
xor ebx, dword [r9 + rax*4]
xor ebx, dword [r11 + 0x1c]
movzx esi, bl
movzx eax, bh
mov eax, dword [r9 + rax*4 + 0x800]
xor eax, dword [r9 + rsi*4 + 0xc00]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor eax, dword [r9 + rsi*4 + 0x400]
shr ebx, 0x18
xor eax, dword [r9 + rbx*4]
add r10, 0xffffffffffffffe0
add r11, 0x20
cmp r10, 0x1f
ja 0x140003d2f
and rdi, 0xffffffffffffffe0
add rdx, rdi
lea r11, [rcx + rdx]
add r11, 0x20
sub r8, rdi
sub r8, rcx
add r8, 0xffffffffffffffe0
mov r10, r8
cmp r10, 4
jb 0x140003f4d
lea rcx, [r10 - 4]
mov r8, rcx
shr r8, 2
mov rsi, r11
xor eax, dword [rsi]
movzx ebx, al
movzx edi, ah
mov edx, eax
mov edi, dword [r9 + rdi*4 + 0x800]
xor edi, dword [r9 + rbx*4 + 0xc00]
add rsi, 4
shr eax, 0x10
movzx eax, al
xor edi, dword [r9 + rax*4 + 0x400]
shr edx, 0x18
mov eax, edi
xor eax, dword [r9 + rdx*4]
add r10, 0xfffffffffffffffc
cmp r10, 3
ja 0x140003f00
lea r11, [r11 + r8*4]
add r11, 4
and ecx, 3
mov r10, rcx
test r10, r10
je 0x140003d15
movzx ecx, byte [r11]
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [r9 + rdx*4]
cmp r10, 1
je 0x140003d15
mov ecx, 1
movzx edx, byte [r11 + rcx]
movzx ebx, al
xor ebx, edx
shr eax, 8
xor eax, dword [r9 + rbx*4]
add rcx, 1
cmp r10, rcx
je 0x140003d15
jmp 0x140003f75