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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov r14, r8
mov r13, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 0x10
mov rsi, r8
jb 0x14003cfa1
mov rsi, qword [r14]
test r13, r13
mov qword [rbp - 8], rdx
mov qword [rbp - 0x20], r9
mov r10, rcx
je 0x14003cfda
lea rax, [r13 - 1]
mov r8d, r13d
and r8d, 3
movabs rcx, 0x100000001b3
cmp rax, 3
jae 0x14003cfe9
movabs rbx, 0xcbf29ce484222325
xor edx, edx
jmp 0x14003d038
movabs r12, 0xcbf29ce484222325
jmp 0x14003d068
mov rdi, r13
and rdi, 0xfffffffffffffffc
movabs rbx, 0xcbf29ce484222325
xor edx, edx
nop dword [rax]
movzx eax, byte [rsi + rdx]
xor rax, rbx
imul rax, rcx
movzx ebx, byte [rsi + rdx + 1]
xor rbx, rax
imul rbx, rcx
movzx eax, byte [rsi + rdx + 2]
xor rax, rbx
imul rax, rcx
movzx ebx, byte [rsi + rdx + 3]
xor rbx, rax
imul rbx, rcx
add rdx, 4
cmp rdi, rdx
jne 0x14003d000
mov r12, rbx
test r8, r8
je 0x14003d068
add rdx, rsi
xor edi, edi
nop word cs:[rax + rax]
nop
movzx r12d, byte [rdx + rdi]
xor r12, rbx
imul r12, rcx
add rdi, 1
mov rbx, r12
cmp r8, rdi
jne 0x14003d050
mov rbx, r10
mov rax, qword [r10 + 0x30]
and rax, r12
mov rcx, qword [r10 + 0x18]
mov rdx, rax
shl rdx, 4
mov r15, qword [rcx + rdx + 8]
cmp r15, qword [r10 + 8]
je 0x14003d0db
add rax, rax
mov rdi, qword [rcx + rax*8]
cmp r13, qword [r15 + 0x20]
jne 0x14003d0c7
nop word cs:[rax + rax]
nop
cmp qword [r15 + 0x28], 0x10
jb 0x14003d0b0
mov rdx, qword [r15 + 0x10]
jmp 0x14003d0b4
lea rdx, [r15 + 0x10]
mov rcx, rsi
mov r8, r13
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14003d244
cmp r15, rdi
je 0x14003d0d8
mov r15, qword [r15 + 8]
cmp r13, qword [r15 + 0x20]
je 0x14003d0a0
jmp 0x14003d0c7
mov r15, rdi
movabs rax, 0x333333333333333
cmp qword [rbx + 0x10], rax
je 0x14003d338
lea rax, [rbx + 8]
mov qword [rbp - 0x18], rax
mov ecx, 0x50
call fcn.14006519c
mov r13, rax
mov qword [rbp - 0x10], rax
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm1
movaps xmm0, xmmword [0x14013f230]
movups xmmword [r14 + 0x10], xmm0
mov byte [r14], 0
mov rax, qword [rbp - 0x20]
movups xmm1, xmmword [rax]
movups xmm2, xmmword [rax + 0x10]
movups xmmword [r13 + 0x40], xmm2
movups xmmword [r13 + 0x30], xmm1
movups xmmword [rax + 0x10], xmm0
mov byte [rax], 0
mov rax, qword [rbx + 0x10]
add rax, 1
js 0x14003d159
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
jmp 0x14003d171
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
addss xmm0, xmm0
movss xmm1, dword [rbx]
mov rsi, qword [rbx + 0x38]
test rsi, rsi
js 0x14003d188
xorps xmm2, xmm2
cvtsi2ss xmm2, rsi
jmp 0x14003d1a2
mov rax, rsi
shr rax, 1
mov ecx, esi
and ecx, 1
or rcx, rax
xorps xmm2, xmm2
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm3, xmm0
divss xmm3, xmm2
ucomiss xmm3, xmm1
jbe 0x14003d2af
divss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
cvttss2si rax, xmm0
mov rcx, rax
subss xmm0, dword [0x140142c98]
cvttss2si rdx, xmm0
sar rcx, 0x3f
and rdx, rcx
or rdx, rax
cmp rdx, 9
mov eax, 8
cmovae rax, rdx
cmp rsi, rax
jae 0x14003d209
lea rcx, [rsi*8]
cmp rcx, rax
cmovb rcx, rax
cmp rsi, 0x200
cmovae rcx, rax
mov rsi, rcx
mov rcx, rbx
mov rdx, rsi
call fcn.140041b50
mov rax, qword [rbx + 0x30]
and rax, r12
mov rcx, qword [rbx + 0x18]
mov rdx, rax
shl rdx, 4
mov r15, qword [rcx + rdx + 8]
cmp r15, qword [rbx + 8]
je 0x14003d2af
add rax, rax
cmp qword [r13 + 0x28], 0x10
jb 0x14003d254
mov r14, rbx
mov rsi, qword [r13 + 0x10]
jmp 0x14003d25e
mov rsi, qword [rbp - 8]
mov qword [rsi], r15
mov byte [rsi + 8], 0
jmp 0x14003d324
mov r14, rbx
mov rsi, r13
add rsi, 0x10
mov rbx, qword [rcx + rax*8]
mov rdi, qword [r13 + 0x20]
cmp rdi, qword [r15 + 0x20]
jne 0x14003d293
nop dword [rax]
cmp qword [r15 + 0x28], 0x10
jb 0x14003d280
mov rdx, qword [r15 + 0x10]
jmp 0x14003d284
lea rdx, [r15 + 0x10]
mov rcx, rsi
mov r8, rdi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14003d2a9
cmp r15, rbx
je 0x14003d2a4
mov r15, qword [r15 + 8]
cmp rdi, qword [r15 + 0x20]
je 0x14003d270
jmp 0x14003d293
mov r15, rbx
jmp 0x14003d2ac
mov r15, qword [r15]
mov rbx, r14
mov qword [rbp - 0x10], 0
mov rax, qword [r15 + 8]
add qword [rbx + 0x10], 1
mov qword [r13], r15
mov qword [r13 + 8], rax
mov qword [rax], r13
mov qword [r15 + 8], r13
mov rdi, rbx
mov rbx, qword [rbx + 0x18]
and r12, qword [rdi + 0x30]
shl r12, 4
lea rcx, [rbx + r12]
add rcx, 8
lea rdx, [rbx + r12]
mov rbx, qword [rbx + r12]
cmp rbx, qword [rdi + 8]
je 0x14003d307
cmp rbx, r15
mov rsi, qword [rbp - 8]
je 0x14003d311
cmp qword [rcx], rax
jne 0x14003d314
mov rdx, rcx
jmp 0x14003d311
mov qword [rdx], r13
mov rdx, rcx
mov rsi, qword [rbp - 8]
mov qword [rdx], r13
mov qword [rsi], r13
mov byte [rsi + 8], 1
lea rcx, [rbp - 0x18]
call fcn.140041a70
mov rax, rsi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, str.unordered_map_set_too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3