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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
test rdx, rdx
je 0x140095568
mov r9, rdx
not ecx
cmp r8, 0x2f
jb 0x140095af2
test r9b, 7
je 0x14009557a
movzx ebx, cl
shr ecx, 8
lea rdi, [r9 + 1]
movzx eax, byte [r9]
xor ebx, eax
lea rax, [0x140116000]
xor ecx, dword [rax + rbx*4]
mov rbx, r8
add rbx, 0xffffffffffffffff
je 0x14009556f
mov edx, edi
and edx, 7
test rdx, rdx
je 0x14009556f
movzx ebx, cl
shr ecx, 8
lea rsi, [r9 + 2]
movzx edi, byte [r9 + 1]
xor ebx, edi
xor ecx, dword [rax + rbx*4]
mov rbx, r8
add rbx, 0xfffffffffffffffe
je 0x140095574
mov edx, esi
and edx, 7
test rdx, rdx
je 0x140095574
movzx ebx, cl
shr ecx, 8
lea rsi, [r9 + 3]
movzx edi, byte [r9 + 2]
xor ebx, edi
xor ecx, dword [rax + rbx*4]
mov rbx, r8
add rbx, 0xfffffffffffffffd
je 0x140095574
mov edx, esi
and edx, 7
test rdx, rdx
je 0x140095574
movzx ebx, cl
shr ecx, 8
lea rsi, [r9 + 4]
movzx edi, byte [r9 + 3]
xor ebx, edi
xor ecx, dword [rax + rbx*4]
mov rbx, r8
add rbx, 0xfffffffffffffffc
je 0x140095574
mov edx, esi
and edx, 7
test rdx, rdx
je 0x140095574
movzx ebx, cl
shr ecx, 8
lea rsi, [r9 + 5]
movzx edi, byte [r9 + 4]
xor ebx, edi
xor ecx, dword [rax + rbx*4]
mov rbx, r8
add rbx, 0xfffffffffffffffb
je 0x140095574
mov edx, esi
and edx, 7
test rdx, rdx
je 0x140095574
movzx ebx, cl
shr ecx, 8
lea rsi, [r9 + 6]
movzx edi, byte [r9 + 5]
xor ebx, edi
xor ecx, dword [rax + rbx*4]
mov rbx, r8
add rbx, 0xfffffffffffffffa
je 0x140095574
mov edx, esi
and edx, 7
test rdx, rdx
je 0x140095574
movzx ebx, cl
shr ecx, 8
lea rsi, [r9 + 7]
movzx edi, byte [r9 + 6]
xor ebx, edi
xor ecx, dword [rax + rbx*4]
mov rbx, r8
add rbx, 0xfffffffffffffff9
je 0x140095574
mov edx, esi
and edx, 7
test rdx, rdx
je 0x140095574
add r8, 0xfffffffffffffff8
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9 + 7]
add r9, 8
xor edx, ebx
xor ecx, dword [rax + rdx*4]
jmp 0x14009557a
xor eax, eax
jmp 0x140095c1c
mov r9, rdi
jmp 0x140095577
mov r9, rsi
mov r8, rbx
movabs rdx, 0xcccccccccccccccd
mov rax, r8
mul rdx
shr rdx, 5
lea rax, [rdx*8]
lea rax, [rax + rax*4]
xor r11d, r11d
mov rbx, rdx
add rbx, 0xffffffffffffffff
je 0x1400958c0
mov qword [rbp - 8], rax
mov qword [rbp - 0x10], r8
lea rax, [rdx + rdx*4]
lea rax, [r9 + rax*8]
add rax, 0xffffffffffffffd8
mov qword [rbp], rax
lea r8, [0x140116400]
mov qword [rbp - 0x18], rbx
xor esi, esi
xor edx, edx
xor r15d, r15d
nop word cs:[rax + rax]
nop
mov ebx, ecx
mov rax, qword [r9]
mov qword [rbp - 0x20], rax
xor rbx, rax
movzx eax, bl
movzx ecx, bh
mov ecx, dword [r8 + rcx*4 + 0x400]
xor ecx, dword [r8 + rax*4]
mov rax, rbx
shr rax, 0xe
and eax, 0x3fc
xor ecx, dword [rax + r8 + 0x800]
shr rbx, 0x16
and ebx, 0x3fc
xor ecx, dword [rbx + r8 + 0xc00]
mov r12, qword [r9 + 8]
mov ebx, edx
xor rbx, r12
movzx edi, bl
movzx edx, bh
mov edx, dword [r8 + rdx*4 + 0x400]
xor edx, dword [r8 + rdi*4]
mov rax, rbx
shr rax, 0xe
and eax, 0x3fc
xor edx, dword [rax + r8 + 0x800]
shr rbx, 0x16
and ebx, 0x3fc
xor edx, dword [rbx + r8 + 0xc00]
mov ebx, r15d
mov r13, qword [r9 + 0x10]
xor rbx, r13
movzx eax, bl
movzx edi, bh
mov r15d, dword [r8 + rdi*4 + 0x400]
xor r15d, dword [r8 + rax*4]
mov rax, rbx
shr rax, 0xe
and eax, 0x3fc
xor r15d, dword [rax + r8 + 0x800]
shr rbx, 0x16
and ebx, 0x3fc
xor r15d, dword [rbx + r8 + 0xc00]
mov eax, esi
mov r10, qword [r9 + 0x18]
xor rax, r10
movzx edi, al
movzx esi, ah
mov esi, dword [r8 + rsi*4 + 0x400]
xor esi, dword [r8 + rdi*4]
mov rdi, rax
shr rdi, 0xe
and edi, 0x3fc
xor esi, dword [rdi + r8 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor esi, dword [rax + r8 + 0xc00]
mov eax, r11d
mov r14, qword [r9 + 0x20]
xor rax, r14
movzx edi, al
movzx ebx, ah
mov r11d, dword [r8 + rbx*4 + 0x400]
xor r11d, dword [r8 + rdi*4]
mov rdi, rax
shr rdi, 0xe
and edi, 0x3fc
xor r11d, dword [rdi + r8 + 0x800]
shr rax, 0x16
and eax, 0x3fc
xor r11d, dword [rax + r8 + 0xc00]
mov rdi, qword [rbp - 0x20]
mov rax, rdi
shr rax, 0x1e
and eax, 0x3fc
xor ecx, dword [rax + r8 + 0x1000]
mov rax, r12
shr rax, 0x1e
and eax, 0x3fc
xor edx, dword [rax + r8 + 0x1000]
mov rax, r13
shr rax, 0x1e
and eax, 0x3fc
xor r15d, dword [rax + r8 + 0x1000]
mov rax, r10
shr rax, 0x1e
and eax, 0x3fc
xor esi, dword [rax + r8 + 0x1000]
mov rax, r14
shr rax, 0x1e
and eax, 0x3fc
xor r11d, dword [rax + r8 + 0x1000]
mov rax, rdi
shr rax, 0x26
and eax, 0x3fc
xor ecx, dword [rax + r8 + 0x1400]
mov rax, r12
shr rax, 0x26
and eax, 0x3fc
xor edx, dword [rax + r8 + 0x1400]
mov rax, r13
shr rax, 0x26
and eax, 0x3fc
xor r15d, dword [rax + r8 + 0x1400]
mov rax, r10
shr rax, 0x26
and eax, 0x3fc
xor esi, dword [rax + r8 + 0x1400]
mov rax, r14
shr rax, 0x26
and eax, 0x3fc
xor r11d, dword [rax + r8 + 0x1400]
mov rax, rdi
shr rax, 0x2e
and eax, 0x3fc
xor ecx, dword [rax + r8 + 0x1800]
mov rax, r12
shr rax, 0x2e
and eax, 0x3fc
xor edx, dword [rax + r8 + 0x1800]
mov rax, r13
shr rax, 0x2e
and eax, 0x3fc
xor r15d, dword [rax + r8 + 0x1800]
mov rax, r10
shr rax, 0x2e
and eax, 0x3fc
xor esi, dword [rax + r8 + 0x1800]
mov rax, r14
shr rax, 0x2e
and eax, 0x3fc
xor r11d, dword [rax + r8 + 0x1800]
mov rax, rdi
shr rax, 0x38
xor ecx, dword [r8 + rax*4 + 0x1c00]
shr r12, 0x38
xor edx, dword [r8 + r12*4 + 0x1c00]
shr r13, 0x38
xor r15d, dword [r8 + r13*4 + 0x1c00]
shr r10, 0x38
xor esi, dword [r8 + r10*4 + 0x1c00]
shr r14, 0x38
xor r11d, dword [r8 + r14*4 + 0x1c00]
add r9, 0x28
add qword [rbp - 0x18], 0xffffffffffffffff
jne 0x1400955e0
mov edi, edx
mov r10d, r11d
mov r11d, r15d
mov esi, esi
mov r9, qword [rbp]
mov r8, qword [rbp - 0x10]
mov rax, qword [rbp - 8]
jmp 0x1400958c7
xor edi, edi
xor esi, esi
xor r10d, r10d
mov ecx, ecx
xor rcx, qword [r9]
movzx ebx, cl
shr rcx, 8
lea rdx, [0x140116000]
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
xor ebx, dword [rdx + rcx*4]
xor rdi, qword [r9 + 8]
xor rbx, rdi
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
xor ecx, dword [rdx + rbx*4]
xor r11, qword [r9 + 0x10]
xor rcx, r11
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
xor ebx, dword [rdx + rcx*4]
sub r8, rax
xor rsi, qword [r9 + 0x18]
xor rbx, rsi
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
mov ebx, dword [rdx + rbx*4]
xor rbx, rcx
movzx ecx, bl
shr rbx, 8
mov ecx, dword [rdx + rcx*4]
xor rcx, rbx
movzx ebx, cl
shr rcx, 8
xor ecx, dword [rdx + rbx*4]
xor r10, qword [r9 + 0x20]
xor rcx, r10
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 ebx, al
mov rcx, rax
shr rcx, 8
xor ecx, dword [rdx + rbx*4]
add r9, 0x28
cmp r8, 8
jb 0x140095ba1
lea rax, [0x140116000]
nop word cs:[rax + rax]
nop dword [rax]
add r8, 0xfffffffffffffff8
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9]
xor edx, ebx
xor ecx, dword [rax + rdx*4]
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9 + 1]
xor edx, ebx
xor ecx, dword [rax + rdx*4]
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9 + 2]
xor edx, ebx
xor ecx, dword [rax + rdx*4]
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9 + 3]
xor edx, ebx
xor ecx, dword [rax + rdx*4]
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9 + 4]
xor edx, ebx
xor ecx, dword [rax + rdx*4]
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9 + 5]
xor edx, ebx
xor ecx, dword [rax + rdx*4]
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9 + 6]
xor edx, ebx
xor ecx, dword [rax + rdx*4]
movzx edx, cl
shr ecx, 8
movzx ebx, byte [r9 + 7]
add r9, 8
xor edx, ebx
xor ecx, dword [rax + rdx*4]
cmp r8, 7
ja 0x140095b10
test r8, r8
je 0x140095bb7
test r8b, 1
jne 0x140095bbb
mov rdx, r8
cmp r8, 1
jne 0x140095be3
jmp 0x140095c1a
mov eax, ecx
jmp 0x140095c1a
lea rdx, [r8 - 1]
mov eax, ecx
shr eax, 8
movzx ebx, byte [r9]
add r9, 1
movzx ecx, cl
xor ecx, ebx
lea rbx, [0x140116000]
xor eax, dword [rbx + rcx*4]
mov ecx, eax
cmp r8, 1
je 0x140095c1a
xor ebx, ebx
lea rdi, [0x140116000]
mov eax, ecx
nop
movzx ecx, al
shr eax, 8
movzx esi, byte [r9 + rbx]
xor ecx, esi
xor eax, dword [rdi + rcx*4]
movzx ecx, al
shr eax, 8
movzx esi, byte [r9 + rbx + 1]
xor ecx, esi
xor eax, dword [rdi + rcx*4]
add rbx, 2
cmp rdx, rbx
jne 0x140095bf0
not eax
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret