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

Disassembly:
push rdi
mov eax, 0x1400
call fcn.14015ea30
sub rsp, rax
mov rax, qword [0x140548258]
xor rax, rsp
mov qword [rsp + 0x13d0], rax
mov edi, ecx
test ecx, ecx
jne 0x140001d7e
xor eax, eax
jmp 0x140002054
mov qword [rsp + 0x1418], rbx
mov qword [rsp + 0x1420], rbp
mov qword [rsp + 0x13f8], r12
mov qword [rsp + 0x13e0], r15
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x140001dbc
imul rax, rax, 0x64
jmp 0x140001dda
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov r12d, 1
mov dword [rsp + 0x13c4], 0xffffffff
mov edx, r12d
mov dword [rsp + 0x44], eax
mov rcx, rax
nop word [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [rsp + rdx*4 + 0x44], ecx
inc rdx
cmp rdx, 0x270
jb 0x140001e00
mov rcx, rdi
mov dword [rsp + 0x40], 0x270
mov rbp, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r15, rax
test rax, rax
je 0x140002089
mov ebx, dword [rsp + 0x38]
mov qword [rsp + 0x1428], rsi
mov qword [rsp + 0x13f0], r13
mov qword [rsp + 0x13e8], r14
xor r14d, r14d
lea r13d, [r14 + 0xa]
mov rdi, rbp
lea rcx, [rsp + 0x40]
sub rdi, r14
movabs rsi, 0x100000001b3
call fcn.140004ae0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 5
ja 0x140001ea8
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.140004ae0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x140001e90
shr rax, 0x20
cmp rdi, 7
jb 0x140001eca
cmp ax, 7
jb 0x140001ebc
xor ebx, ebx
jmp 0x140001f29
mov ebx, 3
cmp ax, bx
cmovae ebx, r12d
jmp 0x140001f29
cmp rdi, 3
jb 0x140001fe0
cmp ax, 6
jb 0x140001ee1
mov ebx, 2
jmp 0x140001f29
cmp ax, 5
jne 0x140001eee
mov ebx, 5
jmp 0x140001f29
cmp ax, 4
jne 0x140001efb
mov ebx, 6
jmp 0x140001f29
cmp ax, 3
jne 0x140001f08
mov ebx, 7
jmp 0x140001f29
cmp ax, 2
jne 0x140001f15
mov ebx, 8
jmp 0x140001f29
cmp ax, r12w
jne 0x140001f22
mov ebx, 9
jmp 0x140001f29
test ax, ax
cmove ebx, r13d
mov dword [rsp + 0x38], ebx
movabs rax, 0xcbf29ce484222325
movzx ecx, bl
xor rcx, rax
movzx eax, byte [rsp + 0x39]
imul rcx, rsi
xor rcx, rax
movzx eax, byte [rsp + 0x3a]
imul rcx, rsi
xor rcx, rax
movzx eax, byte [rsp + 0x3b]
imul rcx, rsi
xor rcx, rax
mov rax, qword [0x140549ca8]
imul rcx, rsi
and rcx, qword [0x140549cc0]
add rcx, rcx
mov rdi, qword [rax + rcx*8 + 8]
cmp rdi, qword [0x140549c98]
je 0x140001fd2
mov rax, qword [rax + rcx*8]
cmp ebx, dword [rdi + 0x10]
je 0x140001f9e
nop dword [rax]
cmp rdi, rax
je 0x140001fd2
mov rdi, qword [rdi + 8]
cmp ebx, dword [rdi + 0x10]
jne 0x140001f90
movsx rdi, byte [rdi + 0x14]
mov ecx, ebx
call fcn.1400015e0
lea rcx, [r14 + r15]
mov r8, rdi
mov rdx, rax
mov rsi, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add r14, rdi
cmp r14, rbp
jae 0x140002019
jmp 0x140001e62
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, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
je 0x14000206d
mov r8, rdi
mov edx, 0x90
mov rcx, rax
call fcn.14015e888
lea rcx, [r14 + r15]
mov r8, rdi
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rbx
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 rsi, qword [rsp + 0x1428]
mov r12, qword [rsp + 0x13f8]
mov rbp, qword [rsp + 0x1420]
mov rbx, qword [rsp + 0x1418]
mov rcx, qword [rsp + 0x13d0]
xor rcx, rsp
call fcn.14015d970
add rsp, 0x1400
pop rdi
ret
lea rcx, [rsp + 0x20]
call fcn.140001240
lea rdx, [0x1403b8f08]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rsp + 0x20]
call fcn.140001240
lea rdx, [0x1403b8f08]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3