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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x12e8]
mov eax, 0x13e8
call fcn.14019ec20
sub rsp, rax
lea r13, [rbp + 0x1328]
movabs rdi, 0xff00ff00ff00ff00
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], r13
mov rax, qword [r13]
xor rax, rdi
mov qword [rsp + 0x30], rax
xor ebx, ebx
mov qword [r13], rbx
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rbp + 0x12d4], 0xffffffff
mov dword [rsp + 0x54], eax
mov r12d, 1
mov edx, r12d
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x54], eax
inc rdx
cmp rdx, 0x270
jb 0x1400ebba0
mov dword [rsp + 0x50], 0x270
mov dword [rbp + 0x1330], ebx
lea rcx, [rsp + 0x28]
call fcn.140044280
mov r14, qword [rsp + 0x28]
add r14, 0x5f5e100
movabs r13, 0xb2f4fc0794908cf3
mov r15d, 0x80000000
call sub.MSVCP140.dll__Query_perf_frequency
mov rbx, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rbx, 0x989680
jne 0x1400ebc12
imul rax, rcx, 0x64
jmp 0x1400ebc81
cmp rbx, 0x16e3600
jne 0x1400ebc66
mov rax, r13
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, r13
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rax, rdx
add rax, r8
jmp 0x1400ebc81
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, r14
jge 0x1400ebe7d
lea rax, [rsp + 0x50]
mov qword [rbp + 0x1338], rax
lea rax, [rsp + 0x50]
mov qword [rbp + 0x1340], rax
mov esi, 0x186a0
nop word [rax + rax]
lea rcx, [rbp + 0x1338]
call fcn.14010b6f0
mov eax, eax
imul rax, rax, 0xc9
cmp eax, 0x63
ja 0x1400ebcea
nop word [rax + rax]
lea rcx, [rbp + 0x1338]
call fcn.14010b6f0
mov eax, eax
imul rax, rax, 0xc9
cmp eax, 0x64
jb 0x1400ebcd0
shr rax, 0x20
lea ecx, [rax + 0x7fffff9c]
lea eax, [rcx + r15]
lea ebx, [rcx - 0x80000000]
cmp ecx, r15d
cmovae ebx, eax
test ebx, ebx
cmove ebx, r12d
lea rcx, [rbp + 0x1340]
call fcn.14010b6f0
mov eax, eax
imul rcx, rax, 0xc9
mov edi, ebx
cmp ecx, 0xc9
jae 0x1400ebd4a
cmp ecx, 0x64
jae 0x1400ebd4a
nop
lea rcx, [rbp + 0x1340]
call fcn.14010b6f0
mov eax, eax
imul rcx, rax, 0xc9
cmp ecx, 0x64
jb 0x1400ebd30
shr rcx, 0x20
add ecx, 0x7fffff9c
lea eax, [rcx + r15]
lea edx, [rcx - 0x80000000]
cmp ecx, r15d
cmovae edx, eax
mov eax, dword [rbp + 0x1330]
add edx, eax
mov dword [rbp + 0x1330], edx
lea rax, [rsp + 0x50]
mov qword [rbp + 0x1348], rax
lea rcx, [rbp + 0x1348]
call fcn.14010b6f0
mov eax, eax
imul rcx, rax, 0xc9
mov ebx, edi
cmp ecx, 0xc9
jae 0x1400ebdbc
cmp ecx, 0x64
jae 0x1400ebdbc
lea rcx, [rbp + 0x1348]
call fcn.14010b6f0
mov eax, eax
imul rcx, rax, 0xc9
cmp ecx, 0x64
jb 0x1400ebda2
shr rcx, 0x20
add ecx, 0x7fffff9c
lea eax, [rcx + r15]
lea edx, [rcx - 0x80000000]
cmp ecx, r15d
cmovae edx, eax
mov eax, dword [rbp + 0x1330]
imul edx, eax
mov dword [rbp + 0x1330], edx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
call fcn.14010b6f0
mov eax, eax
imul rdx, rax, 0xc9
mov edi, ebx
cmp edx, 0xc9
jae 0x1400ebe29
cmp edx, 0x64
jae 0x1400ebe29
lea rcx, [rsp + 0x20]
call fcn.14010b6f0
mov eax, eax
imul rdx, rax, 0xc9
cmp edx, 0x64
jb 0x1400ebe11
shr rdx, 0x20
add edx, 0x7fffff9c
lea eax, [rdx + r15]
lea ecx, [rdx - 0x80000000]
cmp edx, r15d
cmovae ecx, eax
mov eax, dword [rbp + 0x1330]
sub eax, ecx
mov dword [rbp + 0x1330], eax
mov eax, dword [rbp + 0x1330]
cdq
idiv edi
mov dword [rbp + 0x1330], eax
mov eax, dword [rbp + 0x1330]
cdq
idiv edi
mov dword [rbp + 0x1330], edx
sub rsi, r12
jne 0x1400ebcb0
jmp 0x1400ebbf3
mov eax, dword [rbp + 0x1330]
mov dword [0x1402efa74], eax
mov rax, qword [rsp + 0x30]
movabs rcx, 0xff00ff00ff00ff00
xor rax, rcx
lea r13, [rbp + 0x1328]
mov qword [r13], rax
add rsp, 0x13e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret