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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1400
call fcn.140008650
sub rsp, rax
mov rax, qword [0x14000d010]
xor rax, rsp
mov qword [rsp + 0x13f0], rax
mov rdi, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0xf
mov byte [rsp + 0x40], 0
mov r8d, 0x24
lea rdx, str.0123456789abcdefghijklmnopqrstuvwxyz
lea rcx, [rsp + 0x40]
call fcn.1400063f0
nop
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov r11d, 0xffffffff
mov dword [rsp + 0x13e4], r11d
mov dword [rsp + 0x64], eax
mov r15d, 1
mov ecx, r15d
nop
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x64], edx
inc rcx
cmp rcx, 0x270
jb 0x140002400
mov dword [rsp + 0x60], 0x270
lea rbx, [rsp + 0x40]
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0x58]
cmp r10, 0x10
cmovae rbx, r9
mov rcx, qword [rsp + 0x50]
add rbx, rcx
lea r8, [rsp + 0x40]
cmp r10, 0x10
cmovae r8, r9
mov qword [rsp + 0x20], r8
mov rbp, 0xffffffffffffffff
mov r13d, 0x40
nop word [rax + rax]
lea r13, [r13 - 1]
shr rbp, 1
cmp rbp, r11
ja 0x140002470
cmp r8, rbx
je 0x140002566
lea rax, [r8 + 1]
cmp rax, rbx
je 0x140002566
mov rcx, r15
sub rcx, r8
mov qword [rsp + 0x28], rcx
nop dword [rax]
lea rax, [r15 + r8]
mov qword [rsp + 0x30], rax
lea r12, [rax + rcx]
nop dword [rax]
xor edi, edi
xor esi, esi
test r15, r15
je 0x1400024f6
nop dword [rax]
lea rcx, [r13 - 1]
shl rdi, cl
add rdi, rdi
nop word [rax + rax]
lea rcx, [rsp + 0x60]
call fcn.140006d70
mov eax, eax
cmp rax, rbp
ja 0x1400024d0
or rdi, rax
lea rcx, [r13 - 1]
shl rsi, cl
add rsi, rsi
or rsi, rbp
cmp rsi, r15
jb 0x1400024c0
xor edx, edx
mov rax, rsi
div r12
mov r8, rdx
mov rcx, rax
xor edx, edx
mov rax, rdi
div r12
cmp rax, rcx
jb 0x140002516
cmp r8, r15
jne 0x1400024b0
xor edx, edx
mov rax, rdi
div r12
mov r8, qword [rsp + 0x20]
cmp rdx, r15
je 0x14000253d
mov r9, qword [rsp + 0x30]
movzx ecx, byte [r9]
movzx eax, byte [rdx + r8]
mov byte [r9], al
mov byte [rdx + r8], cl
inc r15
lea rax, [r15 + r8]
cmp rax, rbx
mov rcx, qword [rsp + 0x28]
jne 0x1400024a0
mov r10, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r9, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
mov qword [rdi], 0
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov r8d, 0x10
cmp rcx, r8
cmovb r8, rcx
lea rdx, [rsp + 0x40]
cmp r10, 0x10
cmovae rdx, r9
mov rcx, rdi
call fcn.1400063f0
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x1400025e3
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400025de
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400025de
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140007810
mov rax, rdi
mov rcx, qword [rsp + 0x13f0]
xor rcx, rsp
call fcn.1400077f0
lea r11, [rsp + 0x1400]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret