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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x1300]
mov eax, 0x1400
call fcn.1400283c0
sub rsp, rax
mov rax, qword [0x140032010]
xor rax, rsp
mov qword [rbp + 0x12f0], rax
mov r14, r8
mov rsi, rdx
mov rdi, rcx
lea rcx, [rbp + 0x12d0]
call fcn.140021f10
nop
mov rax, r14
cmp qword [r14 + 0x18], 0x10
jb 0x140015910
mov rax, qword [r14]
movsx edx, byte [rax]
mov dword [rbp + 0x12a4], 0xffffffff
mov dword [rsp + 0x24], edx
mov ebx, 1
mov ecx, ebx
nop dword [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140015930
mov dword [rsp + 0x20], 0x270
lea rcx, [rbp + 0x12d0]
mov rdx, qword [rbp + 0x12e0]
cmp qword [rbp + 0x12e8], 0x10
jb 0x14001597b
mov rcx, qword [rbp + 0x12d0]
add rdx, rcx
jmp 0x140015985
add rdx, rcx
lea rcx, [rbp + 0x12d0]
lea r8, [rsp + 0x20]
call fcn.140025510
mov rdx, r14
lea rcx, [rbp + 0x12b0]
call fcn.140021f10
cmp qword [rsi + 0x18], 0x10
jb 0x1400159a8
mov rsi, qword [rsi]
movsx ecx, byte [rsi]
mov dword [rbp + 0x12a4], 0xffffffff
mov dword [rsp + 0x24], ecx
nop dword [rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, ebx
mov dword [rsp + rbx*4 + 0x24], ecx
inc rbx
cmp rbx, 0x270
jb 0x1400159c0
mov dword [rsp + 0x20], 0x270
lea rcx, [rbp + 0x12b0]
mov rdx, qword [rbp + 0x12c0]
cmp qword [rbp + 0x12c8], 0x10
jb 0x140015a0b
mov rcx, qword [rbp + 0x12b0]
add rdx, rcx
jmp 0x140015a15
add rdx, rcx
lea rcx, [rbp + 0x12b0]
lea r8, [rsp + 0x20]
call fcn.140025510
xor r8d, r8d
cmp qword [rdi + 0x10], r8
jbe 0x140015aae
nop dword [rax]
lea rcx, [rbp + 0x12d0]
cmp qword [rbp + 0x12e8], 0x10
cmovae rcx, qword [rbp + 0x12d0]
xor edx, edx
mov rax, r8
div qword [rbp + 0x12e0]
movzx r9d, byte [rdx + rcx]
lea rcx, [rbp + 0x12b0]
cmp qword [rbp + 0x12c8], 0x10
cmovae rcx, qword [rbp + 0x12b0]
xor edx, edx
mov rax, r8
div qword [rbp + 0x12c0]
add rdx, rcx
mov rcx, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x140015a8b
mov rcx, qword [rdi]
movsx eax, byte [rdx]
and eax, 0x800000ff
jge 0x140015a9e
dec eax
or eax, 0xffffff00
inc eax
xor al, r9b
xor byte [rcx + r8], al
inc r8
cmp r8, qword [rdi + 0x10]
jb 0x140015a30
mov rdx, qword [rbp + 0x12c8]
cmp rdx, 0x10
jb 0x140015af2
inc rdx
mov rcx, qword [rbp + 0x12b0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015aed
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140015aed
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400274f4
mov qword [rbp + 0x12c0], 0
mov qword [rbp + 0x12c8], 0xf
mov byte [rbp + 0x12b0], 0
mov rdx, qword [rbp + 0x12e8]
cmp rdx, 0x10
jb 0x140015b53
inc rdx
mov rcx, qword [rbp + 0x12d0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015b4e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140015b4e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400274f4
mov rcx, qword [rbp + 0x12f0]
xor rcx, rsp
call fcn.140027490
add rsp, 0x1400
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret