Function at 0x14001dd70
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Hash data using fnv

Disassembly:
push rbx
mov eax, 0x1400
call fcn.14015f220
sub rsp, rax
mov rax, qword [0x14054a2c0]
xor rax, rsp
mov qword [rsp + 0x13d0], rax
mov ebx, ecx
test ecx, ecx
jne 0x14001dd9e
xor eax, eax
jmp 0x14001e04a
mov qword [rsp + 0x1418], rbp
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x13e0], r15
call fcn.14001e580
mov dword [rsp + 0x13c4], 0xffffffff
mov ecx, 1
mov edx, dword [rax]
mov dword [rsp + 0x44], edx
nop
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x44], edx
inc rcx
cmp rcx, 0x270
jb 0x14001ddd0
mov rcx, rbx
mov dword [rsp + 0x40], 0x270
mov rbp, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r15, rax
test rax, rax
je 0x14001e07f
mov qword [rsp + 0x1420], rsi
mov esi, dword [rsp + 0x20]
mov qword [rsp + 0x1428], rdi
mov qword [rsp + 0x13f8], r12
mov r12d, 0x8000
mov qword [rsp + 0x13f0], r13
mov r13d, 0xa
mov qword [rsp + 0x13e8], r14
xor r14d, r14d
mov rbx, rbp
lea rcx, [rsp + 0x40]
sub rbx, r14
movabs rdi, 0x100000001b3
call fcn.14001d0d0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 5
ja 0x14001de8a
lea rcx, [rsp + 0x40]
call fcn.14001d0d0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x14001de72
shr rax, 0x20
add ax, r12w
xor ax, r12w
cmp rbx, 7
jb 0x14001debf
cmp ax, 7
jb 0x14001dea6
xor esi, esi
jmp 0x14001df1e
cmp ax, 3
jl 0x14001deb3
mov esi, 1
jmp 0x14001df1e
test ax, ax
js 0x14001df1e
mov esi, 3
jmp 0x14001df1e
cmp rbx, 3
jb 0x14001dfd6
cmp ax, 6
jl 0x14001ded6
mov esi, 2
jmp 0x14001df1e
cmp ax, 5
jne 0x14001dee3
mov esi, 5
jmp 0x14001df1e
cmp ax, 4
jne 0x14001def0
mov esi, 6
jmp 0x14001df1e
cmp ax, 3
jne 0x14001defd
mov esi, 7
jmp 0x14001df1e
cmp ax, 2
jne 0x14001df0a
mov esi, 8
jmp 0x14001df1e
cmp ax, 1
jne 0x14001df17
mov esi, 9
jmp 0x14001df1e
test ax, ax
cmove esi, r13d
movabs rax, 0xcbf29ce484222325
movzx edx, sil
xor rdx, rax
mov eax, esi
imul rdx, rdi
sar eax, 8
movzx ecx, al
mov eax, esi
xor rdx, rcx
sar eax, 0x10
imul rdx, rdi
movzx ecx, al
mov eax, esi
xor rdx, rcx
sar eax, 0x18
imul rdx, rdi
movzx ecx, al
mov rax, qword [0x14054a778]
xor rdx, rcx
imul rdx, rdi
and rdx, qword [0x14054a790]
add rdx, rdx
mov rbx, qword [rax + rdx*8 + 8]
cmp rbx, qword [0x14054a768]
je 0x14001e09b
mov rax, qword [rax + rdx*8]
cmp esi, dword [rbx + 0x10]
je 0x14001dfa2
nop dword [rax]
cmp rbx, rax
je 0x14001e09b
mov rbx, qword [rbx + 8]
cmp esi, dword [rbx + 0x10]
jne 0x14001df90
movsx rbx, byte [rbx + 0x14]
mov ecx, esi
call fcn.14001e0b0
lea rcx, [r14 + r15]
mov r8, rbx
mov rdx, rax
mov rdi, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add r14, rbx
cmp r14, rbp
jae 0x14001e00f
jmp 0x14001de4a
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
je 0x14001e063
mov r8, rbx
mov edx, 0x90
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
lea rcx, [r14 + r15]
mov r8, rbx
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r14, qword [rsp + 0x13e8]
mov rax, r15
mov r15, qword [rsp + 0x13e0]
mov r13, qword [rsp + 0x13f0]
mov r12, qword [rsp + 0x13f8]
mov rdi, qword [rsp + 0x1428]
mov rsi, qword [rsp + 0x1420]
mov rbp, qword [rsp + 0x1418]
mov rcx, qword [rsp + 0x13d0]
xor rcx, rsp
call fcn.14015f280
add rsp, 0x1400
pop rbx
ret
lea rcx, [rsp + 0x28]
call fcn.14001cb10
lea rdx, [0x1403bb1a0]
lea rcx, [rsp + 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rsp + 0x28]
call fcn.14001cb10
lea rdx, [0x1403bb1a0]
lea rcx, [rsp + 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_
int3