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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1530]
mov eax, 0x1630
call fcn.14015ea30
sub rsp, rax
mov rax, qword [0x140548258]
xor rax, rsp
mov qword [rbp + 0x1520], rax
movsxd rsi, ecx
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 0x14000163f
imul rax, rax, 0x64
jmp 0x14000165a
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
mov dword [rbp + 0x1514], 0xffffffff
mov dword [rbp + 0x194], eax
mov edx, 1
mov ebx, 0x270
nop word [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [rbp + rdx*4 + 0x194], ecx
inc rdx
cmp rdx, rbx
jb 0x140001680
mov dword [rbp + 0x190], ebx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x58], xmm0
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x60], rax
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm0
lea r13, vtable.asmjit::_abi_1_10::JitRuntime.0
mov qword [rsp + 0x58], r13
xor ecx, ecx
call fcn.1400102e0
mov qword [rbp - 0x78], rax
lea r12, [0x1403a3eb0]
test rax, rax
jne 0x1400016e8
mov qword [rbp - 0x78], r12
mov dword [rsp + 0x30], 0x1000002
mov dword [rsp + 0x34], 1
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x65], 1
call sym.ConsoleApplication10.exe_public:_static_class_asmjit::_abi_1_10::CpuInfo_const____ptr64___cdecl_asmjit::_abi_1_10::CpuInfo::host_void_
movups xmm0, xmmword [rax + 0x78]
movups xmmword [rsp + 0x68], xmm0
movups xmm1, xmmword [rax + 0x88]
movups xmmword [rsp + 0x78], xmm1
xor edx, edx
mov r8d, 0x150
lea rcx, [rbp + 0x40]
call fcn.14015e888
xor edx, edx
lea rcx, [rbp + 0x40]
call sym.ConsoleApplication10.exe_public:_void___cdecl_asmjit::_abi_1_10::CodeHolder::constructor_struct_asmjit::_abi_1_10::Support::Temporary_const____ptr64____ptr64
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
mov r14, 0xffffffffffffffff
mov r9, r14
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x40]
call sym.ConsoleApplication10.exe_public:_unsigned_int___cdecl_asmjit::_abi_1_10::CodeHolder::init_class_asmjit::_abi_1_10::Environment_const____ptr64__class_asmjit::_abi_1_10::CpuFeatures_const____ptr64__unsigned_long_long_unsigned___int64_____ptr64
xor edx, edx
mov r8d, 0xb0
lea rcx, [rbp - 0x70]
call fcn.14015e888
mov al, 1
mov word [rbp - 0x68], 1
xor r15d, r15d
mov qword [rbp - 0x64], r15
mov dword [rbp - 0x50], r15d
mov qword [rbp - 0x4c], 1
xorps xmm2, xmm2
movdqa xmmword [rbp - 0x40], xmm2
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], r15
xor ecx, ecx
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], r15
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
movups xmmword [rbp + 8], xmm0
movdqa xmmword [rbp + 0x20], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x30], xmm1
lea rdi, vtable.asmjit::_abi_1_10::x86::Assembler.0
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x58], 6
lea rcx, [0x140015b40]
mov qword [rbp - 8], rcx
lea rcx, [0x140015b90]
mov qword [rbp], rcx
lea rcx, [0x140015be0]
mov qword [rbp + 8], rcx
lea rcx, [0x14001cd50]
mov qword [rbp + 0x10], rcx
lea rcx, [0x14001a640]
mov qword [rbp + 0x18], rcx
dec al
cmp al, 2
ja 0x140001891
movzx eax, byte [rbp + 0x40]
dec eax
cmp eax, 1
ja 0x140001891
movq rax, xmm2
test rax, rax
jne 0x140001891
mov eax, dword [rbp + 0x10c]
sub eax, dword [rbp + 0x108]
cmp eax, 1
jae 0x140001863
lea r9d, [r14 + 2]
lea r8d, [r14 + 9]
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x100]
call sym.ConsoleApplication10.exe_protected:_unsigned_int___cdecl_asmjit::_abi_1_10::ZoneVectorBase::_grow_class_asmjit::_abi_1_10::ZoneAllocator____ptr64__unsigned_int__unsigned_int____ptr64
test eax, eax
jne 0x14000188d
mov rdi, qword [rbp - 0x70]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x70]
call qword [rdi + 0x78]
test eax, eax
jne 0x14000188d
mov ecx, dword [rbp + 0x108]
lea rdx, [rbp - 0x70]
mov rax, qword [rbp + 0x100]
mov qword [rax + rcx*8], rdx
inc dword [rbp + 0x108]
mov rdi, qword [rbp - 0x70]
mov qword [rsp + 0x50], r15
cmp esi, 0xa
ja case.0x1400018b0.8
lea rdx, [0x140000000]
mov ecx, dword [rdx + rsi*4 + 0x1d1c]
add rcx, rdx
jmp rcx
lea rcx, [rbp + 0x190]
call fcn.140004ae0
mov ecx, eax
shr rcx, 0x20
mov qword [rsp + 0x30], 3
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], ecx
call fcn.1400014a0
lea r9, [rsp + 0x30]
mov edx, 0x1a2
jmp 0x140001a89
lea rcx, [rbp + 0x190]
call fcn.140004ae0
mov ecx, eax
shr rcx, 0x20
mov qword [rsp + 0x30], 3
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], ecx
lea rcx, [0x1403a3e70]
mov qword [rsp + 0x28], rcx
lea rcx, [0x1403a3e90]
mov qword [rsp + 0x20], rcx
lea r9, [0x1403a3e80]
lea r8, [rsp + 0x30]
mov edx, 0x282
lea rcx, [rbp - 0x70]
call qword [rdi + 0x30]
jmp case.0x1400018b0.8
call fcn.1400014a0
mov edx, 0x24c
jmp 0x140001a82
lea r8, [rbp + 0x198]
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, dword [r8 - 4]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x630]
shr edx, 1
xor ecx, edx
mov dword [r8 + 0x9bc], ecx
lea r8, [r8 + 4]
sub rbx, 1
jne 0x140001960
mov eax, dword [rbp + 0x190]
mov edx, dword [rbp + rax*4 + 0x194]
mov eax, edx
shr eax, 0xb
and eax, dword [rbp + 0x1514]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov eax, ecx
shr rax, 0x20
mov qword [rsp + 0x30], 3
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x3c], eax
lea rcx, [0x1403a3e70]
mov qword [rsp + 0x28], rcx
lea rcx, [0x1403a3e90]
mov qword [rsp + 0x20], rcx
lea r9, [0x1403a3e80]
lea r8, [rsp + 0x30]
lea edx, [rbx + 0x3b]
lea rcx, [rbp - 0x70]
call qword [rdi + 0x30]
jmp case.0x1400018b0.8
call fcn.1400014a0
mov rbx, rax
call fcn.1400014a0
mov r9, rbx
mov edx, 0x1d6
jmp 0x140001a89
call fcn.1400014a0
mov rbx, rax
call fcn.1400014a0
mov r9, rbx
mov edx, 0x66c
jmp 0x140001a89
call fcn.1400014a0
mov rbx, rax
call fcn.1400014a0
mov r9, rbx
mov edx, 0x15
jmp 0x140001a89
call fcn.1400014a0
mov rbx, rax
call fcn.1400014a0
mov r9, rbx
mov edx, 0x2f6
jmp 0x140001a89
call fcn.1400014a0
mov edx, 0x12f
lea r9, [0x1403a3e80]
mov rcx, qword [rbp - 0x70]
mov r10, qword [rcx + 0x30]
lea rcx, [0x1403a3e70]
mov qword [rsp + 0x28], rcx
lea rcx, [0x1403a3e90]
mov qword [rsp + 0x20], rcx
mov r8, rax
lea rcx, [rbp - 0x70]
call r10
lea r8, [rbp + 0x40]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x58]
mov rax, qword [rsp + 0x58]
call qword [rax + 8]
test eax, eax
je 0x140001ad5
mov rdi, r15
jmp 0x140001bc7
xor r10b, r10b
mov r9, r15
mov eax, dword [rbp + 0x128]
mov r8, qword [rbp + 0x120]
lea r11, [r8 + rax*8]
cmp r8, r11
je 0x140001b46
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [r8]
mov rdx, qword [rcx + 0x50]
cmp qword [rcx + 0x18], rdx
cmovae rdx, qword [rcx + 0x18]
test rdx, rdx
je 0x140001b35
mov eax, dword [rcx + 8]
lea rcx, [rax - 1]
not rcx
dec r9
add rax, r9
and rcx, rax
lea r9, [rcx + rdx]
cmp r9, rcx
setb al
or r10b, al
add r8, 8
cmp r8, r11
jne 0x140001b00
test r10b, r10b
je 0x140001b46
mov r9, r14
mov rcx, r9
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
xor r10b, r10b
mov r9, r15
mov eax, dword [rbp + 0x128]
mov r8, qword [rbp + 0x120]
lea r11, [r8 + rax*8]
cmp r8, r11
je 0x140001bb3
nop
mov rcx, qword [r8]
mov rdx, qword [rcx + 0x50]
cmp qword [rcx + 0x18], rdx
cmovae rdx, qword [rcx + 0x18]
test rdx, rdx
je 0x140001ba5
mov eax, dword [rcx + 8]
lea rcx, [rax - 1]
not rcx
dec r9
add rax, r9
and rcx, rax
lea r9, [rcx + rdx]
cmp r9, rcx
setb al
or r10b, al
add r8, 8
cmp r8, r11
jne 0x140001b70
test r10b, r10b
jne 0x140001bb6
mov r14, r9
mov r8, r14
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
nop
lea rax, vtable.asmjit::_abi_1_10::BaseEmitter.0
mov qword [rbp - 0x70], rax
mov r9, qword [rbp - 0x40]
test r9, r9
je 0x140001c47
or byte [rbp - 0x67], 0x80
mov r10, qword [r9 + 0xc0]
mov r8d, dword [r9 + 0xc8]
mov eax, r15d
test r8d, r8d
je 0x140001c14
mov rcx, r10
nop dword [rax + rax]
lea rdx, [rbp - 0x70]
cmp qword [rcx], rdx
je 0x140001c19
inc eax
add rcx, 8
cmp eax, r8d
jb 0x140001c00
mov eax, 0xffffffff
mov edx, eax
lea rcx, [r10 + rdx*8]
lea eax, [r8 - 1]
mov dword [r9 + 0xc8], eax
mov r8d, eax
sub r8, rdx
je 0x140001c43
lea r8, [r8*8]
lea rdx, [rcx + 8]
call sub.VCRUNTIME140.dll_memmove
mov qword [rbp - 0x40], r15
mov edx, 1
lea rcx, [rbp + 0x40]
call fcn.14000d620
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x140001c73
mov rbx, qword [rcx + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rbx
test rbx, rbx
jne 0x140001c61
xorps xmm0, xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0xa0], r15
mov edx, 1
lea rcx, [rbp + 0x80]
call sym.ConsoleApplication10.exe_public:_void___cdecl_asmjit::_abi_1_10::Zone::reset_enum_asmjit::_abi_1_10::ResetPolicy____ptr64
nop
mov qword [rsp + 0x58], r13
cmp qword [rbp - 0x78], r12
je 0x140001ce9
mov edx, 1
lea rcx, [rbp - 0x78]
call sym.ConsoleApplication10.exe_public:_void___cdecl_asmjit::_abi_1_10::JitAllocator::reset_enum_asmjit::_abi_1_10::ResetPolicy____ptr64
mov rbx, qword [rbp - 0x78]
lea rcx, [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, rdi
mov rcx, qword [rbp + 0x1520]
xor rcx, rsp
call fcn.14015d970
lea r11, [rsp + 0x1630]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret