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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov qword [rsp + 0x80], r8
mov rbx, rdx
test rdx, rdx
je 0x140009f79
cmp qword [rsp + 0x80], 0x2e
not ecx
mov r8d, ecx
jbe 0x140009e1e
mov rax, qword [rsp + 0x80]
lea rsi, [0x140027940]
nop word [rax + rax]
test bl, 7
je 0x140009f2c
add rbx, 1
mov edx, r8d
xor r8b, byte [rbx - 1]
shr edx, 8
movzx r8d, r8b
xor edx, dword [rsi + r8*4]
mov r8d, edx
sub rax, 1
jne 0x140009be0
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x10], 0xffffffffffffffff
mov rax, qword [rsp + 0x10]
mov qword [rsp], rbx
xor r10d, r10d
xor r15d, r15d
mov qword [rsp + 0x78], rbx
xor ebp, ebp
xor r12d, r12d
lea rdx, [0x140025940]
mov qword [rsp + 8], rax
mov qword [rsp + 0x18], rsi
nop dword [rax + rax]
mov rax, qword [rsp]
mov edi, r8d
mov esi, r12d
mov ebx, ebp
mov r11d, r15d
mov r14d, r10d
mov r9d, 1
xor rdi, qword [rax]
xor rsi, qword [rax + 8]
add rax, 0x28
xor rbx, qword [rax - 0x18]
xor r11, qword [rax - 0x10]
mov r13, rdi
xor r14, qword [rax - 8]
mov qword [rsp], rax
movzx eax, dil
mov r8d, dword [rdx + rax*4]
movzx eax, sil
mov r12d, dword [rdx + rax*4]
movzx eax, bl
mov ebp, dword [rdx + rax*4]
movzx eax, r11b
mov r15d, dword [rdx + rax*4]
movzx eax, r14b
mov r10d, dword [rdx + rax*4]
nop dword [rax]
lea ecx, [r9*8]
mov rdi, r13
movsxd rax, r9d
add r9d, 1
shr rdi, cl
shl rax, 8
movzx edi, dil
add rdi, rax
xor r8d, dword [rdx + rdi*4]
mov rdi, rsi
shr rdi, cl
movzx edi, dil
add rdi, rax
xor r12d, dword [rdx + rdi*4]
mov rdi, rbx
shr rdi, cl
movzx edi, dil
add rdi, rax
xor ebp, dword [rdx + rdi*4]
mov rdi, r11
shr rdi, cl
movzx edi, dil
add rdi, rax
xor r15d, dword [rdx + rdi*4]
mov rdi, r14
shr rdi, cl
movzx ecx, dil
add rax, rcx
xor r10d, dword [rdx + rax*4]
cmp r9d, 8
jne 0x140009ca8
sub qword [rsp + 8], 1
jne 0x140009c48
mov rax, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x78]
mov edx, ebp
mov rsi, qword [rsp + 0x18]
lea rax, [rax + rax*4]
lea rbx, [rbx + rax*8]
mov eax, r12d
mov qword [rsp + 0x10], rax
xor r8, qword [rbx]
mov eax, 8
nop word [rax + rax]
mov rcx, r8
movzx r8d, r8b
mov r8d, dword [rsi + r8*4]
shr rcx, 8
xor r8, rcx
sub eax, 1
jne 0x140009d50
mov rax, qword [rsp + 0x10]
mov r8d, r8d
xor rax, qword [rbx + 8]
mov ecx, 8
xor rax, r8
nop dword [rax + rax]
mov r8, rax
movzx eax, al
mov eax, dword [rsi + rax*4]
shr r8, 8
xor rax, r8
sub ecx, 1
jne 0x140009d80
xor rdx, qword [rbx + 0x10]
mov eax, eax
xor rax, rdx
mov edx, 8
nop dword [rax + rax]
mov rcx, rax
movzx eax, al
mov eax, dword [rsi + rax*4]
shr rcx, 8
xor rax, rcx
sub edx, 1
jne 0x140009da8
mov eax, eax
xor r15, qword [rbx + 0x18]
xor r15, rax
mov eax, 8
nop dword [rax + rax]
mov rdx, r15
movzx r15d, r15b
mov r15d, dword [rsi + r15*4]
shr rdx, 8
xor r15, rdx
sub eax, 1
jne 0x140009dd0
xor r10, qword [rbx + 0x20]
mov r15d, r15d
mov eax, 8
xor r15, r10
nop word cs:[rax + rax]
mov rdx, r15
movzx r15d, r15b
mov r15d, dword [rsi + r15*4]
shr rdx, 8
xor r15, rdx
sub eax, 1
jne 0x140009e00
mov r8d, r15d
add rbx, 0x28
cmp qword [rsp + 0x80], 7
jbe 0x140009f7d
mov rax, qword [rsp + 0x80]
lea rsi, [0x140027940]
sub rax, 8
shr rax, 3
lea r9, [rbx + rax*8 + 8]
nop dword [rax]
mov eax, r8d
xor r8b, byte [rbx]
add rbx, 8
movzx r8d, r8b
shr eax, 8
xor eax, dword [rsi + r8*4]
mov edx, eax
xor al, byte [rbx - 7]
movzx eax, al
shr edx, 8
xor edx, dword [rsi + rax*4]
mov eax, edx
xor dl, byte [rbx - 6]
movzx edx, dl
shr eax, 8
xor eax, dword [rsi + rdx*4]
mov edx, eax
xor al, byte [rbx - 5]
movzx eax, al
shr edx, 8
xor edx, dword [rsi + rax*4]
mov eax, edx
xor dl, byte [rbx - 4]
movzx edx, dl
shr eax, 8
xor eax, dword [rsi + rdx*4]
mov edx, eax
xor al, byte [rbx - 3]
movzx eax, al
shr edx, 8
xor edx, dword [rsi + rax*4]
mov eax, edx
xor dl, byte [rbx - 2]
movzx edx, dl
shr eax, 8
xor eax, dword [rsi + rdx*4]
mov r8d, eax
xor al, byte [rbx - 1]
movzx eax, al
shr r8d, 8
xor r8d, dword [rsi + rax*4]
cmp rbx, r9
jne 0x140009e50
and qword [rsp + 0x80], 7
cmp qword [rsp + 0x80], 0
je 0x140009f16
mov rdx, qword [rsp + 0x80]
lea rsi, [0x140027940]
add rdx, r9
nop dword [rax]
add r9, 1
mov eax, r8d
xor r8b, byte [r9 - 1]
shr eax, 8
movzx r8d, r8b
xor eax, dword [rsi + r8*4]
mov r8d, eax
cmp r9, rdx
jne 0x140009ef8
mov eax, r8d
not eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movabs rdx, 0xcccccccccccccccd
mov qword [rsp + 0x80], rax
mov rax, rdx
mul qword [rsp + 0x80]
shr rdx, 5
lea rax, [rdx + rdx*4]
shl rax, 3
sub qword [rsp + 0x80], rax
sub rdx, 1
mov qword [rsp + 0x10], rdx
jne 0x140009c19
xor r10d, r10d
xor r15d, r15d
xor edx, edx
jmp 0x140009d42
xor eax, eax
jmp 0x140009f1b
mov r9, rbx
jmp 0x140009ed8
mov r8d, r8d
jmp 0x140009b90