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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
test rdx, rdx
je 0x140010f65
mov r15, rdx
not ecx
cmp r8, 0x2f
jb 0x14001119b
test r15b, 7
je 0x140010c43
lea rax, [r15 + 1]
lea rdx, [0x14001f080]
nop dword [rax]
mov r10d, ecx
xor cl, byte [r15]
mov rsi, r8
dec r8
inc r15
shr r10d, 8
movzx r11d, cl
mov ecx, r10d
xor ecx, dword [rdx + r11*4]
cmp rsi, 1
je 0x140010c43
mov r10d, eax
inc rax
and r10d, 7
test r10, r10
jne 0x140010c10
movabs rax, 0xcccccccccccccccd
mov rdx, r8
xor r10d, r10d
mulx rax, rax, rax
shr rax, 5
lea rdx, [rax*8]
lea rbx, [rdx + rdx*4]
mov rdx, rax
dec rdx
je 0x140010f6c
lea rax, [rax + rax*4]
lea rsi, [0x14001f480]
xor ebp, ebp
xor edi, edi
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r15
lea rax, [rax*8 - 0x28]
mov qword [rsp + 8], rax
xor eax, eax
nop word cs:[rax + rax]
mov r8d, ecx
mov rcx, qword [r15]
mov qword [rsp + 0x50], rdx
mov rdx, qword [r15 + 8]
xor r8, rcx
mov qword [rsp + 0x48], rcx
mov ecx, edi
mov qword [rsp + 0x40], rdx
xor rcx, rdx
mov rbx, r8
mov rdx, qword [r15 + 0x18]
mov r8, rcx
mov ecx, eax
mov rax, qword [r15 + 0x10]
mov r11, rbx
mov r13, r8
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
xor rcx, rax
mov eax, ebp
xor rax, rdx
mov rdx, qword [r15 + 0x20]
movzx ebp, cl
add r15, 0x28
mov r9, rax
mov qword [rsp], rax
mov eax, r10d
movzx r10d, r8b
movzx r9d, r9b
xor rax, rdx
mov qword [rsp + 0x28], rdx
mov rdx, rcx
movzx ecx, bh
mov r14, rax
movzx eax, bl
mov rbx, r8
mov ecx, dword [rsi + rcx*4 + 0x400]
mov r12, rdx
mov r8d, 0x810
xor ecx, dword [rsi + rax*4]
movzx eax, bh
mov edi, dword [rsi + rax*4 + 0x400]
movzx eax, dh
mov rdx, qword [rsp]
xor edi, dword [rsi + r10*4]
mov eax, dword [rsi + rax*4 + 0x400]
xor eax, dword [rsi + rbp*4]
movzx ebp, dh
mov rdx, r14
mov ebp, dword [rsi + rbp*4 + 0x400]
xor ebp, dword [rsi + r9*4]
movzx ebx, dh
movzx r9d, dl
mov rdx, r13
mov r10d, dword [rsi + rbx*4 + 0x400]
xor r10d, dword [rsi + r9*4]
bextr r9, r11, r8
bextr rbx, r12, r8
xor ecx, dword [rsi + r9*4 + 0x800]
bextr r9, r13, r8
mov r13d, 0x818
xor eax, dword [rsi + rbx*4 + 0x800]
bextr rbx, rdx, r13
mov rdx, qword [rsp]
xor edi, dword [rsi + r9*4 + 0x800]
bextr r9, r11, r13
xor ecx, dword [rsi + r9*4 + 0xc00]
mov r9, qword [rsp + 0x40]
xor edi, dword [rsi + rbx*4 + 0xc00]
mov rbx, qword [rsp + 0x38]
bextr r11, rdx, r8
xor ebp, dword [rsi + r11*4 + 0x800]
bextr r11, r14, r8
bextr r8, rdx, r13
bextr rdx, r14, r13
mov r14, qword [rsp + 0x30]
xor r10d, dword [rsi + r11*4 + 0x800]
bextr r11, r12, r13
xor ebp, dword [rsi + r8*4 + 0xc00]
mov r8d, 0x820
mov r12, qword [rsp + 0x28]
xor eax, dword [rsi + r11*4 + 0xc00]
mov r11, qword [rsp + 0x48]
xor r10d, dword [rsi + rdx*4 + 0xc00]
bextr rdx, r11, r8
xor ecx, dword [rsi + rdx*4 + 0x1000]
bextr rdx, r9, r8
xor edi, dword [rsi + rdx*4 + 0x1000]
bextr rdx, rbx, r8
xor eax, dword [rsi + rdx*4 + 0x1000]
bextr rdx, r14, r8
xor ebp, dword [rsi + rdx*4 + 0x1000]
bextr rdx, r12, r8
mov r8d, 0x828
xor r10d, dword [rsi + rdx*4 + 0x1000]
bextr rdx, r11, r8
xor ecx, dword [rsi + rdx*4 + 0x1400]
bextr rdx, r9, r8
xor edi, dword [rsi + rdx*4 + 0x1400]
bextr rdx, rbx, r8
xor eax, dword [rsi + rdx*4 + 0x1400]
bextr rdx, r14, r8
xor ebp, dword [rsi + rdx*4 + 0x1400]
bextr rdx, r12, r8
mov r8d, 0x830
xor r10d, dword [rsi + rdx*4 + 0x1400]
bextr rdx, r11, r8
shr r11, 0x38
xor ecx, dword [rsi + rdx*4 + 0x1800]
bextr rdx, r9, r8
shr r9, 0x38
xor edi, dword [rsi + rdx*4 + 0x1800]
bextr rdx, rbx, r8
xor ecx, dword [rsi + r11*4 + 0x1c00]
xor eax, dword [rsi + rdx*4 + 0x1800]
bextr rdx, r14, r8
xor edi, dword [rsi + r9*4 + 0x1c00]
xor ebp, dword [rsi + rdx*4 + 0x1800]
bextr rdx, r12, r8
mov r8, rbx
shr r8, 0x38
xor r10d, dword [rsi + rdx*4 + 0x1800]
mov rdx, qword [rsp + 0x50]
xor eax, dword [rsi + r8*4 + 0x1c00]
mov r8, r14
shr r8, 0x38
xor ebp, dword [rsi + r8*4 + 0x1c00]
mov r8, r12
shr r8, 0x38
xor r10d, dword [rsi + r8*4 + 0x1c00]
dec rdx
jne 0x140010cb0
mov r15, qword [rsp + 0x20]
add r15, qword [rsp + 8]
mov r8, qword [rsp + 0x18]
mov rbx, qword [rsp + 0x10]
mov r11d, r10d
mov edi, edi
mov r10d, eax
mov esi, ebp
jmp 0x140010f73
xor eax, eax
jmp 0x140011270
xor edi, edi
xor esi, esi
xor r11d, r11d
mov eax, ecx
xor rax, qword [r15]
lea rdx, [0x14001f080]
xor rdi, qword [r15 + 8]
xor r10, qword [r15 + 0x10]
xor rsi, qword [r15 + 0x18]
xor r11, qword [r15 + 0x20]
sub r8, rbx
add r15, 0x28
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 rcx, rdi
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 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 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 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]
cmp r8, 8
jb 0x140011239
lea rax, [0x14001f080]
nop dword [rax]
mov edx, ecx
xor cl, byte [r15]
add r8, 0xfffffffffffffff8
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r15 + 1]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r15 + 2]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r15 + 3]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r15 + 4]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r15 + 5]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r15 + 6]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r15 + 7]
add r15, 8
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
cmp r8, 7
ja 0x1400111b0
test r8, r8
je 0x14001126c
xor edx, edx
lea r10, [0x14001f080]
nop word [rax + rax]
mov eax, ecx
xor cl, byte [r15 + rdx]
inc rdx
shr eax, 8
movzx ecx, cl
xor eax, dword [r10 + rcx*4]
mov ecx, eax
cmp r8, rdx
jne 0x140011250
jmp 0x14001126e
mov eax, ecx
not eax
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret