Function at 0x180095ca0
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 [0x18014bbd0]
mov ecx, dword [0x18014d474]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 0x30]
jg 0x18009602b
mov eax, dword [0x18014bbb4]
not eax
test eax, 0x80002
jne 0x180095d60
cmp rdi, 0xf
ja 0x180095dd0
not ebx
cmp rdi, 4
jb 0x180095f03
lea rax, [0x18010c3b0]
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 0x180095d10
test rdi, rdi
jne 0x180095f0a
jmp 0x180095f26
not ebx
cmp rdi, 4
jb 0x180095e78
lea rax, [0x18010c3b0]
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 0x180095d80
test rdi, rdi
jne 0x180095e83
jmp 0x180095f26
mov r14d, edi
and r14d, 0xfffffff0
mov rcx, rsi
mov rdx, r14
mov r8d, ebx
call fcn.18009fde0
movabs rcx, 0xffffffff0000000f
and rcx, rdi
add rsi, r14
not eax
cmp rcx, 4
jb 0x180095f2d
lea rdx, [0x18010c3b0]
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 0x180095e10
test rcx, rcx
je 0x180095f39
test cl, 1
jne 0x180095f41
mov rdx, rcx
cmp rcx, 1
jne 0x180095f71
jmp 0x18009601e
mov edx, ebx
test rdi, rdi
je 0x180095f26
test dil, 1
jne 0x180095e97
mov rcx, rdi
cmp rdi, 1
jne 0x180095ec1
jmp 0x18009601e
mov eax, edx
shr eax, 8
movzx ecx, dl
movzx edx, byte [rsi]
inc rsi
xor edx, ecx
lea rcx, [0x18010c3b0]
xor eax, dword [rcx + rdx*4]
lea rcx, [rdi - 1]
mov edx, eax
cmp rdi, 1
je 0x18009601e
xor r8d, r8d
lea r9, [0x18010c3b0]
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 0x180095ed0
jmp 0x18009601e
mov edx, ebx
test rdi, rdi
je 0x180095f26
test dil, 1
jne 0x180095fb2
mov rcx, rdi
cmp rdi, 1
jne 0x180095fd8
jmp 0x18009601e
mov eax, edx
jmp 0x18009601e
mov r8d, eax
test rcx, rcx
jne 0x180095e5d
mov eax, r8d
jmp 0x18009601e
mov eax, r8d
shr eax, 8
movzx edx, r8b
movzx r8d, byte [rsi]
inc rsi
xor r8d, edx
lea rdx, [0x18010c3b0]
xor eax, dword [rdx + r8*4]
lea rdx, [rcx - 1]
mov r8d, eax
cmp rcx, 1
je 0x18009601e
xor ecx, ecx
lea r9, [0x18010c3b0]
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 0x180095f80
jmp 0x18009601e
mov eax, edx
shr eax, 8
movzx ecx, dl
movzx edx, byte [rsi]
inc rsi
xor edx, ecx
lea rcx, [0x18010c3b0]
xor eax, dword [rcx + rdx*4]
lea rcx, [rdi - 1]
mov edx, eax
cmp rdi, 1
je 0x18009601e
xor r8d, r8d
lea r9, [0x18010c3b0]
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 0x180095ff0
not eax
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
lea rcx, [0x18014bbd0]
call fcn.1800a7fbc
cmp dword [0x18014bbd0], 0xffffffff
jne 0x180095cd8
lea rcx, [0x18014bb90]
call fcn.180041b00
lea rcx, [0x18014bbd0]
call fcn.1800a7f50
jmp 0x180095cd8