Function at 0x1400974f0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x1308]
mov eax, 0x1408
call fcn.1401dd570
sub rsp, rax
mov rax, qword [0x1405d4300]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
mov ebx, ecx
test ecx, ecx
jne 0x140097526
xor eax, eax
jmp 0x1400977d3
mov qword [rsp + 0x13f8], r14
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x13f0], r15
call fcn.14009a150
mov rcx, qword [rax]
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x20]
call fcn.140096470
mov dword [rsp + 0x54], eax
mov edx, 1
mov dword [rbp + 0x12d4], 0xffffffff
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul ecx, ecx, 0x6c078965
add ecx, edx
mov dword [rsp + rdx*4 + 0x54], ecx
mov eax, ecx
inc rdx
cmp rdx, 0x270
jb 0x140097570
mov rcx, rbx
mov dword [rsp + 0x50], 0x270
mov r15, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r14, rax
test rax, rax
je 0x140097808
mov qword [rsp + 0x1428], rsi
lea rax, [rsp + 0x50]
mov qword [rsp + 0x1438], r12
xor r12d, r12d
mov qword [rsp + 0x1400], r13
mov esi, r12d
mov qword [rsp + 0x20], rax
movabs r13, 0xcbf29ce484222325
mov qword [rsp + 0x1430], rdi
nop dword [rax + rax]
mov rbx, r15
lea rcx, [rsp + 0x20]
sub rbx, rsi
call fcn.1400940c0
mov eax, eax
lea rax, [rax + rax*4]
add rax, rax
cmp eax, 5
ja 0x140097628
nop
lea rcx, [rsp + 0x20]
call fcn.1400940c0
mov eax, eax
lea rax, [rax + rax*4]
add rax, rax
cmp eax, 6
jb 0x140097610
shr rax, 0x20
cmp rbx, 7
jb 0x140097668
cmp ax, 7
jb 0x140097642
mov dword [rsp + 0x40], r12d
jmp 0x1400976df
cmp ax, 3
jl 0x140097655
mov dword [rsp + 0x40], 1
jmp 0x1400976df
test ax, ax
js 0x1400976df
mov dword [rsp + 0x40], 3
jmp 0x1400976df
cmp rbx, 3
jb 0x140097767
cmp ax, 6
jl 0x140097682
mov dword [rsp + 0x40], 2
jmp 0x1400976df
cmp ax, 5
jne 0x140097692
mov dword [rsp + 0x40], 5
jmp 0x1400976df
cmp ax, 4
jne 0x1400976a2
mov dword [rsp + 0x40], 6
jmp 0x1400976df
cmp ax, 3
jne 0x1400976b2
mov dword [rsp + 0x40], 7
jmp 0x1400976df
cmp ax, 2
jne 0x1400976c2
mov dword [rsp + 0x40], 8
jmp 0x1400976df
cmp ax, 1
jne 0x1400976d2
mov dword [rsp + 0x40], 9
jmp 0x1400976df
test ax, ax
jne 0x1400976df
mov dword [rsp + 0x40], 0xa
mov r8d, 4
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.140093c60
and rax, qword [0x1405d5050]
mov rcx, qword [0x1405d5038]
add rax, rax
mov rbx, qword [rcx + rax*8 + 8]
cmp rbx, qword [0x1405d5028]
je 0x140097824
mov rax, qword [rcx + rax*8]
mov ecx, dword [rsp + 0x40]
cmp ecx, dword [rbx + 0x10]
je 0x140097734
cmp rbx, rax
je 0x140097824
mov rbx, qword [rbx + 8]
cmp ecx, dword [rbx + 0x10]
jne 0x140097722
movsx rbx, byte [rbx + 0x14]
call fcn.140097840
lea rcx, [rsi + r14]
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 rsi, rbx
cmp rsi, r15
jb 0x1400975f0
jmp 0x1400977a0
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
je 0x1400977ec
mov r8, rbx
mov edx, 0x90
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
lea rcx, [rsi + 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 rdi, qword [rsp + 0x1430]
mov rax, r14
mov r14, qword [rsp + 0x13f8]
mov r13, qword [rsp + 0x1400]
mov r12, qword [rsp + 0x1438]
mov rsi, qword [rsp + 0x1428]
mov r15, qword [rsp + 0x13f0]
mov rcx, qword [rbp + 0x12e0]
xor rcx, rsp
call fcn.1401dd5d0
add rsp, 0x1408
pop rbx
pop rbp
ret
lea rcx, [rsp + 0x28]
call fcn.14008fbb0
lea rdx, [0x1404444c0]
lea rcx, [rsp + 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rsp + 0x28]
call fcn.14008fbb0
lea rdx, [0x1404444c0]
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