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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r12, r8
mov r14, rdx
mov r15, rcx
movabs rdi, 0xcbf29ce484222325
mov rdx, rdi
xor ecx, ecx
movabs r8, 0x100000001b3
movzx eax, byte [r12 + rcx]
xor rdx, rax
imul rdx, r8
inc rcx
cmp rcx, 8
jb 0x140021b86
xor ecx, ecx
movzx eax, byte [r12 + rcx + 8]
xor rdi, rax
imul rdi, r8
inc rcx
cmp rcx, 8
jb 0x140021b9d
xor rdi, rdx
mov rax, rdi
and rax, qword [r15 + 0x30]
add rax, rax
mov rcx, qword [r15 + 0x18]
mov rbx, qword [rcx + rax*8 + 8]
lea r13, [r15 + 8]
mov rbp, qword [r13]
cmp rbx, rbp
jne 0x140021bf7
mov rbx, rbp
movabs rax, 0x666666666666666
cmp qword [r15 + 0x10], rax
jne 0x140021c3d
lea rcx, str.unordered_map_set_too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov rdx, qword [rcx + rax*8]
mov rcx, qword [r12]
cmp rcx, qword [rbx + 0x10]
jne 0x140021c10
mov rax, qword [rbx + 0x18]
cmp qword [r12 + 8], rax
je 0x140021c1b
cmp rbx, rdx
je 0x140021c26
mov rbx, qword [rbx + 8]
jmp 0x140021bff
mov rbp, qword [rbx]
mov rax, rbx
mov rbx, rbp
jmp 0x140021c2b
mov rbp, rbx
xor eax, eax
test rax, rax
je 0x140021bd9
mov qword [r14], rax
mov byte [r14 + 8], 0
jmp 0x140021d95
mov qword [rsp + 0x20], r13
and qword [rsp + 0x28], 0
mov ecx, 0x28
call fcn.1400652f8
mov rsi, rax
mov qword [rsp + 0x28], rax
movups xmm0, xmmword [r12]
movdqu xmmword [rax + 0x10], xmm0
xor r12d, r12d
mov dword [rax + 0x20], r12d
mov rcx, qword [r15 + 0x10]
add rcx, 1
xorps xmm0, xmm0
js 0x140021c7f
cvtsi2ss xmm0, rcx
jmp 0x140021c94
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, qword [r15 + 0x38]
xorps xmm1, xmm1
test rcx, rcx
js 0x140021ca7
cvtsi2ss xmm1, rcx
jmp 0x140021cbc
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [r15]
seta al
test al, al
je 0x140021d45
mov rcx, r15
call fcn.14002202c
mov rax, rdi
and rax, qword [r15 + 0x30]
add rax, rax
mov rdx, qword [r15 + 0x18]
mov rcx, qword [rdx + rax*8 + 8]
mov rbx, qword [r13]
cmp rcx, rbx
jne 0x140021cf6
mov qword [rsp + 0x20], rbx
jmp 0x140021d30
mov r8, qword [rdx + rax*8]
mov rdx, qword [rsi + 0x10]
mov rbx, rcx
cmp rdx, qword [rcx + 0x10]
jne 0x140021d11
mov rax, qword [rcx + 0x18]
cmp qword [rsi + 0x18], rax
je 0x140021d1c
cmp rcx, r8
je 0x140021d2b
mov rcx, qword [rcx + 8]
jmp 0x140021cfe
mov rbx, qword [rcx]
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rcx
jmp 0x140021d35
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], r12
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
mov rbp, qword [rsp + 0x20]
mov rcx, qword [rbx + 8]
inc qword [r15 + 0x10]
mov qword [rsi], rbp
mov qword [rsi + 8], rcx
mov qword [rcx], rsi
mov qword [rbx + 8], rsi
mov rax, qword [r15 + 0x18]
and rdi, qword [r15 + 0x30]
add rdi, rdi
mov rdx, qword [rax + rdi*8]
cmp rdx, qword [r13]
jne 0x140021d76
mov qword [rax + rdi*8], rsi
jmp 0x140021d88
cmp rdx, rbp
jne 0x140021d81
mov qword [rax + rdi*8], rsi
jmp 0x140021d8d
cmp qword [rax + rdi*8 + 8], rcx
jne 0x140021d8d
mov qword [rax + rdi*8 + 8], rsi
mov qword [r14], rsi
mov byte [r14 + 8], 1
mov rax, r14
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret