Function at 0x140373480
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, 0x28
test rdx, rdx
jne 0x14037313c
xor eax, eax
jmp 0x140373467
mov r9, rdx
mov r10d, ecx
not r10d
cmp r8, 0x17
jb 0x140373278
test r9b, 3
je 0x140373181
lea rax, [0x1405ee8b0]
movzx ecx, r10b
shr r10d, 8
movzx edx, byte [r9]
inc r9
xor ecx, edx
xor r10d, dword [rax + rcx*4]
dec r8
je 0x140373181
mov ecx, r9d
and ecx, 3
test rcx, rcx
jne 0x14037315c
movabs rcx, 0xcccccccccccccccd
mov rax, r8
mul rcx
shr rdx, 4
lea rax, [rdx*4]
lea rcx, [rax + rax*4]
xor r10d, dword [r9]
xor edi, edi
mov rbp, rdx
dec rbp
jne 0x14037335e
xor esi, esi
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x1403731e7
mov r9, qword [rsp + 0x20]
xor r10d, dword [r9 + 0x14]
add r9, 0x14
mov rbp, qword [rsp + 0x18]
dec rbp
jne 0x140373387
mov r9, qword [rsp]
mov r8, qword [rsp + 0x10]
xor edi, edi
mov rcx, qword [rsp + 8]
sub r8, rcx
lea rcx, [0x1405ee8b0]
movzx ebp, r10b
shr r10d, 8
xor r10d, dword [rcx + rbp*4]
inc edi
cmp edi, 4
jne 0x1403731f1
xor r10d, ebx
xor r10d, dword [r9 + 4]
xor ebp, ebp
movzx ebx, r10b
shr r10d, 8
xor r10d, dword [rcx + rbx*4]
inc ebp
cmp ebp, 4
jne 0x14037320d
xor r10d, esi
xor r10d, dword [r9 + 8]
xor ebp, ebp
movzx ebx, r10b
shr r10d, 8
xor r10d, dword [rcx + rbx*4]
inc ebp
cmp ebp, 4
jne 0x140373229
xor r10d, edx
xor r10d, dword [r9 + 0xc]
xor edx, edx
movzx ebp, r10b
shr r10d, 8
xor r10d, dword [rcx + rbp*4]
inc edx
cmp edx, 4
jne 0x140373245
xor r10d, eax
xor r10d, dword [r9 + 0x10]
xor eax, eax
movzx edx, r10b
shr r10d, 8
xor r10d, dword [rcx + rdx*4]
inc eax
cmp eax, 4
jne 0x140373261
add r9, 0x14
cmp r8, 8
jb 0x14037334d
lea rax, [r8 - 8]
mov rcx, rax
and rcx, 0xfffffffffffffff8
lea rdx, [rcx + 8]
lea rbp, [0x1405ee8b0]
mov rbx, r9
add r8, 0xfffffffffffffff8
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 1]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 2]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 3]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 4]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 5]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 6]
xor edi, esi
xor r10d, dword [rbp + rdi*4]
movzx edi, r10b
shr r10d, 8
movzx esi, byte [rbx + 7]
add rbx, 8
xor edi, esi
xor r10d, dword [rbp + rdi*4]
cmp r8, 7
ja 0x14037329b
sub rax, rcx
add r9, rdx
mov r8, rax
test r8, r8
jne 0x140373440
mov eax, r10d
jmp 0x140373465
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], r8
lea rax, [rdx + rdx*4]
lea rax, [r9 + rax*4]
add rax, 0xffffffffffffffec
mov qword [rsp], rax
xor eax, eax
lea r13, [0x1405eecb0]
xor edx, edx
xor ebx, ebx
xor esi, esi
mov qword [rsp + 0x18], rbp
mov r8d, ebx
xor r8d, dword [r9 + 4]
mov edi, esi
xor edi, dword [r9 + 8]
mov r14d, edx
xor r14d, dword [r9 + 0xc]
mov r15d, eax
mov qword [rsp + 0x20], r9
xor r15d, dword [r9 + 0x10]
mov r12d, r10d
movzx eax, r12b
mov r10d, dword [r13 + rax*4]
movzx eax, r8b
mov ebx, dword [r13 + rax*4]
movzx eax, dil
mov esi, dword [r13 + rax*4]
movzx eax, r14b
mov edx, dword [r13 + rax*4]
movzx eax, r15b
mov eax, dword [r13 + rax*4]
mov r9d, 1
mov ecx, r9d
shl cl, 3
mov ebp, r12d
shr ebp, cl
movzx ebp, bpl
mov r11, r9
shl r11, 0xa
add r11, r13
xor r10d, dword [r11 + rbp*4]
mov ebp, r8d
shr ebp, cl
movzx ebp, bpl
xor ebx, dword [r11 + rbp*4]
mov ebp, edi
shr ebp, cl
movzx ebp, bpl
xor esi, dword [r11 + rbp*4]
mov ebp, r14d
shr ebp, cl
movzx ebp, bpl
xor edx, dword [r11 + rbp*4]
mov ebp, r15d
shr ebp, cl
movzx ecx, bpl
xor eax, dword [r11 + rcx*4]
inc r9
cmp r9, 4
jne 0x1403733e2
jmp 0x1403731bc
lea rcx, [0x1405ee8b0]
mov eax, r10d
shr eax, 8
movzx edx, byte [r9]
inc r9
movzx ebp, r10b
xor ebp, edx
xor eax, dword [rcx + rbp*4]
mov r10d, eax
dec r8
jne 0x14037344a
not eax
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, r8d
jmp 0x140373120