Function at 0x140001904
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.14015fbb0
sub rsp, rax
mov ebx, ecx
xor r13d, r13d
test ecx, ecx
je 0x140001b97
lea rcx, [rbp + 0x1318]
call fcn.140001438
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 0x14000195b
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 0x140001b97
mov r15, r13
mov esi, dword [rbp + 0x1310]
mov rbx, r12
sub rbx, r15
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x1318]
call fcn.140004e18
mov ecx, 7
cmp rbx, rcx
jb 0x140001a64
cmp ax, cx
jl 0x140001a3a
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 0x1400019ed
and rcx, qword [0x14054b660]
add rcx, rcx
mov rax, qword [0x14054b648]
mov rbx, qword [rax + rcx*8 + 8]
cmp rbx, qword [0x14054b638]
je 0x140001b4b
mov rdx, qword [rax + rcx*8]
jmp 0x140001b0d
mov r8d, 3
cmp ax, r8w
jl 0x140001a50
mov esi, edi
mov dword [rbp + 0x1310], edi
jmp 0x1400019da
test ax, ax
js 0x1400019da
mov esi, r8d
mov dword [rbp + 0x1310], r8d
jmp 0x1400019da
mov r8d, 3
cmp rbx, r8
jb 0x140001b59
lea edx, [r8 + 3]
cmp ax, dx
jl 0x140001a8c
lea eax, [rdx - 4]
mov esi, eax
mov dword [rbp + 0x1310], eax
jmp 0x1400019da
mov r9d, 5
cmp ax, r9w
jne 0x140001aa7
mov esi, r9d
mov dword [rbp + 0x1310], r9d
jmp 0x1400019da
mov r9d, 4
cmp ax, r9w
jne 0x140001ac0
mov esi, edx
mov dword [rbp + 0x1310], edx
jmp 0x1400019e0
cmp ax, r8w
jne 0x140001ad3
mov esi, ecx
mov dword [rbp + 0x1310], ecx
jmp 0x1400019e0
mov ecx, 2
cmp ax, cx
jne 0x140001ae2
lea esi, [rcx + 6]
jmp 0x140001aec
cmp ax, di
jne 0x140001af7
mov esi, 9
mov dword [rbp + 0x1310], esi
jmp 0x1400019e0
mov ecx, 0xa
test ax, ax
cmove esi, ecx
jmp 0x140001aec
cmp rbx, rdx
je 0x140001b4b
mov rbx, qword [rbx + 8]
cmp esi, dword [rbx + 0x10]
jne 0x140001b04
movsx rbx, byte [rbx + 0x14]
mov ecx, esi
call fcn.140001664
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 0x140001b92
mov edi, 1
jmp 0x1400019a6
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 0x140001bb4
mov r8, rbx
mov edx, 0x90
mov rcx, rax
call fcn.14015f9f2
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 0x140001b99
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, [0x1403bafe8]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3