Function at 0x140087e1f
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, 0x58
xor eax, eax
mov r10, rdx
mov r11, r8
test rdx, rdx
je 0x140087e0e
not ecx
mov r9d, ecx
cmp r8, 0x2e
jbe 0x140087d1b
test dl, 7
je 0x140087bd7
lea rax, [0x1400dc500]
inc r10
mov edx, r9d
xor r9b, byte [r10 - 1]
shr edx, 8
movzx r9d, r9b
xor edx, dword [rax + r9*4]
mov r9d, edx
dec r11
je 0x140087bd7
test r10d, 7
jne 0x140087bb1
mov edi, 0x28
mov rax, r11
xor edx, edx
mov r8, r10
div rdi
xor ebx, ebx
xor esi, esi
xor edi, edi
xor ebp, ebp
mov qword [rsp + 0x40], rax
mov r11, rdx
mov qword [rsp + 0x48], rax
lea rax, [0x1400da500]
mov r15, qword [r8 + 8]
xor rdi, qword [r8 + 0x10]
mov r12d, r9d
add r8, 0x28
xor rsi, qword [r8 - 0x10]
xor rbx, qword [r8 - 8]
mov qword [rsp + 0x28], rdi
xor r12, qword [r8 - 0x28]
xor r15, rbp
dec qword [rsp + 0x48]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rbx
je 0x140087cdf
movzx edx, r12b
mov r13d, 1
mov r9d, dword [rax + rdx*4]
movzx edx, r15b
mov ebp, dword [rax + rdx*4]
movzx edx, byte [rsp + 0x28]
mov edi, dword [rax + rdx*4]
movzx edx, byte [rsp + 0x30]
mov esi, dword [rax + rdx*4]
movzx edx, byte [rsp + 0x38]
mov ebx, dword [rax + rdx*4]
lea ecx, [r13*8]
mov r14, r12
movsxd rdx, r13d
inc r13d
shr r14, cl
shl rdx, 8
movzx r14d, r14b
add r14, rdx
xor r9d, dword [rax + r14*4]
mov r14, r15
shr r14, cl
movzx r14d, r14b
add r14, rdx
xor ebp, dword [rax + r14*4]
mov r14, qword [rsp + 0x28]
shr r14, cl
movzx r14d, r14b
add r14, rdx
xor edi, dword [rax + r14*4]
mov r14, qword [rsp + 0x30]
shr r14, cl
movzx r14d, r14b
add r14, rdx
xor esi, dword [rax + r14*4]
mov r14, qword [rsp + 0x38]
shr r14, cl
movzx ecx, r14b
add rdx, rcx
xor ebx, dword [rax + rdx*4]
cmp r13d, 8
jne 0x140087c68
jmp 0x140087c03
imul rax, qword [rsp + 0x40], 0x28
mov rcx, r12
add r10, rax
call fcn.140087b02
mov ecx, eax
xor rcx, r15
call fcn.140087b02
mov ecx, eax
xor rcx, rdi
call fcn.140087b02
mov ecx, eax
xor rcx, rsi
call fcn.140087b02
mov ecx, eax
xor rcx, rbx
call fcn.140087b02
mov r9d, eax
mov rdx, r10
lea rbx, [r10 + r11]
lea rcx, [0x1400dc500]
mov rax, rbx
sub rax, rdx
cmp rax, 7
jbe 0x140087dd0
mov r8d, r9d
xor r9b, byte [rdx]
add rdx, 8
movzx r9d, r9b
shr r8d, 8
xor r8d, dword [rcx + r9*4]
mov eax, r8d
xor r8b, byte [rdx - 7]
movzx r8d, r8b
shr eax, 8
xor eax, dword [rcx + r8*4]
mov r8d, eax
xor al, byte [rdx - 6]
movzx eax, al
shr r8d, 8
xor r8d, dword [rcx + rax*4]
mov eax, r8d
xor r8b, byte [rdx - 5]
movzx r8d, r8b
shr eax, 8
xor eax, dword [rcx + r8*4]
mov r8d, eax
xor al, byte [rdx - 4]
movzx eax, al
shr r8d, 8
xor r8d, dword [rcx + rax*4]
mov eax, r8d
xor r8b, byte [rdx - 3]
movzx r8d, r8b
shr eax, 8
xor eax, dword [rcx + r8*4]
mov r8d, eax
xor al, byte [rdx - 2]
movzx eax, al
shr r8d, 8
xor r8d, dword [rcx + rax*4]
mov r9d, r8d
xor r8b, byte [rdx - 1]
movzx r8d, r8b
shr r9d, 8
xor r9d, dword [rcx + r8*4]
jmp 0x140087d29
mov rax, r11
xor edx, edx
shr rax, 3
imul rax, rax, 0xfffffffffffffff8
add r11, rax
sub r10, rax
lea rax, [0x1400dc500]
cmp rdx, r11
je 0x140087e09
mov ecx, r9d
xor r9b, byte [r10 + rdx]
inc rdx
movzx r9d, r9b
shr ecx, 8
xor ecx, dword [rax + r9*4]
mov r9d, ecx
jmp 0x140087dea
mov eax, r9d
not eax
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, r8d
jmp 0x140087b75