Function at 0x1400642e0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x1402a7d08]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rdi, rdx
mov rbx, rcx
movzx edx, word [rcx + 0xe]
mov eax, edx
and eax, 7
cmp eax, 5
ja case.default.0x14006432b
lea r8, [0x140000000]
cdqe
mov ecx, dword [r8 + rax*4 + 0x648c8]
add rcx, r8
jmp rcx
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x140064347
mov rcx, rdi
call fcn.140070b70
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
mov qword [rdi + 0x18], rax
movabs rax, 0x789e9d398d40976c
mov qword [rcx], rax
jmp 0x1400648a3
xor edx, edx
mov rcx, rdi
call fcn.1400655c0
jmp 0x1400648a5
mov dl, 1
mov rcx, rdi
call fcn.1400655c0
jmp 0x1400648a5
mov r11d, dword [rbx]
movabs rbp, 0xffffffffffff
mov rax, qword [rbx + 8]
mov ecx, r11d
shl rcx, 5
and rax, rbp
add rcx, rax
cmp rax, rcx
je 0x140064417
lea rsi, [rax + 0xd]
mov r15d, 0x1000
mov r14d, 0xd
test word [rsi + 1], r15w
je 0x1400643c7
movsx eax, byte [rsi]
lea r8, [rsi - 0xd]
mov ecx, r14d
sub ecx, eax
jmp 0x1400643d1
mov r8, qword [rsi - 5]
mov ecx, dword [rsi - 0xd]
and r8, rbp
mov r9d, ecx
mov edx, 5
mov rcx, rdi
call fcn.140067340
lea rcx, [rsi + 3]
mov rdx, rdi
call fcn.1400642e0
test al, al
je 0x140064567
mov edx, dword [rbx]
add rsi, 0x20
mov rax, qword [rbx + 8]
mov ecx, edx
and rax, rbp
shl rcx, 5
add rcx, rax
lea rax, [rsi - 0xd]
cmp rax, rcx
jne 0x1400643b2
mov r11d, edx
lea ecx, [r11 + r11]
xor r8d, r8d
neg rcx
movabs rbx, 0x30000000519
shl rcx, 3
add qword [rdi + 0x18], rcx
mov r10, qword [rdi + 0x18]
test r11d, r11d
je 0x140064470
movabs r9, 0x100000001b3
nop word [rax + rax]
lea ecx, [r8 + r8]
inc r8d
mov eax, ecx
lea edx, [rcx + 1]
mov rcx, qword [r10 + rdx*8]
xor rcx, qword [r10 + rax*8]
imul rcx, r9
xor rbx, rcx
cmp r8d, r11d
jb 0x140064450
lea rax, [r10 + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x140064486
mov rcx, rdi
call fcn.140070b70
mov r10, qword [rdi + 0x18]
lea rax, [r10 + 8]
mov qword [rdi + 0x18], rax
mov qword [r10], rbx
jmp 0x1400648a3
mov r8d, dword [rbx]
movabs rbp, 0xffffffffffff
mov rsi, qword [rbx + 8]
mov eax, r8d
shl rax, 4
and rsi, rbp
add rax, rsi
cmp rsi, rax
je 0x1400644f1
nop dword [rax]
mov rdx, rdi
mov rcx, rsi
call fcn.1400642e0
test al, al
je 0x140064567
mov edx, dword [rbx]
add rsi, 0x10
mov rax, qword [rbx + 8]
mov ecx, edx
shl rcx, 4
and rax, rbp
add rcx, rax
cmp rsi, rcx
jne 0x1400644c0
mov r8d, edx
mov eax, r8d
movabs rbx, 0x400000006cc
neg rax
mov ecx, r8d
shl rax, 3
add qword [rdi + 0x18], rax
mov rdx, qword [rdi + 0x18]
test r8d, r8d
je 0x140064541
mov rax, rdx
movabs r9, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
xor rbx, qword [rax]
lea rax, [rax + 8]
imul rbx, r9
sub rcx, 1
jne 0x140064530
lea rax, [rdx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x140064557
mov rcx, rdi
call fcn.140070b70
mov rdx, qword [rdi + 0x18]
lea rax, [rdx + 8]
mov qword [rdi + 0x18], rax
mov qword [rdx], rbx
jmp 0x1400648a3
xor al, al
jmp 0x1400648a5
bt dx, 0xc
jae 0x140064584
movsx eax, byte [rbx + 0xd]
mov r14d, 0xd
sub r14d, eax
jmp 0x140064598
mov r14d, dword [rbx]
movabs rbp, 0xffffffffffff
mov rbx, qword [rbx + 8]
and rbx, rbp
mov r9d, r14d
mov r8, rbx
mov edx, 5
mov rcx, rdi
call fcn.140067340
jmp 0x1400648a3
movzx eax, dx
shr ax, 9
test al, 1
je 0x140064673
movsd xmm1, qword [rbx]
xorps xmm0, xmm0
comisd xmm0, xmm1
jbe 0x1400645d3
cvttsd2si rax, xmm1
jmp 0x140064605
movsd xmm2, qword [0x1402643f0]
xor ecx, ecx
comisd xmm1, xmm2
movaps xmm0, xmm1
jb 0x1400645fd
subsd xmm0, xmm2
comisd xmm0, xmm2
jae 0x1400645fd
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm0
add rax, rcx
movsd qword [rsp + 0x28], xmm1
movabs rbx, 0x789e9b398d409406
mov qword [rsp + 0x20], rax
xor r8d, r8d
movabs r9, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rsp + r8 + 0x20]
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x21]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x22]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x23]
imul rbx, r9
add r8, 4
xor rbx, rax
imul rbx, r9
cmp r8, 0x10
jb 0x140064630
jmp 0x14006487e
movzx eax, dl
shr al, 5
test al, 1
je 0x1400646f3
movsxd rcx, dword [rbx]
xor r8d, r8d
mov qword [rsp + 0x20], rcx
movabs rbx, 0x789e9b398d409406
movabs r9, 0x100000001b3
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movsd qword [rsp + 0x28], xmm0
nop word [rax + rax]
movzx eax, byte [rsp + r8 + 0x20]
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x21]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x22]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x23]
imul rbx, r9
add r8, 4
xor rbx, rax
imul rbx, r9
cmp r8, 0x10
jb 0x1400646b0
jmp 0x14006487e
movzx eax, dl
xorps xmm0, xmm0
shr al, 6
test al, 1
je 0x140064773
mov ecx, dword [rbx]
xor r8d, r8d
mov qword [rsp + 0x20], rcx
movabs rbx, 0x789e9b398d409406
movabs r9, 0x100000001b3
cvtsi2sd xmm0, rcx
movsd qword [rsp + 0x28], xmm0
nop dword [rax]
movzx eax, byte [rsp + r8 + 0x20]
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x21]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x22]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x23]
imul rbx, r9
add r8, 4
xor rbx, rax
imul rbx, r9
cmp r8, 0x10
jb 0x140064730
jmp 0x14006487e
shr dl, 7
test dl, 1
je 0x1400647f3
mov rax, qword [rbx]
xor r8d, r8d
mov qword [rsp + 0x20], rax
movabs rbx, 0x789e9b398d409406
movabs r9, 0x100000001b3
cvtsi2sd xmm0, rax
movsd qword [rsp + 0x28], xmm0
nop word [rax + rax]
movzx eax, byte [rsp + r8 + 0x20]
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x21]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x22]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x23]
imul rbx, r9
add r8, 4
xor rbx, rax
imul rbx, r9
cmp r8, 0x10
jb 0x1400647b0
jmp 0x14006487e
mov rcx, qword [rbx]
mov qword [rsp + 0x20], rcx
test rcx, rcx
js 0x140064807
cvtsi2sd xmm0, rcx
jmp 0x14006481c
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
movsd qword [rsp + 0x28], xmm0
movabs rbx, 0x789e9b398d409406
xor r8d, r8d
movabs r9, 0x100000001b3
nop dword [rax]
movzx eax, byte [rsp + r8 + 0x20]
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x21]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x22]
imul rbx, r9
xor rbx, rax
movzx eax, byte [rsp + r8 + 0x23]
imul rbx, r9
add r8, 4
xor rbx, rax
imul rbx, r9
cmp r8, 0x10
jb 0x140064840
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x140064898
mov rcx, rdi
call fcn.140070b70
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
mov qword [rdi + 0x18], rax
mov qword [rcx], rbx
mov al, 1
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140140100
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret