Function at 0x140039ef0
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 0x14003a05f
cmp qword [rcx + 0x28], 0
je 0x14003a05f
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 0x140039fc4
mov ecx, dword [r13]
mov rdx, qword [rdx]
cmp ecx, dword [rax + 0x10]
je 0x140039fc7
cmp rax, rdx
je 0x140039fc4
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x140039fb4
jmp 0x140039fc7
mov rax, r12
test rax, rax
cmove rax, r14
cmp rax, r14
je 0x14003a1dc
test byte [r13], 0x20
lea rdi, [r8 + 0x18]
mov rcx, rdi
mov rdx, r13
je 0x14003a0bb
call fcn.1400485c0
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14003a05f
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 0x14003a021
mov r9, qword [rsi]
mov rcx, rbp
cmp r14, 0x10
jb 0x14003a02e
mov rcx, qword [rbp]
mov rax, qword [rsi + 0x10]
xor r8d, r8d
mov rdx, r15
mov qword [rsp + 0x20], rax
call fcn.14004b9f0
cmp rax, 0xffffffffffffffff
je 0x14003a057
mov rax, qword [rsi + 0x28]
test rax, rax
je 0x14003a057
cmp dword [rax + 8], r12d
jne 0x14003a075
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x14003a010
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 0x14003a09e
mov rdx, qword [rsi + 0x20]
mov rcx, rax
add rdx, 0x10
call fcn.140005d70
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14003a421
mov rax, qword [rsi + 0x20]
mov rcx, qword [rax + 0x30]
mov al, 1
mov qword [rbx], rcx
jmp 0x14003a061
call fcn.1400485c0
mov rdx, r13
mov rcx, rdi
mov rbx, qword [rax + 8]
call fcn.1400485c0
cmp qword [rbp + 0x18], 0x10
mov rsi, rax
mov rdx, rbp
jb 0x14003a0e0
mov rdx, qword [rbp]
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x14003a114
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 0x14003a100
mov r9, r15
lea rdx, [rsp + 0x48]
mov r8, rbp
mov rcx, rsi
call fcn.14004f3b0
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x14003a134
mov rcx, qword [rsi + 8]
cmp rcx, rbx
je 0x14003a05f
mov r8, r13
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.14004b080
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.14004ac70
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 0x14003a1b4
mov r8, r13
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.14004b080
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.14004ac70
mov rcx, rbx
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x30]
add rdx, 0x10
call fcn.140005d70
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14003a421
mov r8, r13
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.14004b080
lea rdx, [rsp + 0x58]
jmp 0x14003a404
mov rsi, qword [r14]
cmp rsi, r14
je 0x14003a05f
nop dword [rax + rax]
mov eax, dword [rsi + 0x10]
lea rdi, [rsi + 0x10]
test dword [r13], eax
je 0x14003a314
lea r15, [r8 + 0x18]
mov rdx, rdi
mov rcx, r15
test al, 0x20
je 0x14003a28b
call fcn.1400485c0
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14003a30f
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 0x14003a241
mov r9, qword [r15]
mov rcx, rbp
cmp r12, 0x10
jb 0x14003a24e
mov rcx, qword [rbp]
mov rax, qword [r15 + 0x10]
xor r8d, r8d
mov rdx, r13
mov qword [rsp + 0x20], rax
call fcn.14004b9f0
cmp rax, 0xffffffffffffffff
je 0x14003a27b
mov rax, qword [r15 + 0x28]
test rax, rax
je 0x14003a27b
cmp dword [rax + 8], 0
jne 0x14003a325
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x14003a230
xor r12d, r12d
jmp 0x14003a30a
call fcn.1400485c0
mov rdx, rdi
mov rcx, r15
mov rbx, qword [rax + 8]
call fcn.1400485c0
cmp qword [rbp + 0x18], 0x10
mov r13, rax
mov r8, rbp
jb 0x14003a2b0
mov r8, qword [rbp]
mov rdx, qword [rbp + 0x10]
movabs r9, 0xcbf29ce484222325
mov rcx, r12
test rdx, rdx
je 0x14003a2e8
movabs rdi, 0x100000001b3
movzx eax, byte [rcx + r8]
inc rcx
xor r9, rax
imul r9, rdi
cmp rcx, rdx
jb 0x14003a2d0
lea rdi, [rsi + 0x10]
mov r8, rbp
lea rdx, [rsp + 0x68]
mov rcx, r13
call fcn.14004f3b0
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x14003a305
mov rcx, qword [r13 + 8]
cmp rcx, rbx
jne 0x14003a36e
mov r13, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov rsi, qword [rsi]
cmp rsi, r14
jne 0x14003a1f0
jmp 0x14003a05f
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 0x14003a34e
mov rdx, qword [r15 + 0x20]
mov rcx, rax
add rdx, 0x10
call fcn.140005d70
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14003a421
mov rax, qword [r15 + 0x20]
mov rcx, qword [rax + 0x30]
mov al, 1
mov qword [rbx], rcx
jmp 0x14003a061
mov r8, rdi
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.14004b080
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.14004ac70
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 0x14003a3e5
mov r8, rdi
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.14004b080
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.14004ac70
mov rcx, rbx
mov rdx, qword [rax]
mov rdx, qword [rdx + 0x30]
add rdx, 0x10
call fcn.140005d70
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14003a421
mov r8, rdi
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.14004b080
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
mov r8, rbp
add rcx, 0x18
call fcn.14004ac70
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov rcx, qword [rax + 0x30]
mov qword [rbx], rcx
mov al, 1
jmp 0x14003a061