Function at 0x1400403a0
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, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov r13, rcx
mov r12, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 0x10
mov rbx, r8
jb 0x1400403d1
mov rbx, qword [r8]
test r12, r12
mov qword [rbp - 8], rdx
mov qword [rbp - 0x28], r9
mov qword [rbp - 0x20], r8
je 0x14004040c
lea rax, [r12 - 1]
mov r10d, r12d
and r10d, 3
movabs rcx, 0x100000001b3
cmp rax, 3
jae 0x14004041b
movabs rdi, 0xcbf29ce484222325
xor edx, edx
jmp 0x140040468
movabs r15, 0xcbf29ce484222325
jmp 0x140040498
mov rsi, r12
and rsi, 0xfffffffffffffffc
movabs rdi, 0xcbf29ce484222325
xor edx, edx
nop
movzx eax, byte [rbx + rdx]
xor rax, rdi
imul rax, rcx
movzx edi, byte [rbx + rdx + 1]
xor rdi, rax
imul rdi, rcx
movzx eax, byte [rbx + rdx + 2]
xor rax, rdi
imul rax, rcx
movzx edi, byte [rbx + rdx + 3]
xor rdi, rax
imul rdi, rcx
add rdx, 4
cmp rsi, rdx
jne 0x140040430
mov r15, rdi
test r10, r10
je 0x140040498
add rdx, rbx
xor esi, esi
nop word cs:[rax + rax]
nop
movzx r15d, byte [rdx + rsi]
xor r15, rdi
imul r15, rcx
add rsi, 1
mov rdi, r15
cmp r10, rsi
jne 0x140040480
mov rax, qword [r13 + 0x30]
and rax, r15
mov rcx, qword [r13 + 0x18]
mov rdx, rax
shl rdx, 4
mov r14, qword [rcx + rdx + 8]
cmp r14, qword [r13 + 8]
je 0x14004050b
add rax, rax
mov rsi, qword [rcx + rax*8]
cmp r12, qword [r14 + 0x20]
jne 0x1400404f7
nop word cs:[rax + rax]
nop dword [rax]
cmp qword [r14 + 0x28], 0x10
jb 0x1400404e0
mov rdx, qword [r14 + 0x10]
jmp 0x1400404e4
lea rdx, [r14 + 0x10]
mov rcx, rbx
mov r8, r12
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x140040634
cmp r14, rsi
je 0x140040508
mov r14, qword [r14 + 8]
cmp r12, qword [r14 + 0x20]
je 0x1400404d0
jmp 0x1400404f7
mov r14, rsi
movabs rax, 0x333333333333333
cmp qword [r13 + 0x10], rax
je 0x140040721
lea rdx, [r13 + 8]
lea rcx, [rbp - 0x18]
mov r8, qword [rbp - 0x20]
mov r9, qword [rbp - 0x28]
call fcn.1400422e0
mov rax, qword [r13 + 0x10]
add rax, 1
js 0x140040545
cvtsi2ss xmm0, rax
jmp 0x14004055a
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
movss xmm1, dword [r13]
mov rsi, qword [r13 + 0x38]
test rsi, rsi
js 0x140040570
cvtsi2ss xmm2, rsi
jmp 0x140040587
mov rax, rsi
shr rax, 1
mov ecx, esi
and ecx, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm3, xmm0
divss xmm3, xmm2
ucomiss xmm3, xmm1
jbe 0x14004062e
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 0x1400405ee
lea rcx, [rsi*8]
cmp rcx, rax
cmovb rcx, rax
cmp rsi, 0x200
cmovae rcx, rax
mov rsi, rcx
mov rcx, r13
mov rdx, rsi
call fcn.140041b50
mov rsi, qword [rbp - 0x10]
mov rax, qword [r13 + 0x30]
and rax, r15
mov rcx, qword [r13 + 0x18]
mov rdx, rax
shl rdx, 4
mov r14, qword [rcx + rdx + 8]
cmp r14, qword [r13 + 8]
je 0x14004069c
add rax, rax
cmp qword [rsi + 0x28], 0x10
jb 0x140040644
mov r12, qword [rsi + 0x10]
jmp 0x140040648
mov rsi, qword [rbp - 0x10]
jmp 0x14004069c
mov rdi, qword [rbp - 8]
mov qword [rdi], r14
mov byte [rdi + 8], 0
jmp 0x14004070d
lea r12, [rsi + 0x10]
mov rdi, qword [rcx + rax*8]
mov rbx, qword [rsi + 0x20]
cmp rbx, qword [r14 + 0x20]
jne 0x140040683
nop word cs:[rax + rax]
cmp qword [r14 + 0x28], 0x10
jb 0x140040670
mov rdx, qword [r14 + 0x10]
jmp 0x140040674
lea rdx, [r14 + 0x10]
mov rcx, r12
mov r8, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x140040699
cmp r14, rdi
je 0x140040694
mov r14, qword [r14 + 8]
cmp rbx, qword [r14 + 0x20]
je 0x140040660
jmp 0x140040683
mov r14, rdi
jmp 0x14004069c
mov r14, qword [r14]
mov qword [rbp - 0x10], 0
mov rax, qword [r14 + 8]
add qword [r13 + 0x10], 1
mov qword [rsi], r14
mov qword [rsi + 8], rax
mov qword [rax], rsi
mov qword [r14 + 8], rsi
mov rbx, qword [r13 + 0x18]
and r15, qword [r13 + 0x30]
shl r15, 4
lea rcx, [rbx + r15]
add rcx, 8
lea rdx, [rbx + r15]
mov rbx, qword [rbx + r15]
cmp rbx, qword [r13 + 8]
je 0x1400406f0
cmp rbx, r14
mov rdi, qword [rbp - 8]
je 0x1400406fa
cmp qword [rcx], rax
jne 0x1400406fd
mov rdx, rcx
jmp 0x1400406fa
mov qword [rdx], rsi
mov rdx, rcx
mov rdi, qword [rbp - 8]
mov qword [rdx], rsi
mov qword [rdi], rsi
mov byte [rdi + 8], 1
lea rcx, [rbp - 0x18]
call fcn.140041a70
mov rax, rdi
add rsp, 0x58
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