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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov r13, qword [rsp + 0xf0]
mov rbp, r8
mov rax, qword [rsp + 0xf8]
mov r15, rdx
mov qword [rsp + 0x40], r13
mov r8, rcx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rcx
test r9, r9
je 0x14002352d
cmp qword [rcx + 0x28], 0
je 0x14002352d
movzx edx, byte [rdx]
movabs rcx, 0x100000001b3
movzx eax, byte [r15 + 1]
movabs r12, 0xcbf29ce484222325
mov r14, qword [r8 + 0x20]
xor rdx, r12
imul rdx, rcx
xor edi, edi
xor rdx, rax
movzx eax, byte [r15 + 2]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r15 + 3]
imul rdx, rcx
xor rdx, rax
imul rdx, rcx
and rdx, qword [r8 + 0x48]
shl rdx, 4
add rdx, qword [r8 + 0x30]
mov rax, qword [rdx + 8]
cmp rax, r14
je 0x140023492
mov ecx, dword [r15]
mov rdx, qword [rdx]
cmp ecx, dword [rax + 0x10]
je 0x140023495
cmp rax, rdx
je 0x140023492
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x140023482
jmp 0x140023495
mov rax, rdi
test rax, rax
cmove rax, r14
cmp rax, r14
je 0x1400236b5
test byte [r15], 0x20
lea rbx, [r8 + 0x18]
mov rcx, rbx
mov rdx, r15
je 0x140023597
call fcn.140032180
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14002352d
mov r14, qword [rbp + 0x18]
mov r15, qword [rbp + 0x10]
nop dword [rax]
nop word [rax + rax]
cmp qword [rbx + 0x28], 0x10
lea r9, [rbx + 0x10]
mov rax, qword [rbx + 0x20]
jb 0x1400234f3
mov r9, qword [rbx + 0x10]
mov rcx, rbp
cmp r14, 0x10
jb 0x140023500
mov rcx, qword [rbp]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r15
call fcn.140036820
cmp rax, 0xffffffffffffffff
je 0x140023525
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x140023525
cmp dword [rax + 8], 0
jne 0x140023543
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1400234e0
xor al, al
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rbx + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
test r13, r13
je 0x14002357a
mov rdx, qword [rbx + 0x30]
add rdx, 0x10
cmp r13, rdx
je 0x14002357a
cmp qword [rdx + 0x18], 0x10
mov r8, qword [rdx + 0x10]
jb 0x140023572
mov rdx, qword [rdx]
mov rcx, r13
call fcn.140033cb0
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x14002390c
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x30]
mov al, 1
mov qword [rdi], rcx
jmp 0x14002352f
call fcn.140032180
cmp qword [rbp + 0x18], 0x10
mov rsi, rax
mov rdx, qword [rbp + 0x10]
mov rcx, rbp
jb 0x1400235b1
mov rcx, qword [rbp]
test rdx, rdx
je 0x1400235d3
movabs r8, 0x100000001b3
movzx eax, byte [rdi + rcx]
inc rdi
xor r12, rax
imul r12, r8
cmp rdi, rdx
jb 0x1400235c0
mov r9, r12
lea rdx, [rsp + 0x40]
mov r8, rbp
mov rcx, rsi
call fcn.14003a380
mov rdi, qword [rax + 8]
test rdi, rdi
jne 0x1400235f3
mov rdi, qword [rsi + 8]
mov rdx, r15
mov rcx, rbx
call fcn.140032180
cmp rdi, qword [rax + 8]
je 0x14002352d
mov r8, r15
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.140035ca0
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.1400356f0
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
test r13, r13
je 0x14002368d
mov r8, r15
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.140035ca0
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.1400356f0
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x30]
add rdx, 0x10
cmp r13, rdx
je 0x14002368d
cmp qword [rdx + 0x18], 0x10
mov r8, qword [rdx + 0x10]
jb 0x140023685
mov rdx, qword [rdx]
mov rcx, r13
call fcn.140033cb0
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x14002390c
mov r8, r15
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.140035ca0
lea rdx, [rsp + 0x58]
jmp 0x1400238ef
mov rsi, qword [r14]
cmp rsi, r14
je 0x14002352d
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rsi + 0x10]
lea rbx, [rsi + 0x10]
test dword [r15], eax
je 0x1400237f1
lea r15, [r8 + 0x18]
mov rdx, rbx
mov rcx, r15
test al, 0x20
je 0x140023770
call fcn.140032180
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x1400237e5
mov r12, qword [rbp + 0x18]
mov r13, qword [rbp + 0x10]
nop
cmp qword [rbx + 0x28], 0x10
lea r9, [rbx + 0x10]
mov rax, qword [rbx + 0x20]
jb 0x140023723
mov r9, qword [rbx + 0x10]
mov rcx, rbp
cmp r12, 0x10
jb 0x140023730
mov rcx, qword [rbp]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r13
call fcn.140036820
cmp rax, 0xffffffffffffffff
je 0x140023759
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x140023759
cmp dword [rax + 8], 0
jne 0x140023802
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x140023710
movabs r12, 0xcbf29ce484222325
jmp 0x1400237e5
call fcn.140032180
cmp qword [rbp + 0x18], 0x10
mov r13, rax
mov r8, qword [rbp + 0x10]
mov rdx, rbp
jb 0x14002378a
mov rdx, qword [rbp]
mov r9, r12
mov rcx, rdi
test r8, r8
je 0x1400237b7
movabs rbx, 0x100000001b3
nop
movzx eax, byte [rcx + rdx]
inc rcx
xor r9, rax
imul r9, rbx
cmp rcx, r8
jb 0x1400237a0
lea rbx, [rsi + 0x10]
mov r8, rbp
lea rdx, [rsp + 0x68]
mov rcx, r13
call fcn.14003a380
mov rdi, qword [rax + 8]
test rdi, rdi
jne 0x1400237d4
mov rdi, qword [r13 + 8]
mov rdx, rbx
mov rcx, r15
call fcn.140032180
cmp rdi, qword [rax + 8]
jne 0x140023846
mov r15, qword [rsp + 0x50]
xor edi, edi
mov r8, qword [rsp + 0x58]
mov rsi, qword [rsi]
cmp rsi, r14
jne 0x1400236d0
jmp 0x14002352d
mov rax, qword [rbx + 0x30]
mov rdi, qword [rsp + 0x40]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
test rdi, rdi
je 0x14002357a
mov rdx, qword [rbx + 0x30]
add rdx, 0x10
cmp rdi, rdx
je 0x14002357a
cmp qword [rdx + 0x18], 0x10
mov r8, qword [rdx + 0x10]
jb 0x14002383e
mov rdx, qword [rdx]
mov rcx, rdi
jmp 0x140023575
mov r8, rbx
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.140035ca0
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.1400356f0
mov rdi, qword [rsp + 0x40]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
test rdi, rdi
je 0x1400238d0
mov r8, rbx
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.140035ca0
mov r8, rbp
lea rdx, [rsp + 0x40]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.1400356f0
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x30]
add rdx, 0x10
cmp rdi, rdx
je 0x1400238d0
cmp qword [rdx + 0x18], 0x10
mov r8, qword [rdx + 0x10]
jb 0x1400238c8
mov rdx, qword [rdx]
mov rcx, rdi
call fcn.140033cb0
mov rdi, qword [rsp + 0x38]
test rdi, rdi
je 0x14002390c
mov r8, rbx
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.140035ca0
lea rdx, [rsp + 0x40]
mov rcx, qword [rax]
mov r8, rbp
add rcx, 0x18
call fcn.1400356f0
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov rcx, qword [rax + 0x30]
mov qword [rdi], rcx
mov al, 1
jmp 0x14002352f