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

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
mov eax, dword [0x18014fc10]
mov ecx, dword [0x1801514bc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x30]
jg 0x180098c6b
mov eax, dword [0x18014fbf4]
not eax
test eax, 0x80002
jne 0x1800989a0
cmp rdi, 0xf
ja 0x180098a10
not ebx
cmp rdi, 4
jb 0x180098b43
lea rax, [0x18010f4e0]
nop word cs:[rax + rax]
xor ebx, dword [rsi]
mov ecx, ebx
movzx ebp, bh
movzx r8d, bl
mov r9d, ebx
shr r9d, 0x18
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [rax + rcx*4 + 0x400]
xor edx, dword [rax + r9*4]
xor edx, dword [rax + rbp*4 + 0x800]
xor edx, dword [rax + r8*4 + 0xc00]
add rsi, 4
add rdi, 0xfffffffffffffffc
mov ebx, edx
cmp rdi, 3
ja 0x180098950
test rdi, rdi
jne 0x180098b4a
jmp 0x180098b66
not ebx
cmp rdi, 4
jb 0x180098ab8
lea rax, [0x18010f4e0]
nop word cs:[rax + rax]
xor ebx, dword [rsi]
mov ecx, ebx
movzx ebp, bh
movzx r8d, bl
mov r9d, ebx
shr r9d, 0x18
shr ecx, 0x10
movzx ecx, cl
mov edx, dword [rax + rcx*4 + 0x400]
xor edx, dword [rax + r9*4]
xor edx, dword [rax + rbp*4 + 0x800]
xor edx, dword [rax + r8*4 + 0xc00]
add rsi, 4
add rdi, 0xfffffffffffffffc
mov ebx, edx
cmp rdi, 3
ja 0x1800989c0
test rdi, rdi
jne 0x180098ac3
jmp 0x180098b66
mov r14d, edi
and r14d, 0xfffffff0
mov rcx, rsi
mov rdx, r14
mov r8d, ebx
call fcn.1800a2a70
movabs rcx, 0xffffffff0000000f
and rcx, rdi
add rsi, r14
not eax
cmp rcx, 4
jb 0x180098b6d
lea rdx, [0x18010f4e0]
nop dword [rax + rax]
xor eax, dword [rsi]
mov r8d, eax
movzx edi, ah
movzx r9d, al
shr eax, 0x18
shr r8d, 0x10
movzx r8d, r8b
mov r8d, dword [rdx + r8*4 + 0x400]
xor r8d, dword [rdx + rax*4]
xor r8d, dword [rdx + rdi*4 + 0x800]
xor r8d, dword [rdx + r9*4 + 0xc00]
add rsi, 4
add rcx, 0xfffffffffffffffc
mov eax, r8d
cmp rcx, 3
ja 0x180098a50
test rcx, rcx
je 0x180098b79
test cl, 1
jne 0x180098b81
mov rdx, rcx
cmp rcx, 1
jne 0x180098bb1
jmp 0x180098c5e
mov edx, ebx
test rdi, rdi
je 0x180098b66
test dil, 1
jne 0x180098ad7
mov rcx, rdi
cmp rdi, 1
jne 0x180098b01
jmp 0x180098c5e
mov eax, edx
shr eax, 8
movzx ecx, dl
movzx edx, byte [rsi]
inc rsi
xor edx, ecx
lea rcx, [0x18010f4e0]
xor eax, dword [rcx + rdx*4]
lea rcx, [rdi - 1]
mov edx, eax
cmp rdi, 1
je 0x180098c5e
xor r8d, r8d
lea r9, [0x18010f4e0]
mov eax, edx
nop dword [rax]
movzx edx, al
shr eax, 8
movzx r10d, byte [rsi + r8]
xor r10d, edx
xor eax, dword [r9 + r10*4]
movzx edx, al
shr eax, 8
movzx r10d, byte [rsi + r8 + 1]
xor r10d, edx
xor eax, dword [r9 + r10*4]
add r8, 2
cmp rcx, r8
jne 0x180098b10
jmp 0x180098c5e
mov edx, ebx
test rdi, rdi
je 0x180098b66
test dil, 1
jne 0x180098bf2
mov rcx, rdi
cmp rdi, 1
jne 0x180098c18
jmp 0x180098c5e
mov eax, edx
jmp 0x180098c5e
mov r8d, eax
test rcx, rcx
jne 0x180098a9d
mov eax, r8d
jmp 0x180098c5e
mov eax, r8d
shr eax, 8
movzx edx, r8b
movzx r8d, byte [rsi]
inc rsi
xor r8d, edx
lea rdx, [0x18010f4e0]
xor eax, dword [rdx + r8*4]
lea rdx, [rcx - 1]
mov r8d, eax
cmp rcx, 1
je 0x180098c5e
xor ecx, ecx
lea r9, [0x18010f4e0]
mov eax, r8d
nop dword [rax]
movzx r8d, al
shr eax, 8
movzx r10d, byte [rsi + rcx]
xor r10d, r8d
xor eax, dword [r9 + r10*4]
movzx r8d, al
shr eax, 8
movzx r10d, byte [rsi + rcx + 1]
xor r10d, r8d
xor eax, dword [r9 + r10*4]
add rcx, 2
cmp rdx, rcx
jne 0x180098bc0
jmp 0x180098c5e
mov eax, edx
shr eax, 8
movzx ecx, dl
movzx edx, byte [rsi]
inc rsi
xor edx, ecx
lea rcx, [0x18010f4e0]
xor eax, dword [rcx + rdx*4]
lea rcx, [rdi - 1]
mov edx, eax
cmp rdi, 1
je 0x180098c5e
xor r8d, r8d
lea r9, [0x18010f4e0]
mov eax, edx
nop word cs:[rax + rax]
movzx edx, al
shr eax, 8
movzx r10d, byte [rsi + r8]
xor r10d, edx
xor eax, dword [r9 + r10*4]
movzx edx, al
shr eax, 8
movzx r10d, byte [rsi + r8 + 1]
xor r10d, edx
xor eax, dword [r9 + r10*4]
add r8, 2
cmp rcx, r8
jne 0x180098c30
not eax
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
lea rcx, [0x18014fc10]
call fcn.1800aabec
cmp dword [0x18014fc10], 0xffffffff
jne 0x180098918
lea rcx, [0x18014fbd0]
call fcn.180041610
lea rcx, [0x18014fc10]
call fcn.1800aab80
jmp 0x180098918