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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x830
mov rax, qword [0x1400397a8]
xor rax, rsp
mov qword [rsp + 0x820], rax
mov r15, rcx
movsxd rdi, edx
mov ecx, 0x1571
mov rbx, r8
call fcn.1400010b4
mov r12d, 1
test rbx, rbx
je 0x140001173
mov esi, 0x200
mov rcx, rbx
mov edx, esi
call fcn.140015a9c
cmp eax, esi
mov r9, rax
cmovg r9d, esi
xor eax, eax
movsxd rdx, r9d
test r9d, r9d
jle 0x14000118d
movsx ecx, byte [rax + rbx]
mov dword [rsp + rax*4 + 0x20], ecx
add rax, r12
cmp rax, rdx
jl 0x140001161
jmp 0x14000118d
mov eax, dword [0x14003a448]
mov r9d, 2
mov dword [rsp + 0x24], eax
mov eax, dword [0x14003a44c]
mov dword [rsp + 0x20], eax
mov ecx, 0x12bd6aa
call fcn.1400010b4
xor ebp, ebp
lea r13, [0x140000000]
mov ebx, 0x270
mov r11d, r9d
cmp r9d, ebx
mov r10d, r12d
cmovl r11d, ebx
test r11d, r11d
je 0x140001242
mov rbx, r12
movsxd r14, r9d
xor esi, esi
mov ecx, dword [r13 + rbx*4 + 0x4099c]
lea r9, [rsi + 1]
mov eax, ecx
lea edx, [r10 + 1]
shr eax, 0x1e
lea r8d, [rbp + 1]
xor eax, ecx
mov r10d, r12d
imul ecx, eax, 0x19660d
xor ecx, dword [r13 + rbx*4 + 0x409a0]
add ecx, dword [rsp + rsi*4 + 0x20]
mov esi, 0x270
add ecx, ebp
cmp edx, esi
mov dword [r13 + rbx*4 + 0x409a0], ecx
mov eax, dword [0x1400409a0]
lea rcx, [rbx + 1]
cmovge eax, dword [0x14004135c]
cmovl r10d, edx
mov rbx, r12
mov dword [0x1400409a0], eax
cmovl rbx, rcx
xor ebp, ebp
cmp r9, r14
cmovl ebp, r8d
xor esi, esi
cmp r9, r14
cmovl rsi, r9
sub r11d, r12d
jne 0x1400011c3
mov ebx, 0x270
mov r9d, 0x26f
movsxd r8, r10d
mov ecx, dword [r13 + r8*4 + 0x4099c]
lea edx, [r10 + 1]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x5d588b65
xor ecx, dword [r13 + r8*4 + 0x409a0]
sub ecx, r10d
mov r10d, r12d
mov dword [r13 + r8*4 + 0x409a0], ecx
cmp edx, ebx
mov eax, dword [0x1400409a0]
lea rcx, [r8 + 1]
cmovge eax, dword [0x14004135c]
mov r8, r12
cmovl r8, rcx
mov dword [0x1400409a0], eax
cmovl r10d, edx
sub r9d, r12d
jne 0x14000124b
mov edx, dword [0x14003a210]
mov r9, rdi
mov dword [0x1400409a0], 0x80000000
mov r10d, 0x7fffffff
sub r9, r12
cmp edx, ebx
jl 0x14000138f
cmp edx, 0x271
jne 0x1400012d9
mov ecx, 0x1571
call fcn.1400010b4
xor edx, edx
mov ecx, dword [r13 + rdx*4 + 0x409a4]
xor ecx, dword [r13 + rdx*4 + 0x409a0]
and ecx, r10d
xor ecx, dword [r13 + rdx*4 + 0x409a0]
mov eax, ecx
shr ecx, 1
and rax, r12
xor ecx, dword [r13 + rax*4 + 0x35578]
xor ecx, dword [r13 + rdx*4 + 0x40fd4]
mov dword [r13 + rdx*4 + 0x409a0], ecx
add rdx, r12
cmp rdx, 0xe3
jl 0x1400012db
lea rdx, [rdx*4 + 0x409a0]
add rdx, r13
mov ecx, dword [rdx + 4]
xor ecx, dword [rdx]
and ecx, r10d
xor ecx, dword [rdx]
mov eax, ecx
shr ecx, 1
and rax, r12
xor ecx, dword [r13 + rax*4 + 0x35578]
lea rax, [0x14004135c]
xor ecx, dword [rdx - 0x38c]
mov dword [rdx], ecx
add rdx, 4
cmp rdx, rax
jl 0x14000132c
mov ecx, dword [0x14004135c]
xor ecx, dword [0x1400409a0]
and ecx, r10d
xor ecx, dword [0x14004135c]
mov eax, ecx
shr ecx, 1
and rax, r12
xor ecx, dword [r13 + rax*4 + 0x35578]
xor ecx, dword [0x140040fd0]
mov dword [0x14004135c], ecx
xor edx, edx
movsxd rax, edx
add edx, r12d
mov dword [0x14003a210], edx
mov ecx, dword [r13 + rax*4 + 0x409a0]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
mov dword [r15 + r9*4], eax
test r9, r9
jne 0x1400012bc
mov rcx, qword [rsp + 0x820]
xor rcx, rsp
call fcn.140012470
mov rbx, qword [rsp + 0x888]
add rsp, 0x830
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret