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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov r14, r9
mov r15, r8
mov rbx, rdx
mov rbp, rcx
mov rax, qword [r9]
cmp byte [rax + 0xe8], 0
je 0x14014d8bf
cmp dword [rdx], 0
jne 0x14014d8bf
call fcn.14004cfa0
mov dword [rsp + 0x30], 0x3e3
mov qword [rsp + 0x38], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbx], xmm0
mov ecx, dword [0x1403570f0]
mov rax, qword gs:[0x58]
mov rdx, qword [rax + rcx*8]
mov r8d, 0x38
mov ecx, dword [r8 + rdx]
mov eax, 0x28
xor edi, edi
test cl, 1
jne 0x14014d8fe
or ecx, 1
mov dword [r8 + rdx], ecx
mov dword [rax + rdx], edi
lea rcx, [0x1403275b8]
mov qword [rax + rdx + 8], rcx
movups xmm0, xmmword [rbx]
movups xmmword [rax + rdx], xmm0
mov rcx, qword [r14]
mov esi, dword [rbx]
cmp qword [rcx + 0xe0], 0xffffffffffffffff
jne 0x14014d930
test esi, esi
jne 0x14014d954
mov rcx, qword [rcx + 0xd0]
test rcx, rcx
je 0x14014dbd6
mov rax, qword [rcx]
call qword [rax + select]
jmp 0x14014d954
test esi, esi
jne 0x14014d94a
mov rcx, qword [rcx + 0xd0]
test rcx, rcx
je 0x14014dbd6
mov rax, qword [rcx]
call qword [rax + select]
mov rax, qword [r14]
dec qword [rax + 0xe0]
mov rdx, qword [r14]
cmp byte [rdx + 0xe8], dil
je 0x14014d998
lea rax, [rbp - 0x148]
mov ecx, 0x48
test rbp, rbp
cmove rax, rcx
mov rcx, qword [rax]
add rcx, 0x18
lea rax, [rdx + 0x20]
mov qword [rsp + 0x98], rax
lea rdx, [rsp + 0x98]
call fcn.14011b110
jmp 0x14014db5f
call fcn.14004cfa0
mov rcx, qword [rbx + 8]
mov rax, qword [rax + 8]
cmp qword [rcx + 8], rax
jne 0x14014d9b3
cmp esi, 0x3e3
je 0x14014da16
mov rax, qword [r14]
cmp qword [rax + 0xe0], rdi
je 0x14014da16
mov r9, qword [rax + 0xd8]
mov qword [rsp + 0x20], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x28], rax
mov qword [r14], rdi
mov qword [r14 + 8], rdi
mov rax, qword [r15]
mov qword [rsp + 0x30], rax
mov rax, qword [r15 + 8]
mov qword [rsp + 0x38], rax
mov qword [r15], rdi
mov qword [r15 + 8], rdi
mov eax, 0x190
test rbp, rbp
cmove rbp, rax
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, rbp
call fcn.1401446f0
jmp 0x14014db5f
lea rax, [rbp - 0x148]
mov ecx, 0x48
test rbp, rbp
cmove rax, rcx
mov rcx, qword [rax]
add rcx, 0x18
mov rax, qword [r14]
add rax, 0x20
mov qword [rsp + 0x98], rax
lea rdx, [rsp + 0x98]
call fcn.14011b110
mov r8, qword [r14]
mov r10, qword [r8 + 0x10]
mov rdx, r8
cmp qword [r8 + 0x18], 0xf
jbe 0x14014da60
mov rdx, qword [r8]
movabs rsi, 0xcbf29ce484222325
mov r9, rsi
mov rcx, rdi
movabs r12, 0x100000001b3
test r10, r10
je 0x14014da93
nop
movzx eax, byte [rdx + rcx]
xor r9, rax
imul r9, r12
inc rcx
cmp rcx, r10
jb 0x14014da80
lea rdx, [rsp + 0x30]
mov rcx, rbp
call fcn.140005c30
mov rbx, qword [rax + 8]
test rbx, rbx
je 0x14014db5f
cmp rbx, qword [rbp + 8]
je 0x14014db5f
mov rax, qword [rbx + 0x30]
mov byte [rax + 0xe8], 1
mov r8, qword [rbx + 0x20]
lea rcx, [rbx + 0x10]
cmp qword [rbx + 0x28], 0xf
jbe 0x14014dad5
mov rcx, qword [rbx + 0x10]
mov rdx, rbx
test r8, r8
je 0x14014daf3
nop dword [rax]
movzx eax, byte [rcx + rdi]
xor rsi, rax
imul rsi, r12
inc rdi
cmp rdi, r8
jb 0x14014dae0
mov r8, qword [rbp + 0x30]
and r8, rsi
shl r8, 4
add r8, qword [rbp + 0x18]
mov rax, qword [r8]
cmp qword [r8 + 8], rdx
jne 0x14014db27
cmp rax, rdx
jne 0x14014db1d
mov rax, qword [rbp + 8]
mov qword [r8], rax
mov qword [r8 + 8], rax
jmp 0x14014db32
mov rax, qword [rdx + 8]
mov qword [r8 + 8], rax
jmp 0x14014db32
cmp rax, rdx
jne 0x14014db32
mov rax, qword [rdx]
mov qword [r8], rax
mov rdx, qword [rbx]
dec qword [rbp + 0x10]
mov rax, qword [rbx + 8]
mov qword [rax], rdx
mov rax, qword [rbx + 8]
mov qword [rdx + 8], rax
lea rcx, [rbx + 0x10]
call fcn.14001b470
mov edx, 0x40
mov rcx, rbx
call fcn.1401ae118
nop
mov rdi, qword [r15 + 8]
mov ebx, 0xffffffff
test rdi, rdi
je 0x14014db97
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14014db97
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x14014db97
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdi, qword [r14 + 8]
test rdi, rdi
je 0x14014dbc7
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14014dbc7
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x14014dbc7
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.1401abb54
nop
int3