Function at 0x1401565b0
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.1403351a0
sub rsp, rax
mov rax, qword [0x14074a3c0]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
mov ebx, ecx
test ecx, ecx
jne 0x1401565e6
xor eax, eax
jmp 0x140156893
mov qword [rsp + 0x13f8], r14
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x13f0], r15
call fcn.140159e20
mov rcx, qword [rax]
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x20]
call fcn.1401554b0
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 0x140156630
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 0x1401568c8
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.140153100
mov eax, eax
lea rax, [rax + rax*4]
add rax, rax
cmp eax, 5
ja 0x1401566e8
nop
lea rcx, [rsp + 0x20]
call fcn.140153100
mov eax, eax
lea rax, [rax + rax*4]
add rax, rax
cmp eax, 6
jb 0x1401566d0
shr rax, 0x20
cmp rbx, 7
jb 0x140156728
cmp ax, 7
jb 0x140156702
mov dword [rsp + 0x40], r12d
jmp 0x14015679f
cmp ax, 3
jl 0x140156715
mov dword [rsp + 0x40], 1
jmp 0x14015679f
test ax, ax
js 0x14015679f
mov dword [rsp + 0x40], 3
jmp 0x14015679f
cmp rbx, 3
jb 0x140156827
cmp ax, 6
jl 0x140156742
mov dword [rsp + 0x40], 2
jmp 0x14015679f
cmp ax, 5
jne 0x140156752
mov dword [rsp + 0x40], 5
jmp 0x14015679f
cmp ax, 4
jne 0x140156762
mov dword [rsp + 0x40], 6
jmp 0x14015679f
cmp ax, 3
jne 0x140156772
mov dword [rsp + 0x40], 7
jmp 0x14015679f
cmp ax, 2
jne 0x140156782
mov dword [rsp + 0x40], 8
jmp 0x14015679f
cmp ax, 1
jne 0x140156792
mov dword [rsp + 0x40], 9
jmp 0x14015679f
test ax, ax
jne 0x14015679f
mov dword [rsp + 0x40], 0xa
mov r8d, 4
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.140152ca0
and rax, qword [0x14074b8f0]
mov rcx, qword [0x14074b8d8]
add rax, rax
mov rbx, qword [rcx + rax*8 + 8]
cmp rbx, qword [0x14074b8c8]
je 0x1401568e4
mov rax, qword [rcx + rax*8]
mov ecx, dword [rsp + 0x40]
cmp ecx, dword [rbx + 0x10]
je 0x1401567f4
cmp rbx, rax
je 0x1401568e4
mov rbx, qword [rbx + 8]
cmp ecx, dword [rbx + 0x10]
jne 0x1401567e2
movsx rbx, byte [rbx + 0x14]
call fcn.140156900
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 0x1401566b0
jmp 0x140156860
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
je 0x1401568ac
mov r8, rbx
mov edx, 0x90
mov rcx, rax
call fcn.140335ec6
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.140335200
add rsp, 0x1408
pop rbx
pop rbp
ret
lea rcx, [rsp + 0x28]
call fcn.14014e2a0
lea rdx, [0x1405b6c50]
lea rcx, [rsp + 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
lea rcx, [rsp + 0x28]
call fcn.14014e2a0
lea rdx, [0x1405b6c50]
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