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

Disassembly:
mov r8d, r8d
jmp 0x692ff880
push rsi
push rbx
xor eax, eax
test rdx, rdx
je 0x692ffb28
mov eax, ecx
lea r10, [0x6934e200]
not eax
test r8, r8
je 0x692ffb26
test dl, 3
je 0x692ff8bf
mov r9b, byte [rdx]
inc rdx
dec r8
xor r9d, eax
shr eax, 8
movzx r9d, r9b
xor eax, dword [r10 + r9*4]
jmp 0x692ff898
mov r10, rdx
lea r11, [rdx + r8]
lea r9, [0x6934e200]
mov rcx, r11
sub rcx, r10
cmp rcx, 0x1f
jbe 0x692ffa7d
xor eax, dword [r10]
mov ebx, eax
mov esi, eax
movzx ecx, al
movzx eax, ah
shr ebx, 0x10
shr esi, 0x18
mov ecx, dword [r9 + rcx*4 + 0xc00]
movzx ebx, bl
xor ecx, dword [r9 + rsi*4]
xor ecx, dword [r10 + 4]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0x400]
mov ebx, ecx
mov esi, ecx
movzx eax, cl
movzx ecx, ch
shr ebx, 0x10
shr esi, 0x18
mov eax, dword [r9 + rax*4 + 0xc00]
movzx ebx, bl
xor eax, dword [r9 + rsi*4]
xor eax, dword [r10 + 8]
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0x400]
mov ebx, eax
mov esi, eax
movzx ecx, al
movzx eax, ah
shr ebx, 0x10
shr esi, 0x18
mov ecx, dword [r9 + rcx*4 + 0xc00]
movzx ebx, bl
xor ecx, dword [r9 + rsi*4]
xor ecx, dword [r10 + 0xc]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0x400]
mov ebx, ecx
mov esi, ecx
movzx eax, cl
movzx ecx, ch
shr ebx, 0x10
shr esi, 0x18
mov eax, dword [r9 + rax*4 + 0xc00]
movzx ebx, bl
xor eax, dword [r9 + rsi*4]
xor eax, dword [r10 + 0x10]
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0x400]
mov ebx, eax
mov esi, eax
movzx ecx, al
movzx eax, ah
shr ebx, 0x10
shr esi, 0x18
mov ecx, dword [r9 + rcx*4 + 0xc00]
movzx ebx, bl
xor ecx, dword [r9 + rsi*4]
xor ecx, dword [r10 + 0x14]
xor ecx, dword [r9 + rax*4 + 0x800]
xor ecx, dword [r9 + rbx*4 + 0x400]
mov ebx, ecx
mov esi, ecx
movzx eax, cl
movzx ecx, ch
shr ebx, 0x10
shr esi, 0x18
mov eax, dword [r9 + rax*4 + 0xc00]
add r10, 0x20
movzx ebx, bl
xor eax, dword [r9 + rsi*4]
xor eax, dword [r10 - 8]
xor eax, dword [r9 + rcx*4 + 0x800]
xor eax, dword [r9 + rbx*4 + 0x400]
mov ecx, eax
mov esi, eax
movzx ebx, al
movzx eax, ah
shr ecx, 0x10
shr esi, 0x18
mov ebx, dword [r9 + rbx*4 + 0xc00]
movzx ecx, cl
xor ebx, dword [r9 + rsi*4]
xor ebx, dword [r10 - 4]
xor ebx, dword [r9 + rax*4 + 0x800]
xor ebx, dword [r9 + rcx*4 + 0x400]
mov ecx, ebx
mov esi, ebx
movzx eax, bl
movzx ebx, bh
shr ecx, 0x10
shr esi, 0x18
mov eax, dword [r9 + rax*4 + 0xc00]
movzx ecx, cl
xor eax, dword [r9 + rsi*4]
xor eax, dword [r9 + rbx*4 + 0x800]
xor eax, dword [r9 + rcx*4 + 0x400]
jmp 0x692ff8cd
mov rcx, r8
mov r9, r8
lea r11, [0x6934e200]
xor r10d, r10d
shr rcx, 5
and r9, 0xffffffffffffffe0
imul rcx, rcx, 0xffffffffffffffe0
add rdx, r9
add r8, rcx
mov rcx, r8
sub rcx, r10
cmp rcx, 3
jbe 0x692ffae8
xor eax, dword [rdx + r10]
add r10, 4
mov ebx, eax
movzx ecx, al
mov r9d, eax
movzx eax, ah
mov eax, dword [r11 + rax*4 + 0x800]
shr ebx, 0x10
shr r9d, 0x18
mov ecx, dword [r11 + rcx*4 + 0xc00]
movzx ebx, bl
xor ecx, dword [r11 + r9*4]
xor eax, ecx
xor eax, dword [r11 + rbx*4 + 0x400]
jmp 0x692ffa9f
mov rcx, r8
mov r9, r8
shr rcx, 2
and r9, 0xfffffffffffffffc
imul rcx, rcx, 0xfffffffffffffffc
add rdx, r9
add r8, rcx
je 0x692ffb26
xor r9d, r9d
lea rcx, [0x6934e200]
mov r10b, byte [rdx + r9]
inc r9
xor r10d, eax
shr eax, 8
movzx r10d, r10b
xor eax, dword [rcx + r10*4]
cmp r8, r9
jne 0x692ffb0c
not eax
pop rbx
pop rsi
ret