Function at 0x140063970
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
mov rsi, r8
test rdx, rdx
je 0x140063289
mov r12, rdx
mov ebx, ecx
cmp rsi, 0x40
jb 0x14006329e
cmp dword [0x14017e208], 0
je 0x14006329e
mov r14, rsi
and r14, 0xfffffffffffffff0
not ebx
mov rcx, r12
mov rdx, r14
mov r8d, ebx
call fcn.14002b1b0
mov ebp, eax
and rsi, 0xf
je 0x14006394d
add r12, r14
mov ebx, ebp
jmp 0x140063871
xor ebp, ebp
test rsi, rsi
jne 0x14006394f
call fcn.14007b2c0
jmp 0x14006394f
not ebx
cmp rsi, 0x2f
jb 0x140063871
test r12b, 7
je 0x1400632f2
lea rax, [r12 + 1]
lea rcx, [0x140142080]
nop dword [rax]
mov rdx, rsi
dec rsi
mov r8d, ebx
shr r8d, 8
xor bl, byte [r12]
inc r12
movzx r9d, bl
mov ebx, r8d
xor ebx, dword [rcx + r9*4]
cmp rdx, 1
je 0x1400632f2
mov edx, eax
and edx, 7
inc rax
test rdx, rdx
jne 0x1400632c0
movabs rcx, 0xcccccccccccccccd
mov rax, rsi
mul rcx
shr rdx, 5
lea rax, [rdx*8]
lea r8, [rax + rax*4]
mov r10, rdx
dec r10
je 0x140063639
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], rsi
xor r11d, r11d
lea rax, [rdx + rdx*4]
lea rax, [rax*8 - 0x28]
mov qword [rsp + 0x28], rax
lea r9, [0x140142480]
xor ecx, ecx
xor edx, edx
xor eax, eax
mov r8, r12
nop dword [rax]
mov qword [rsp + 0x20], r8
mov r8, qword [r8]
mov qword [rsp + 0x50], r8
xor ebx, r8d
movzx r8d, bl
movzx edi, bh
mov ebp, dword [r9 + rdi*4 + 0x400]
xor ebp, dword [r9 + r8*4]
mov r8d, ebx
shr r8d, 0xe
and r8d, 0x3fc
xor ebp, dword [r8 + r9 + 0x800]
shr ebx, 0x18
xor ebp, dword [r9 + rbx*4 + 0xc00]
mov r8, qword [rsp + 0x20]
mov r8, qword [r8 + 8]
mov qword [rsp + 0x40], r8
xor eax, r8d
movzx r8d, al
movzx edi, ah
mov r13d, dword [r9 + rdi*4 + 0x400]
xor r13d, dword [r9 + r8*4]
mov r8d, eax
shr r8d, 0xe
and r8d, 0x3fc
xor r13d, dword [r8 + r9 + 0x800]
shr eax, 0x18
xor r13d, dword [r9 + rax*4 + 0xc00]
mov rax, qword [rsp + 0x20]
mov r15, qword [rax + 0x10]
xor edx, r15d
mov rax, qword [rsp + 0x20]
mov r14, qword [rax + 0x18]
xor ecx, r14d
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x48], rax
mov rbx, rcx
mov rcx, rdx
mov rdx, r11
xor edx, eax
movzx eax, cl
movzx edi, bl
movzx r8d, dl
movzx esi, ch
mov r11d, dword [r9 + rsi*4 + 0x400]
xor r11d, dword [r9 + rax*4]
movzx eax, bh
mov rsi, r10
mov r10d, dword [r9 + rax*4 + 0x400]
xor r10d, dword [r9 + rdi*4]
movzx eax, dh
mov edi, dword [r9 + rax*4 + 0x400]
xor edi, dword [r9 + r8*4]
mov eax, ecx
shr eax, 0xe
and eax, 0x3fc
xor r11d, dword [rax + r9 + 0x800]
mov eax, ebx
shr eax, 0xe
and eax, 0x3fc
xor r10d, dword [rax + r9 + 0x800]
mov eax, edx
shr eax, 0xe
and eax, 0x3fc
xor edi, dword [rax + r9 + 0x800]
shr ecx, 0x18
xor r11d, dword [r9 + rcx*4 + 0xc00]
shr ebx, 0x18
xor r10d, dword [r9 + rbx*4 + 0xc00]
shr edx, 0x18
xor edi, dword [r9 + rdx*4 + 0xc00]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
shr rax, 0x20
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1000]
mov rdx, qword [rsp + 0x40]
mov rax, rdx
shr rax, 0x20
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1000]
mov rax, r15
shr rax, 0x20
movzx eax, al
xor r11d, dword [r9 + rax*4 + 0x1000]
mov rax, r14
shr rax, 0x20
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1000]
mov r8, qword [rsp + 0x48]
mov rax, r8
shr rax, 0x20
movzx eax, al
xor edi, dword [r9 + rax*4 + 0x1000]
mov rax, rcx
shr rax, 0x28
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1400]
mov rax, rdx
shr rax, 0x28
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1400]
mov rax, r15
shr rax, 0x28
movzx eax, al
xor r11d, dword [r9 + rax*4 + 0x1400]
mov rax, r14
shr rax, 0x28
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1400]
mov rax, r8
shr rax, 0x28
movzx eax, al
xor edi, dword [r9 + rax*4 + 0x1400]
mov rax, rcx
shr rax, 0x30
movzx eax, al
xor ebp, dword [r9 + rax*4 + 0x1800]
mov rax, rdx
shr rax, 0x30
movzx eax, al
xor r13d, dword [r9 + rax*4 + 0x1800]
mov rax, r15
shr rax, 0x30
movzx eax, al
xor r11d, dword [r9 + rax*4 + 0x1800]
mov rax, r14
shr rax, 0x30
movzx eax, al
xor r10d, dword [r9 + rax*4 + 0x1800]
mov rax, r8
shr rax, 0x30
movzx eax, al
xor edi, dword [r9 + rax*4 + 0x1800]
mov rax, rcx
shr rax, 0x38
mov ebx, ebp
xor ebx, dword [r9 + rax*4 + 0x1c00]
shr rdx, 0x38
mov eax, r13d
xor eax, dword [r9 + rdx*4 + 0x1c00]
shr r15, 0x38
mov edx, r11d
xor edx, dword [r9 + r15*4 + 0x1c00]
shr r14, 0x38
mov ecx, r10d
mov r10, rsi
xor ecx, dword [r9 + r14*4 + 0x1c00]
shr r8, 0x38
mov r11d, edi
xor r11d, dword [r9 + r8*4 + 0x1c00]
mov r8, qword [rsp + 0x20]
add r8, 0x28
dec r10
jne 0x140063350
add r12, qword [rsp + 0x28]
mov r11d, r11d
mov eax, eax
mov r10d, edx
mov r9d, ecx
mov rdi, rax
mov rsi, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
jmp 0x140063644
xor r10d, r10d
xor r9d, r9d
xor r11d, r11d
xor edi, edi
mov eax, ebx
xor rax, qword [r12]
movzx edx, al
shr rax, 8
lea rcx, [0x140142080]
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
xor rdi, qword [r12 + 8]
xor rdx, rdi
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r10, qword [r12 + 0x10]
xor rax, r10
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
xor edx, dword [rcx + rax*4]
sub rsi, r8
xor r9, qword [r12 + 0x18]
xor rdx, r9
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
xor eax, dword [rcx + rdx*4]
xor r11, qword [r12 + 0x20]
xor rax, r11
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov edx, dword [rcx + rdx*4]
xor rdx, rax
movzx eax, dl
shr rdx, 8
mov eax, dword [rcx + rax*4]
xor rax, rdx
movzx edx, al
shr rax, 8
mov ebx, dword [rcx + rdx*4]
xor rbx, rax
movzx eax, bl
shr rbx, 8
xor ebx, dword [rcx + rax*4]
add r12, 0x28
cmp rsi, 8
jb 0x140063921
lea rax, [0x140142080]
nop word cs:[rax + rax]
mov ecx, ebx
xor bl, byte [r12]
shr ecx, 8
movzx edx, bl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r12 + 1]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r12 + 2]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov edx, ecx
xor cl, byte [r12 + 3]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
xor dl, byte [r12 + 4]
shr ecx, 8
movzx edx, dl
xor ecx, dword [rax + rdx*4]
add rsi, 0xfffffffffffffff8
mov edx, ecx
xor cl, byte [r12 + 5]
shr edx, 8
movzx ecx, cl
xor edx, dword [rax + rcx*4]
mov ecx, edx
shr ecx, 8
xor dl, byte [r12 + 6]
movzx edx, dl
xor ecx, dword [rax + rdx*4]
mov ebx, ecx
shr ebx, 8
xor cl, byte [r12 + 7]
add r12, 8
movzx ecx, cl
xor ebx, dword [rax + rcx*4]
cmp rsi, 7
ja 0x140063890
test rsi, rsi
je 0x14006394b
xor eax, eax
lea rcx, [0x140142080]
nop
mov ebp, ebx
xor bl, byte [r12 + rax]
shr ebp, 8
movzx edx, bl
xor ebp, dword [rcx + rdx*4]
inc rax
mov ebx, ebp
cmp rsi, rax
jne 0x140063930
jmp 0x14006394d
mov ebp, ebx
not ebp
mov eax, ebp
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
sub rsp, 0x28
test rdx, rdx
je 0x140063985
mov r8d, r8d
add rsp, 0x28
jmp 0x140063230
test r8d, r8d
jne 0x14006398f
call fcn.14007b2c0
xor eax, eax
add rsp, 0x28
ret