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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1320]
mov eax, 0x1420
call fcn.180021580
sub rsp, rax
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x1470], rbx
movaps xmmword [rsp + 0x1410], xmm6
movaps xmmword [rsp + 0x1400], xmm7
movaps xmmword [rsp + 0x13f0], xmm8
movaps xmmword [rsp + 0x13e0], xmm9
mov rbx, rcx
xor r15d, r15d
mov dword [rbp + 0x1368], r15d
mov qword [rsp + 0x38], 7
mov qword [rsp + 0x30], r15
mov word [rsp + 0x20], r15w
lea r8d, [r15 + 0x24]
lea rdx, str.abcdefghijklmnopqrstuvwxyz0123456789
lea rcx, [rsp + 0x20]
call fcn.180005cb0
nop
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], r15
mov word [rbx], r15w
mov edi, 1
mov dword [rbp + 0x1368], edi
mov r12, qword [rbx + 0x10]
mov r14d, 6
cmp r12, r14
ja 0x1800024ec
mov rax, qword [rbx + 0x18]
cmp rax, r14
je 0x1800024ec
jae 0x180002494
mov r8, r12
mov edx, r14d
mov rcx, rbx
call fcn.180008660
jmp 0x1800024d4
mov rsi, r12
cmp r12, r14
cmova rsi, r14
cmp rax, 8
jb 0x1800024c3
mov r13, qword [rbx]
test rsi, rsi
je 0x1800024bb
lea r8, [rsi + rsi]
mov rdx, r13
mov rcx, rbx
call fcn.180011060
mov rcx, r13
call fcn.180012658
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], rsi
mov word [rbx + rsi*2], r15w
mov qword [rbx + 0x10], r12
cmp qword [rbx + 0x18], 8
jb 0x1800024e4
mov rax, qword [rbx]
jmp 0x1800024e7
mov rax, rbx
mov word [rax + r12*2], r15w
xor ecx, ecx
call fcn.180012e18
mov dword [rbp + 0x12d4], 0xffffffff
mov dword [rsp + 0x54], eax
mov rdx, rdi
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor eax, ecx
imul eax, eax, 0x6c078965
add eax, edi
mov dword [rsp + rdx*4 + 0x54], eax
inc edi
inc rdx
cmp rdx, 0x270
jl 0x180002510
mov edi, 0x270
mov dword [rsp + 0x50], edi
mov esi, dword [rsp + 0x30]
dec esi
movd xmm9, esi
cvtdq2pd xmm9, xmm9
movsd xmm6, qword [0x180030070]
xorpd xmm7, xmm7
subsd xmm6, xmm7
movsd xmm8, qword [0x180030078]
addsd xmm6, xmm8
cmp edi, 0x270
jne 0x18000257c
lea rcx, [rsp + 0x50]
call fcn.18000d2b0
jmp 0x18000258e
cmp edi, 0x4e0
jb 0x180002592
lea rcx, [rsp + 0x50]
call fcn.18000d1d0
mov edi, dword [rsp + 0x50]
mov eax, edi
mov ecx, dword [rsp + rax*4 + 0x54]
inc edi
mov dword [rsp + 0x50], edi
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12d4]
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
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
divsd xmm1, xmm6
movapd xmm0, xmm9
subsd xmm0, xmm7
addsd xmm0, xmm8
mulsd xmm1, xmm0
addsd xmm1, xmm7
comisd xmm1, xmm9
mov eax, esi
jae 0x1800025fa
cvttsd2si eax, xmm1
lea rcx, [rsp + 0x20]
cmp qword [rsp + 0x38], 8
cmovae rcx, qword [rsp + 0x20]
cdqe
movzx r9d, word [rcx + rax*2]
mov r8, qword [rbx + 0x18]
cmp r8, 8
jb 0x180002621
mov rcx, qword [rbx]
jmp 0x180002624
mov rcx, rbx
mov rax, qword [rbx + 0x10]
lea rdx, [rcx + rax*2]
cmp r8, 8
jb 0x180002637
mov rax, qword [rbx]
jmp 0x18000263a
mov rax, rbx
test rdx, rdx
jne 0x180002644
mov rdx, r15
jmp 0x18000264a
sub rdx, rax
sar rdx, 1
movzx r8d, r9w
mov rcx, rbx
call fcn.180008490
dec r14
jne 0x180002568
cmp qword [rsp + 0x38], 8
jb 0x180002671
mov rcx, qword [rsp + 0x20]
call fcn.180012658
mov rax, rbx
lea r11, [rsp + 0x1420]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret