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

Disassembly:
jmp 0x201da920
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
test rdx, rdx
je 0x201da231
mov rdi, r8
not ecx
cmp r8, 0x2f
jb 0x201da7df
test dl, 7
je 0x201da22c
mov r9d, ecx
shr r9d, 8
lea r14, [rdx + 1]
xor cl, byte [rdx]
movzx r10d, cl
lea rax, [0x203033d0]
mov ecx, r9d
xor ecx, dword [rax + r10*4]
test r14b, 7
je 0x201da238
mov r9d, ecx
shr r9d, 8
lea r14, [rdx + 2]
xor cl, byte [rdx + 1]
movzx r10d, cl
mov ecx, r9d
xor ecx, dword [rax + r10*4]
test r14b, 7
je 0x201da23d
mov r9d, ecx
shr r9d, 8
lea r14, [rdx + 3]
xor cl, byte [rdx + 2]
movzx r10d, cl
mov ecx, r9d
xor ecx, dword [rax + r10*4]
test r14b, 7
je 0x201da243
mov r9d, ecx
shr r9d, 8
lea r14, [rdx + 4]
xor cl, byte [rdx + 3]
movzx r10d, cl
mov ecx, r9d
xor ecx, dword [rax + r10*4]
test r14b, 7
je 0x201da249
mov r9d, ecx
shr r9d, 8
lea r14, [rdx + 5]
xor cl, byte [rdx + 4]
movzx r10d, cl
mov ecx, r9d
xor ecx, dword [rax + r10*4]
test r14b, 7
je 0x201da24f
mov r9d, ecx
shr r9d, 8
lea r14, [rdx + 6]
xor cl, byte [rdx + 5]
movzx r10d, cl
mov ecx, r9d
xor ecx, dword [rax + r10*4]
test r14b, 7
je 0x201da255
mov r9d, ecx
shr r9d, 8
lea r14, [rdx + 7]
xor cl, byte [rdx + 6]
movzx r10d, cl
mov ecx, r9d
xor ecx, dword [rax + r10*4]
test r14b, 7
je 0x201da25b
add rdi, 0xfffffffffffffff8
mov r9d, ecx
shr r9d, 8
xor cl, byte [rdx + 7]
add rdx, 8
movzx ecx, cl
xor r9d, dword [rax + rcx*4]
mov ecx, r9d
mov r14, rdx
jmp 0x201da25f
xor eax, eax
jmp 0x201da90c
dec rdi
jmp 0x201da25f
add rdi, 0xfffffffffffffffe
jmp 0x201da25f
add rdi, 0xfffffffffffffffd
jmp 0x201da25f
add rdi, 0xfffffffffffffffc
jmp 0x201da25f
add rdi, 0xfffffffffffffffb
jmp 0x201da25f
add rdi, 0xfffffffffffffffa
jmp 0x201da25f
add rdi, 0xfffffffffffffff9
movabs rdx, 0xcccccccccccccccd
mov rax, rdi
mul rdx
shr rdx, 5
lea rax, [rdx*8]
lea r9, [rax + rax*4]
xor r10d, r10d
dec rdx
je 0x201da59f
mov qword [rsp], r9
mov qword [rsp + 0x10], rdi
mov qword [rsp + 8], r14
add r14, 0x20
lea r8, [0x203037d0]
xor esi, esi
xor ebp, ebp
xor ebx, ebx
nop word [rax + rax]
mov qword [rsp + 0x18], rdx
mov rdx, qword [r14]
mov r15, qword [r14 - 8]
mov r12, qword [r14 - 0x10]
mov r9, qword [r14 - 0x20]
mov r13, qword [r14 - 0x18]
mov eax, ecx
xor rax, r9
movzx r11d, al
movzx ecx, ah
mov ecx, dword [r8 + rcx*4 + 0x400]
xor ecx, dword [r8 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor ecx, dword [r11 + r8 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor ecx, dword [rax + r8 + 0xc00]
mov eax, ebp
xor rax, r13
movzx r11d, al
movzx ebp, ah
mov ebp, dword [r8 + rbp*4 + 0x400]
xor ebp, dword [r8 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor ebp, dword [r11 + r8 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor ebp, dword [rax + r8 + 0xc00]
mov eax, ebx
xor rax, r12
movzx r11d, al
movzx ebx, ah
mov ebx, dword [r8 + rbx*4 + 0x400]
xor ebx, dword [r8 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor ebx, dword [r11 + r8 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor ebx, dword [rax + r8 + 0xc00]
mov eax, esi
xor rax, r15
movzx r11d, al
movzx esi, ah
mov esi, dword [r8 + rsi*4 + 0x400]
xor esi, dword [r8 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor esi, dword [r11 + r8 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor esi, dword [rax + r8 + 0xc00]
mov eax, r10d
xor rax, rdx
movzx r11d, al
movzx edi, ah
mov r10d, dword [r8 + rdi*4 + 0x400]
xor r10d, dword [r8 + r11*4]
mov r11, rax
shr r11, 0xe
and r11d, 0x3fc
xor r10d, dword [r11 + r8 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor r10d, dword [rax + r8 + 0xc00]
mov rax, r9
shr rax, 0x1e
and eax, 0x3fc
xor ecx, dword [rax + r8 + 0x1000]
mov rax, r13
shr rax, 0x1e
and eax, 0x3fc
xor ebp, dword [rax + r8 + 0x1000]
mov rax, r12
shr rax, 0x1e
and eax, 0x3fc
xor ebx, dword [rax + r8 + 0x1000]
mov rax, r15
shr rax, 0x1e
and eax, 0x3fc
xor esi, dword [rax + r8 + 0x1000]
mov rax, rdx
shr rax, 0x1e
and eax, 0x3fc
xor r10d, dword [rax + r8 + 0x1000]
mov rax, r9
shr rax, 0x26
and eax, 0x3fc
xor ecx, dword [rax + r8 + 0x1400]
mov rax, r13
shr rax, 0x26
and eax, 0x3fc
xor ebp, dword [rax + r8 + 0x1400]
mov rax, r12
shr rax, 0x26
and eax, 0x3fc
xor ebx, dword [rax + r8 + 0x1400]
mov rax, r15
shr rax, 0x26
and eax, 0x3fc
xor esi, dword [rax + r8 + 0x1400]
mov rax, rdx
shr rax, 0x26
and eax, 0x3fc
xor r10d, dword [rax + r8 + 0x1400]
mov rax, r9
shr rax, 0x2e
and eax, 0x3fc
xor ecx, dword [rax + r8 + 0x1800]
mov rax, r13
shr rax, 0x2e
and eax, 0x3fc
xor ebp, dword [rax + r8 + 0x1800]
mov rax, r12
shr rax, 0x2e
and eax, 0x3fc
xor ebx, dword [rax + r8 + 0x1800]
mov rax, r15
shr rax, 0x2e
and eax, 0x3fc
xor esi, dword [rax + r8 + 0x1800]
mov rax, rdx
shr rax, 0x2e
and eax, 0x3fc
xor r10d, dword [rax + r8 + 0x1800]
shr r9, 0x38
xor ecx, dword [r8 + r9*4 + 0x1c00]
shr r13, 0x38
xor ebp, dword [r8 + r13*4 + 0x1c00]
shr r12, 0x38
xor ebx, dword [r8 + r12*4 + 0x1c00]
shr r15, 0x38
xor esi, dword [r8 + r15*4 + 0x1c00]
shr rdx, 0x38
xor r10d, dword [r8 + rdx*4 + 0x1c00]
mov rdx, qword [rsp + 0x18]
add r14, 0x28
dec rdx
jne 0x201da2b0
mov r14, qword [rsp + 8]
mov r9, qword [rsp]
add r14, r9
add r14, 0xffffffffffffffd8
mov eax, ebp
mov r11d, r10d
mov r10d, ebx
mov esi, esi
mov rdi, qword [rsp + 0x10]
jmp 0x201da5a6
xor eax, eax
xor esi, esi
xor r11d, r11d
mov ecx, ecx
xor rcx, qword [r14]
movzx r8d, cl
shr rcx, 8
lea rdx, [0x203033d0]
mov r8d, dword [rdx + r8*4]
xor r8, rcx
movzx ecx, r8b
shr r8, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, r8
movzx r8d, cl
shr rcx, 8
mov r8d, dword [rdx + r8*4]
xor r8, rcx
movzx ecx, r8b
shr r8, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, r8
movzx r8d, cl
shr rcx, 8
mov r8d, dword [rdx + r8*4]
xor r8, rcx
movzx ecx, r8b
shr r8, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, r8
movzx r8d, cl
shr rcx, 8
mov r8d, dword [rdx + r8*4]
xor r8, rcx
movzx ecx, r8b
shr r8, 8
xor r8d, dword [rdx + rcx*4]
xor rax, qword [r14 + 8]
xor r8, rax
movzx eax, r8b
shr r8, 8
mov eax, dword [rdx + rax*4]
xor rax, r8
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [rdx + rcx*4]
xor r10, qword [r14 + 0x10]
xor rax, r10
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [rdx + rax*4]
xor rsi, qword [r14 + 0x18]
xor rcx, rsi
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
xor eax, dword [rdx + rcx*4]
xor r11, qword [r14 + 0x20]
sub rdi, r9
xor rax, r11
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
mov eax, dword [rdx + rax*4]
xor rax, rcx
movzx ecx, al
shr rax, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rax
movzx eax, cl
shr rcx, 8
xor ecx, dword [rdx + rax*4]
add r14, 0x28
mov rdx, r14
cmp rdi, 8
jb 0x201da88d
lea rax, [0x203033d0]
mov r8d, ecx
xor cl, byte [rdx]
shr r8d, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
mov ecx, r8d
xor r8b, byte [rdx + 1]
shr ecx, 8
movzx r8d, r8b
xor ecx, dword [rax + r8*4]
mov r8d, ecx
xor cl, byte [rdx + 2]
shr r8d, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
mov ecx, r8d
xor r8b, byte [rdx + 3]
shr ecx, 8
movzx r8d, r8b
xor ecx, dword [rax + r8*4]
mov r8d, ecx
xor cl, byte [rdx + 4]
shr r8d, 8
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
add rdi, 0xfffffffffffffff8
mov ecx, r8d
xor r8b, byte [rdx + 5]
shr ecx, 8
movzx r8d, r8b
xor ecx, dword [rax + r8*4]
mov r8d, ecx
shr r8d, 8
xor cl, byte [rdx + 6]
movzx ecx, cl
xor r8d, dword [rax + rcx*4]
mov ecx, r8d
shr ecx, 8
xor r8b, byte [rdx + 7]
add rdx, 8
movzx r8d, r8b
xor ecx, dword [rax + r8*4]
cmp rdi, 7
ja 0x201da7f0
test rdi, rdi
je 0x201da8a3
test dil, 1
jne 0x201da8a7
mov r9, rdi
cmp rdi, 1
jne 0x201da8cb
jmp 0x201da90a
mov eax, ecx
jmp 0x201da90a
lea r9, [rdi - 1]
mov eax, ecx
shr eax, 8
xor cl, byte [rdx]
inc rdx
movzx ecx, cl
lea r8, [0x203033d0]
xor eax, dword [r8 + rcx*4]
mov ecx, eax
cmp rdi, 1
je 0x201da90a
xor r8d, r8d
lea r10, [0x203033d0]
mov eax, ecx
nop word [rax + rax]
mov ecx, eax
shr ecx, 8
xor al, byte [rdx + r8]
movzx eax, al
xor ecx, dword [r10 + rax*4]
mov eax, ecx
shr eax, 8
xor cl, byte [rdx + r8 + 1]
movzx ecx, cl
xor eax, dword [r10 + rcx*4]
add r8, 2
cmp r9, r8
jne 0x201da8e0
not eax
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, r8d
jmp 0x201da0f0