Function at 0x140065140
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 [0x1402d7d18]
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.0x14006518b
lea r8, [0x140000000]
cdqe
mov ecx, dword [r8 + rax*4 + 0x65728]
add rcx, r8
jmp rcx
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x1400651a7
mov rcx, rdi
call fcn.140071f90
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
mov qword [rdi + 0x18], rax
movabs rax, 0x789e9d398d40976c
mov qword [rcx], rax
jmp 0x140065703
xor edx, edx
mov rcx, rdi
call fcn.140066420
jmp 0x140065705
mov dl, 1
mov rcx, rdi
call fcn.140066420
jmp 0x140065705
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 0x140065277
lea rsi, [rax + 0xd]
mov r15d, 0x1000
mov r14d, 0xd
test word [rsi + 1], r15w
je 0x140065227
movsx eax, byte [rsi]
lea r8, [rsi - 0xd]
mov ecx, r14d
sub ecx, eax
jmp 0x140065231
mov r8, qword [rsi - 5]
mov ecx, dword [rsi - 0xd]
and r8, rbp
mov r9d, ecx
mov edx, 5
mov rcx, rdi
call fcn.140068150
lea rcx, [rsi + 3]
mov rdx, rdi
call fcn.140065140
test al, al
je 0x1400653c7
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 0x140065212
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 0x1400652d0
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 0x1400652b0
lea rax, [r10 + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x1400652e6
mov rcx, rdi
call fcn.140071f90
mov r10, qword [rdi + 0x18]
lea rax, [r10 + 8]
mov qword [rdi + 0x18], rax
mov qword [r10], rbx
jmp 0x140065703
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 0x140065351
nop dword [rax]
mov rdx, rdi
mov rcx, rsi
call fcn.140065140
test al, al
je 0x1400653c7
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 0x140065320
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 0x1400653a1
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 0x140065390
lea rax, [rdx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x1400653b7
mov rcx, rdi
call fcn.140071f90
mov rdx, qword [rdi + 0x18]
lea rax, [rdx + 8]
mov qword [rdi + 0x18], rax
mov qword [rdx], rbx
jmp 0x140065703
xor al, al
jmp 0x140065705
bt dx, 0xc
jae 0x1400653e4
movsx eax, byte [rbx + 0xd]
mov r14d, 0xd
sub r14d, eax
jmp 0x1400653f8
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.140068150
jmp 0x140065703
movzx eax, dx
shr ax, 9
test al, 1
je 0x1400654d3
movsd xmm1, qword [rbx]
xorps xmm0, xmm0
comisd xmm0, xmm1
jbe 0x140065433
cvttsd2si rax, xmm1
jmp 0x140065465
movsd xmm2, qword [0x140293a70]
xor ecx, ecx
comisd xmm1, xmm2
movaps xmm0, xmm1
jb 0x14006545d
subsd xmm0, xmm2
comisd xmm0, xmm2
jae 0x14006545d
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 0x140065490
jmp 0x1400656de
movzx eax, dl
shr al, 5
test al, 1
je 0x140065553
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 0x140065510
jmp 0x1400656de
movzx eax, dl
xorps xmm0, xmm0
shr al, 6
test al, 1
je 0x1400655d3
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 0x140065590
jmp 0x1400656de
shr dl, 7
test dl, 1
je 0x140065653
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 0x140065610
jmp 0x1400656de
mov rcx, qword [rbx]
mov qword [rsp + 0x20], rcx
test rcx, rcx
js 0x140065667
cvtsi2sd xmm0, rcx
jmp 0x14006567c
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 0x1400656a0
mov rcx, qword [rdi + 0x18]
lea rax, [rcx + 8]
cmp rax, qword [rdi + 0x20]
jbe 0x1400656f8
mov rcx, rdi
call fcn.140071f90
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.140154660
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret