Function at 0x1400402b0
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 [0x140106b98]
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.0x1400402fb
lea r8, [0x140000000]
cdqe
mov ecx, dword [r8 + rax*4 + 0x4089c]
add rcx, r8
jmp rcx
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x14004031c
mov edx, 1
mov rcx, rdi
call fcn.140042940
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
mov qword [rdi + 0x18], rax
movabs rax, 0x789e9d398d40976c
mov qword [rcx], rax
jmp 0x140040878
xor edx, edx
mov rcx, rdi
call fcn.1400571e0
jmp 0x14004087a
mov dl, 1
mov rcx, rdi
call fcn.1400571e0
jmp 0x14004087a
mov r11d, dword [rbx]
movabs rbp, 0xffffffffffff
mov rsi, qword [rbx + 8]
mov eax, r11d
shl rax, 5
and rsi, rbp
add rax, rsi
cmp rsi, rax
je 0x1400403ec
add rsi, 0xd
mov r15d, 0x1000
mov r14d, 0xd
test word [rsi + 1], r15w
je 0x14004039c
movsx eax, byte [rsi]
lea r8, [rsi - 0xd]
mov ecx, r14d
sub ecx, eax
jmp 0x1400403a6
mov r8, qword [rsi - 5]
mov ecx, dword [rsi - 0xd]
and r8, rbp
mov r9d, ecx
mov edx, 5
mov rcx, rdi
call fcn.1400658e0
lea rcx, [rsi + 3]
mov rdx, rdi
call fcn.1400402b0
test al, al
je 0x14004053c
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 0x140040387
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 0x140040440
movabs r9, 0x100000001b3
nop dword [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 0x140040420
lea rax, [r10 + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x14004045b
mov edx, 1
mov rcx, rdi
call fcn.140042940
mov r10, qword [rdi + 0x18]
lea rax, [r10 + 8]
mov qword [rdi + 0x18], rax
mov qword [r10], rbx
jmp 0x140040878
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 0x1400404c1
nop
mov rdx, rdi
mov rcx, rsi
call fcn.1400402b0
test al, al
je 0x14004053c
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 0x140040490
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 0x140040511
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 0x140040500
lea rax, [rdx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x14004052c
mov edx, 1
mov rcx, rdi
call fcn.140042940
mov rdx, qword [rdi + 0x18]
lea rax, [rdx + 8]
mov qword [rdi + 0x18], rax
mov qword [rdx], rbx
jmp 0x140040878
xor al, al
jmp 0x14004087a
bt dx, 0xc
jae 0x140040559
movsx eax, byte [rbx + 0xd]
mov r14d, 0xd
sub r14d, eax
jmp 0x14004056d
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.1400658e0
jmp 0x140040878
movzx eax, dx
shr ax, 9
test al, 1
je 0x140040643
movsd xmm1, qword [rbx]
xorps xmm0, xmm0
comisd xmm0, xmm1
jbe 0x1400405a8
cvttsd2si rax, xmm1
jmp 0x1400405da
movsd xmm2, qword [0x1400e0228]
xor ecx, ecx
comisd xmm1, xmm2
movaps xmm0, xmm1
jb 0x1400405d2
subsd xmm0, xmm2
comisd xmm0, xmm2
jae 0x1400405d2
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 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 0x140040600
jmp 0x14004084e
movzx eax, dl
shr al, 5
test al, 1
je 0x1400406c3
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 0x140040680
jmp 0x14004084e
movzx eax, dl
xorps xmm0, xmm0
shr al, 6
test al, 1
je 0x140040743
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 0x140040700
jmp 0x14004084e
shr dl, 7
test dl, 1
je 0x1400407c3
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 0x140040780
jmp 0x14004084e
mov rcx, qword [rbx]
mov qword [rsp + 0x20], rcx
test rcx, rcx
js 0x1400407d7
cvtsi2sd xmm0, rcx
jmp 0x1400407ec
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 0x140040810
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x14004086d
mov edx, 1
mov rcx, rdi
call fcn.140042940
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.14006b950
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret