Function at 0x14003ba00
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 rax, qword [rsp + 0xf0]
mov rbp, r8
mov qword [rsp + 0x38], rax
mov r13, rdx
mov rax, qword [rsp + 0xf8]
mov r8, rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x58], rcx
test r9, r9
je 0x14003bb6f
cmp qword [rcx + 0x28], 0
je 0x14003bb6f
movzx edx, byte [rdx]
movabs r15, 0xcbf29ce484222325
mov r14, qword [rcx + 0x20]
xor rdx, r15
movzx eax, byte [r13 + 1]
movabs rcx, 0x100000001b3
imul rdx, rcx
xor r12d, r12d
xor rdx, rax
movzx eax, byte [r13 + 2]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r13 + 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 0x14003bad4
mov ecx, dword [r13]
mov rdx, qword [rdx]
cmp ecx, dword [rax + 0x10]
je 0x14003bad7
cmp rax, rdx
je 0x14003bad4
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x14003bac4
jmp 0x14003bad7
mov rax, r12
test rax, rax
cmove rax, r14
cmp rax, r14
je 0x14003bcec
test byte [r13], 0x20
lea rdi, [r8 + 0x18]
mov rcx, rdi
mov rdx, r13
je 0x14003bbcb
call fcn.14004a130
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14003bb6f
mov r14, qword [rbp + 0x18]
mov r15, qword [rbp + 0x10]
nop word [rax + rax]
cmp qword [rbx + 0x28], 0x10
lea rsi, [rbx + 0x10]
mov r9, rsi
jb 0x14003bb31
mov r9, qword [rsi]
mov rcx, rbp
cmp r14, 0x10
jb 0x14003bb3e
mov rcx, qword [rbp]
mov rax, qword [rsi + 0x10]
xor r8d, r8d
mov rdx, r15
mov qword [rsp + 0x20], rax
call fcn.14004d560
cmp rax, 0xffffffffffffffff
je 0x14003bb67
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x14003bb67
cmp dword [rax + 8], r12d
jne 0x14003bb85
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x14003bb20
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 [rsi + 0x20]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14003bbae
mov rdx, qword [rsi + 0x20]
mov rcx, rax
add rdx, 0x10
call fcn.140006ea0
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14003bf31
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax + 0x30]
mov al, 1
mov qword [rbx], rcx
jmp 0x14003bb71
call fcn.14004a130
mov rdx, r13
mov rcx, rdi
mov rbx, qword [rax + 8]
call fcn.14004a130
cmp qword [rbp + 0x18], 0x10
mov rsi, rax
mov rdx, rbp
jb 0x14003bbf0
mov rdx, qword [rbp]
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x14003bc24
movabs r8, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r12 + rdx]
inc r12
xor r15, rax
imul r15, r8
cmp r12, rcx
jb 0x14003bc10
mov r9, r15
lea rdx, [rsp + 0x48]
mov r8, rbp
mov rcx, rsi
call fcn.140050ca0
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x14003bc44
mov rcx, qword [rsi + 8]
cmp rcx, rbx
je 0x14003bb6f
mov r8, r13
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.14004cbf0
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.14004c7e0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
test rbx, rbx
je 0x14003bcc4
mov r8, r13
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.14004cbf0
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.14004c7e0
mov rcx, rbx
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x30]
add rdx, 0x10
call fcn.140006ea0
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14003bf31
mov r8, r13
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.14004cbf0
lea rdx, [rsp + 0x58]
jmp 0x14003bf14
mov rsi, qword [r14]
cmp rsi, r14
je 0x14003bb6f
nop dword [rax + rax]
mov eax, dword [rsi + 0x10]
lea rdi, [rsi + 0x10]
test dword [r13], eax
je 0x14003be24
lea r15, [r8 + 0x18]
mov rdx, rdi
mov rcx, r15
test al, 0x20
je 0x14003bd9b
call fcn.14004a130
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14003be1f
mov r12, qword [rbp + 0x18]
mov r13, qword [rbp + 0x10]
nop dword [rax]
cmp qword [rbx + 0x28], 0x10
lea r15, [rbx + 0x10]
mov r9, r15
jb 0x14003bd51
mov r9, qword [r15]
mov rcx, rbp
cmp r12, 0x10
jb 0x14003bd5e
mov rcx, qword [rbp]
mov rax, qword [r15 + 0x10]
xor r8d, r8d
mov rdx, r13
mov qword [rsp + 0x20], rax
call fcn.14004d560
cmp rax, 0xffffffffffffffff
je 0x14003bd8b
mov rax, qword [r15 + 0x28]
test rax, rax
je 0x14003bd8b
cmp dword [rax + 8], 0
jne 0x14003be35
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x14003bd40
xor r12d, r12d
jmp 0x14003be1a
call fcn.14004a130
mov rdx, rdi
mov rcx, r15
mov rbx, qword [rax + 8]
call fcn.14004a130
cmp qword [rbp + 0x18], 0x10
mov r13, rax
mov r8, rbp
jb 0x14003bdc0
mov r8, qword [rbp]
mov rdx, qword [rbp + 0x10]
movabs r9, 0xcbf29ce484222325
mov rcx, r12
test rdx, rdx
je 0x14003bdf8
movabs rdi, 0x100000001b3
movzx eax, byte [rcx + r8]
inc rcx
xor r9, rax
imul r9, rdi
cmp rcx, rdx
jb 0x14003bde0
lea rdi, [rsi + 0x10]
mov r8, rbp
lea rdx, [rsp + 0x68]
mov rcx, r13
call fcn.140050ca0
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x14003be15
mov rcx, qword [r13 + 8]
cmp rcx, rbx
jne 0x14003be7e
mov r13, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov rsi, qword [rsi]
cmp rsi, r14
jne 0x14003bd00
jmp 0x14003bb6f
mov rax, qword [r15 + 0x20]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14003be5e
mov rdx, qword [r15 + 0x20]
mov rcx, rax
add rdx, 0x10
call fcn.140006ea0
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14003bf31
mov rax, qword [r15 + 0x20]
mov rcx, qword [rax + 0x30]
mov al, 1
mov qword [rbx], rcx
jmp 0x14003bb71
mov r8, rdi
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.14004cbf0
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.14004c7e0
mov rbx, qword [rsp + 0x38]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
test rbx, rbx
je 0x14003bef5
mov r8, rdi
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.14004cbf0
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.14004c7e0
mov rcx, rbx
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x30]
add rdx, 0x10
call fcn.140006ea0
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14003bf31
mov r8, rdi
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.14004cbf0
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
mov r8, rbp
add rcx, 0x18
call fcn.14004c7e0
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov rcx, qword [rax + 0x30]
mov qword [rbx], rcx
mov al, 1
jmp 0x14003bb71