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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rdx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r10, qword [r8 + 0x18]
mov rbp, rcx
mov r15, qword [r8 + 0x10]
mov rdi, r9
mov r14, r8
mov rcx, r8
cmp r10, 0x10
jb 0x140050c4e
mov rcx, qword [r8]
xor r8d, r8d
movabs r9, 0xcbf29ce484222325
test r15, r15
je 0x140050c84
movabs rdx, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
inc r8
xor r9, rax
imul r9, rdx
cmp r8, r15
jb 0x140050c70
mov rsi, qword [rbp + 0x30]
mov rax, qword [rbp + 0x18]
and rsi, r9
mov rbx, qword [rbp + 8]
add rsi, rsi
mov r13, qword [rax + rsi*8]
cmp rbx, r13
je 0x140050cea
mov rbx, qword [rax + rsi*8 + 8]
mov rbx, qword [rbx]
cmp rbx, r13
je 0x140050cea
nop dword [rax]
mov rbx, qword [rbx + 8]
cmp qword [rbx + 0x28], 0x10
lea rdx, [rbx + 0x10]
jb 0x140050cc3
mov rdx, qword [rbx + 0x10]
mov rcx, r14
cmp r10, 0x10
jb 0x140050ccf
mov rcx, qword [r14]
cmp r15, qword [rbx + 0x20]
jne 0x140050ce5
mov r8, r15
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x140050d3c
mov r10, qword [r14 + 0x18]
cmp rbx, r13
jne 0x140050cb0
mov rax, qword [rdi]
cmp rbx, rax
je 0x140050d1f
mov rcx, qword [rdi + 8]
mov qword [rcx], rax
mov rcx, qword [rax + 8]
mov qword [rcx], rbx
mov rcx, qword [rbx + 8]
mov qword [rcx], rdi
mov rcx, qword [rax + 8]
mov rdx, qword [rbx + 8]
mov qword [rbx + 8], rcx
mov rcx, qword [rdi + 8]
mov qword [rax + 8], rcx
mov qword [rdi + 8], rdx
mov rdx, qword [rbp + 0x18]
mov rax, qword [rdx + rsi*8]
cmp rax, qword [rbp + 8]
jne 0x140050d72
mov qword [rdx + rsi*8], rdi
mov rax, qword [rbp + 0x18]
mov qword [rax + rsi*8 + 8], rdi
jmp 0x140050da1
mov rdx, qword [rdi + 8]
lea rcx, [rbp + 8]
mov rax, qword [rdi]
mov qword [rdx], rax
mov rdx, qword [rdi]
mov rax, qword [rdi + 8]
mov qword [rdx + 8], rax
mov rdx, rdi
dec qword [rbp + 0x10]
call fcn.140055510
mov rax, qword [rsp + 0x68]
mov qword [rax], rbx
mov byte [rax + 8], 0
jmp 0x140050e4c
cmp rax, rbx
jne 0x140050d7d
mov qword [rdx + rsi*8], rdi
jmp 0x140050da1
mov rax, qword [rdx + rsi*8 + 8]
mov rcx, qword [rax]
mov qword [rdx + rsi*8 + 8], rcx
cmp rcx, rdi
je 0x140050da1
mov rdx, qword [rbp + 0x18]
mov rax, qword [rdx + rsi*8 + 8]
mov rcx, qword [rax + 8]
mov qword [rdx + rsi*8 + 8], rcx
mov rax, qword [rbp + 0x10]
xorps xmm0, xmm0
mov rdx, qword [rbp + 0x38]
movss xmm2, dword [0x14007a43c]
cvtsi2ss xmm0, rax
test rax, rax
jns 0x140050dc2
addss xmm0, xmm2
xorps xmm1, xmm1
cvtsi2ss xmm1, rdx
test rdx, rdx
jns 0x140050dd3
addss xmm1, xmm2
divss xmm0, xmm1
comiss xmm0, dword [rbp]
jbe 0x140050e40
cmp rdx, 0x200
jae 0x140050df0
lea rdx, [rdx*8]
jmp 0x140050e02
movabs rax, 0xfffffffffffffff
cmp rdx, rax
jae 0x140050e02
add rdx, rdx
mov rcx, rbp
call fcn.1400489e0
mov rsi, qword [rbp + 8]
cmp qword [rsi], rsi
je 0x140050e40
mov rsi, qword [rsi + 8]
nop word [rax + rax]
mov rbx, qword [rbp + 8]
lea rdx, [rsp + 0x20]
mov rcx, rbp
mov rbx, qword [rbx]
mov r9, rbx
lea r8, [rbx + 0x10]
call fcn.140050c10
cmp rbx, rsi
jne 0x140050e20
mov rax, qword [rsp + 0x68]
mov qword [rax], rdi
mov byte [rax + 8], 1
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret