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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x12d0]
mov eax, 0x13d0
call fcn.14015ff50
sub rsp, rax
mov ebx, ecx
xor r13d, r13d
test ecx, ecx
je 0x140001f3f
lea rcx, [rbp + 0x1318]
call fcn.1400017e0
or dword [rbp + 0x12c4], 0xffffffff
mov edx, dword [rax]
mov dword [rsp + 0x44], edx
lea edi, [r13 + 1]
mov ecx, edi
mov r8d, 0x270
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x44], edx
add rcx, rdi
cmp rcx, r8
jb 0x140001d03
mov dword [rsp + 0x40], r8d
mov dword [rbp + 0x1318], 0x90000
mov r12, rbx
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x140001f3f
mov r15, r13
mov esi, dword [rbp + 0x1310]
mov rbx, r12
sub rbx, r15
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x1318]
call fcn.1400051c0
mov ecx, 7
cmp rbx, rcx
jb 0x140001e0c
cmp ax, cx
jl 0x140001de2
mov esi, r13d
mov dword [rbp + 0x1310], r13d
mov r9d, 4
movabs rcx, 0xcbf29ce484222325
mov rdx, r13
movzx eax, byte [rbp + rdx + 0x1310]
xor rcx, rax
movabs r8, 0x100000001b3
imul rcx, r8
add rdx, rdi
cmp rdx, r9
jb 0x140001d95
and rcx, qword [0x14054c650]
add rcx, rcx
mov rax, qword [0x14054c638]
mov rbx, qword [rax + rcx*8 + 8]
cmp rbx, qword [0x14054c628]
je 0x140001ef3
mov rdx, qword [rax + rcx*8]
jmp 0x140001eb5
mov r8d, 3
cmp ax, r8w
jl 0x140001df8
mov esi, edi
mov dword [rbp + 0x1310], edi
jmp 0x140001d82
test ax, ax
js 0x140001d82
mov esi, r8d
mov dword [rbp + 0x1310], r8d
jmp 0x140001d82
mov r8d, 3
cmp rbx, r8
jb 0x140001f01
lea edx, [r8 + 3]
cmp ax, dx
jl 0x140001e34
lea eax, [rdx - 4]
mov esi, eax
mov dword [rbp + 0x1310], eax
jmp 0x140001d82
mov r9d, 5
cmp ax, r9w
jne 0x140001e4f
mov esi, r9d
mov dword [rbp + 0x1310], r9d
jmp 0x140001d82
mov r9d, 4
cmp ax, r9w
jne 0x140001e68
mov esi, edx
mov dword [rbp + 0x1310], edx
jmp 0x140001d88
cmp ax, r8w
jne 0x140001e7b
mov esi, ecx
mov dword [rbp + 0x1310], ecx
jmp 0x140001d88
mov ecx, 2
cmp ax, cx
jne 0x140001e8a
lea esi, [rcx + 6]
jmp 0x140001e94
cmp ax, di
jne 0x140001e9f
mov esi, 9
mov dword [rbp + 0x1310], esi
jmp 0x140001d88
mov ecx, 0xa
test ax, ax
cmove esi, ecx
jmp 0x140001e94
cmp rbx, rdx
je 0x140001ef3
mov rbx, qword [rbx + 8]
cmp esi, dword [rbx + 0x10]
jne 0x140001eac
movsx rbx, byte [rbx + 0x14]
mov ecx, esi
call fcn.140001a0c
mov rdi, rax
lea rcx, [r15 + r14]
mov r8, rbx
mov rdx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add r15, rbx
cmp r15, r12
jae 0x140001f3a
mov edi, 1
jmp 0x140001d4e
lea rcx, str.invalid_unordered_map_K__T__key
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
je 0x140001f5c
mov r8, rbx
mov edx, 0x90
mov rcx, rax
call fcn.14015fd92
lea rcx, [r15 + r14]
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 rax, r14
jmp 0x140001f41
xor eax, eax
mov rbx, qword [rsp + 0x1420]
add rsp, 0x13d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rsp + 0x20]
call fcn.14000131c
lea rdx, [0x1403bc108]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3