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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1f8]
sub rsp, 0x2d0
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x1402a2cf8]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov r13, rcx
cmp qword [rcx + 0x10], 0
jne 0x140018776
mov rax, qword gs:[0x30]
mov rdx, qword [rax + 0x60]
mov r14, qword [rdx + 0x68]
mov qword [rsp + 0x28], r14
xor r12d, r12d
mov eax, r12d
mov dword [rsp + 0x20], eax
cmp dword [r14 + 0xc], r12d
jbe 0x140018776
movss xmm6, dword [0x140120f78]
nop dword [rax + rax]
lea rsi, [rax + rax*2]
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x70], r12
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x60]
call fcn.1400b6650
mov ebx, dword [r14 + rsi*8 + 0x18]
mov edx, dword [r14 + rsi*8 + 0x14]
add rdx, r14
mov r8d, ebx
lea rcx, [rbp - 0x60]
call fcn.1400b76e0
shr rbx, 1
lea rdi, [rbp - 0x60]
lea rdi, [rdi + rbx*2]
lea rbx, [rbp - 0x60]
lea rax, [rbp - 0x60]
cmp rax, rdi
je 0x140018258
movzx ecx, word [rbx]
call fcn.1400d49dc
mov word [rbx], ax
add rbx, 2
cmp rbx, rdi
jne 0x140018244
mov edi, dword [r14 + rsi*8 + 0x24]
add rdi, r14
mov ebx, r12d
cmp dword [rdi + 4], 0
jbe 0x140018333
nop dword [rax]
mov eax, ebx
lea rcx, [rax + rax*4]
mov r8d, dword [rdi + rcx*4 + 0x18]
shr r8, 1
mov edx, dword [rdi + rcx*4 + 0x14]
add rdx, r14
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
lea rcx, [rsp + 0x78]
call fcn.1400098b0
nop
cmp qword [rbp - 0x78], 0
je 0x1400182e7
mov rdx, qword [rsp + 0x68]
cmp rdx, qword [rsp + 0x70]
je 0x1400182d8
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp - 0x78]
movups xmmword [rdx + 0x10], xmm1
mov eax, 7
mov word [rsp + 0x78], r12w
add qword [rsp + 0x68], 0x20
jmp 0x1400182eb
lea r8, [rsp + 0x78]
lea rcx, [rsp + 0x60]
call fcn.140019050
mov rax, qword [rbp - 0x70]
cmp rax, 8
jb 0x140018328
lea rdx, [rax*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140018323
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400187c0
call fcn.14009aa1c
inc ebx
cmp ebx, dword [rdi + 4]
jb 0x140018270
lea r12, [r13 + 8]
mov qword [rsp + 0x40], r12
xor esi, esi
mov qword [rsp + 0x48], rsi
lea ecx, [rsi + 0x48]
call fcn.14009a9e0
mov r15, rax
mov qword [rsp + 0x48], rax
mov qword [rax + 0x20], rsi
mov qword [rax + 0x28], 7
mov word [rax + 0x10], si
lea rax, [rbp - 0x60]
mov r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], si
jne 0x140018370
lea rdx, [rbp - 0x60]
lea rcx, [r15 + 0x10]
call fcn.1400098b0
mov qword [r15 + 0x30], rsi
mov qword [r15 + 0x38], rsi
mov qword [r15 + 0x40], rsi
mov rax, qword [rsp + 0x60]
mov qword [r15 + 0x30], rax
mov rax, qword [rsp + 0x68]
mov qword [r15 + 0x38], rax
mov rax, qword [rsp + 0x70]
mov qword [r15 + 0x40], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rsi
mov rdx, qword [r15 + 0x20]
lea r8, [r15 + 0x10]
cmp qword [r15 + 0x28], 8
jb 0x1400183cf
mov r8, qword [r15 + 0x10]
movabs rsi, 0xcbf29ce484222325
xor ecx, ecx
add rdx, rdx
je 0x140018409
movabs r14, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor rsi, rax
imul rsi, r14
inc rcx
cmp rcx, rdx
jb 0x1400183f0
mov r14, qword [rsp + 0x28]
mov r9, rsi
lea r8, [r15 + 0x10]
lea rdx, [rsp + 0x50]
mov rcx, r13
call fcn.14000b3f0
cmp qword [rsp + 0x58], 0
je 0x14001849d
test r15, r15
je 0x1400186b5
lea rcx, [r15 + 0x30]
call fcn.140018f50
mov rdx, qword [r15 + 0x28]
cmp rdx, 8
jb 0x140018477
mov rcx, qword [r15 + 0x10]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140018472
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400187c0
mov rcx, r8
call fcn.14009aa1c
xor r12d, r12d
mov qword [r15 + 0x20], r12
mov qword [r15 + 0x28], 7
mov word [r15 + 0x10], r12w
lea edx, [r12 + 0x48]
mov rcx, r15
call fcn.14009aa1c
jmp 0x1400186b8
mov rdx, qword [r13 + 0x10]
movabs rax, 0x38e38e38e38e38e
cmp rdx, rax
je 0x1400187b3
lea rcx, [rdx + 1]
movss xmm3, dword [r13]
xorps xmm0, xmm0
test rcx, rcx
js 0x1400184cd
cvtsi2ss xmm0, rcx
jmp 0x1400184e2
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rbx, qword [r13 + 0x38]
xorps xmm2, xmm2
test rbx, rbx
js 0x1400184f5
cvtsi2ss xmm2, rbx
jmp 0x14001850d
mov rcx, rbx
shr rcx, 1
mov rax, rbx
and eax, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm1, xmm0
divss xmm1, xmm2
comiss xmm1, xmm3
seta al
test al, al
je 0x14001865a
divss xmm0, xmm3
call fcn.1400d1a14
xor ecx, ecx
comiss xmm0, xmm6
jb 0x140018548
subss xmm0, xmm6
comiss xmm0, xmm6
jae 0x140018548
movabs rax, 0x8000000000000000
mov rcx, rax
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rbx, rcx
jae 0x14001857a
cmp rbx, 0x200
jae 0x140018577
lea rbx, [rbx*8]
cmp rbx, rcx
jae 0x14001857a
mov rbx, rcx
mov rdx, rbx
mov rcx, r13
call fcn.14000b0b0
mov rax, qword [r13 + 0x30]
and rax, rsi
add rax, rax
mov rdx, qword [r13 + 0x18]
mov r10, qword [rdx + rax*8 + 8]
mov rcx, qword [r12]
cmp r10, rcx
jne 0x1400185ab
mov qword [rsp + 0x30], rcx
jmp 0x140018644
mov rbx, qword [rdx + rax*8]
mov r14, qword [r15 + 0x28]
mov r11, qword [r15 + 0x20]
nop word [rax + rax]
lea rax, [r10 + 0x10]
mov rcx, qword [rax + 0x10]
cmp qword [rax + 0x18], 8
jb 0x1400185d2
mov rax, qword [rax]
lea r9, [r15 + 0x10]
cmp r14, 8
jb 0x1400185e0
mov r9, qword [r15 + 0x10]
cmp r11, rcx
jne 0x14001861b
mov r8, r11
test r11, r11
je 0x140018626
movzx ecx, word [r9]
movzx edx, word [rax]
cmp cx, dx
jb 0x14001861b
sub r9, rax
cmp cx, dx
ja 0x14001861b
cmp r8, 1
je 0x140018626
dec r8
add rax, 2
movzx ecx, word [r9 + rax]
movzx edx, word [rax]
cmp cx, dx
jae 0x1400185ff
cmp r10, rbx
je 0x14001863a
mov r10, qword [r10 + 8]
jmp 0x1400185c0
mov rax, qword [r10]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], r10
mov r14, qword [rsp + 0x28]
jmp 0x14001864b
mov qword [rsp + 0x30], r10
mov r14, qword [rsp + 0x28]
xor eax, eax
mov qword [rsp + 0x38], rax
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x50], xmm0
mov rdx, qword [r13 + 0x10]
xor eax, eax
mov qword [rsp + 0x48], rax
mov r8, qword [rsp + 0x50]
mov r9, qword [r8 + 8]
lea rax, [rdx + 1]
mov qword [r13 + 0x10], rax
mov qword [r15], r8
mov qword [r15 + 8], r9
mov qword [r9], r15
mov qword [r8 + 8], r15
mov rcx, qword [r13 + 0x18]
mov rax, qword [r13 + 0x30]
and rax, rsi
add rax, rax
mov rdx, qword [rcx + rax*8]
cmp rdx, qword [r12]
jne 0x14001869e
mov qword [rcx + rax*8], r15
jmp 0x1400186b0
cmp rdx, r8
jne 0x1400186a9
mov qword [rcx + rax*8], r15
jmp 0x1400186b5
cmp qword [rcx + rax*8 + 8], r9
jne 0x1400186b5
mov qword [rcx + rax*8 + 8], r15
xor r12d, r12d
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x140018762
mov rdi, qword [rsp + 0x68]
cmp rbx, rdi
je 0x14001872d
mov rdx, qword [rbx + 0x18]
cmp rdx, 8
jb 0x14001870f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x14001870a
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400187ad
mov rcx, r8
call fcn.14009aa1c
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 7
mov word [rbx], r12w
add rbx, 0x20
cmp rbx, rdi
jne 0x1400186d0
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x70]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x14001875a
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400187ad
mov rcx, rbx
call fcn.14009aa1c
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
cmp eax, dword [r14 + 0xc]
jb 0x1400181f0
mov al, 1
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.14009a9c0
lea r11, [rsp + 0x2d0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400c88c8
nop
lea rcx, str.unordered_map_set_too_long
call fcn.140098bb4
nop
call fcn.1400c88c8
int3