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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1340]
mov eax, 0x1440
call fcn.1401c23e0
sub rsp, rax
mov rsi, r9
mov r14, r8
mov r13, rcx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
xor edi, edi
mov qword [rsp + 0x48], rdi
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rdi
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], rdi
mov r15d, edi
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], rdi
mov rcx, qword [rcx + 0xa0]
mov rax, qword [rcx]
mov r8d, 0x101
lea rdx, [rsp + 0x68]
call qword [rax + 0x28]
mov ebx, edi
mov qword [rbp + 0x1380], rbx
mov rcx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x68]
sub rcx, r8
movabs r12, 0x8888888888888889
mov rax, r12
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x1400ccc7a
nop dword [rax]
imul rdi, rbx, 0x78
add rdi, r8
mov rdx, rdi
mov rcx, qword [r13 + 0x88]
call fcn.1400c7010
test al, al
jne 0x1400ccc41
mov rcx, qword [rdi + 8]
call fcn.140136600
test al, al
je 0x1400ccc15
cmp r14, qword [rdi + 8]
jae 0x1400ccbeb
mov rdx, qword [rsp + 0x40]
cmp rdx, qword [rsp + 0x48]
je 0x1400ccbd8
mov qword [rdx], rbx
add qword [rsp + 0x40], 8
jmp 0x1400ccc41
lea r8, [rbp + 0x1380]
lea rcx, [rsp + 0x38]
call fcn.1400a8400
jmp 0x1400ccc41
mov rdx, qword [rsp + 0x58]
cmp rdx, qword [rsp + 0x60]
je 0x1400ccc02
mov qword [rdx], rbx
add qword [rsp + 0x58], 8
jmp 0x1400ccc41
lea r8, [rbp + 0x1380]
lea rcx, [rsp + 0x50]
call fcn.1400a8400
jmp 0x1400ccc41
mov rdx, qword [rsp + 0x28]
cmp rdx, qword [rsp + 0x30]
je 0x1400ccc2c
mov qword [rdx], rbx
add qword [rsp + 0x28], 8
jmp 0x1400ccc3d
lea r8, [rbp + 0x1380]
lea rcx, [rsp + 0x20]
call fcn.1400a8400
add r15, qword [rdi + 8]
inc rbx
mov qword [rbp + 0x1380], rbx
mov rcx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x68]
sub rcx, r8
mov rax, r12
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rbx, rdx
jb 0x1400ccb90
xor edi, edi
lea rcx, [0x1402bdfd0]
call fcn.14019e734
test eax, eax
jne 0x1400cd3b5
lea rdx, [rbp + 0x1380]
lea ecx, [rax + 4]
call fcn.140152c20
mov ebx, dword [rbp + 0x1380]
lea rcx, [0x1402bdfd0]
call fcn.14019e794
mov r13d, 0xffffffff
mov dword [rbp + 0x1334], r13d
mov dword [rbp - 0x4c], ebx
mov ecx, 1
nop dword [rax]
nop dword [rax + rax]
mov eax, ebx
shr eax, 0x1e
xor eax, ebx
imul ebx, eax, 0x6c078965
add ebx, ecx
mov dword [rbp + rcx*4 - 0x4c], ebx
inc rcx
cmp rcx, 0x270
jb 0x1400cccd0
mov dword [rbp - 0x50], 0x270
mov r12, rdi
movabs r14, 0x1e1e1e1e1e1e1e1
mov r8, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
cmp r8, rdx
je 0x1400cceae
test r15, r15
je 0x1400cceae
nop
cmp r8, rdx
je 0x1400cceae
sub rdx, r8
sar rdx, 3
lea rax, [rbp - 0x50]
mov qword [rbp - 0x70], rax
mov ecx, 0x40
mov rax, 0xffffffffffffffff
dec rcx
shr rax, 1
cmp rax, r13
ja 0x1400ccd44
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x68], rcx
lea rcx, [rbp - 0x70]
test rdx, rdx
jne 0x1400ccd67
call fcn.1400c9cb0
jmp 0x1400ccd6c
call fcn.1400ad820
mov r8, qword [rsp + 0x20]
lea rdx, [r8 + rax*8]
mov rdi, qword [rdx]
mov r9, qword [rsp + 0x28]
mov rcx, r9
sub rcx, r8
sar rcx, 3
inc rax
cmp rax, rcx
je 0x1400ccda0
mov rax, qword [r9 - 8]
mov qword [rdx], rax
mov r9, qword [rsp + 0x28]
mov r8, qword [rsp + 0x20]
mov rdx, r9
sub rdx, r8
sar rdx, 3
lea rcx, [rdx - 1]
cmp rcx, rdx
jae 0x1400ccdbe
lea rax, [r8 + rcx*8]
mov qword [rsp + 0x28], rax
jmp 0x1400cce05
jbe 0x1400cce05
mov rax, qword [rsp + 0x30]
sub rax, r8
sar rax, 3
cmp rcx, rax
jbe 0x1400ccde7
lea r8, [rbp + 0x1380]
mov rdx, rcx
lea rcx, [rsp + 0x20]
call fcn.1400c8c30
jmp 0x1400cce05
sub rcx, rdx
lea r8, [rcx*8]
lea rbx, [r8 + r9]
xor edx, edx
mov rcx, r9
call fcn.1401c4950
mov qword [rsp + 0x28], rbx
imul rbx, rdi, 0x78
add rbx, qword [rsp + 0x68]
add r12, qword [rbx + 8]
mov rdi, qword [rsi]
cmp qword [rsi + 8], r14
je 0x1400cd3c3
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], 0
mov ecx, 0x88
call fcn.1401c1e9c
mov rcx, rax
movups xmm0, xmmword [rbx]
movups xmmword [rax + 0x10], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x20], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rax + 0x30], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rax + 0x40], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rax + 0x50], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rax + 0x60], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rax + 0x70], xmm0
movsd xmm1, qword [rbx + 0x70]
movsd qword [rax + 0x80], xmm1
inc qword [rsi + 8]
mov rax, qword [rdi + 8]
mov qword [rcx], rdi
mov qword [rcx + 8], rax
mov qword [rbp - 0x78], 0
mov qword [rdi + 8], rcx
mov qword [rax], rcx
mov r8, qword [rsp + 0x20]
cmp r12, r15
jae 0x1400cceae
mov rdx, qword [rsp + 0x28]
jmp 0x1400ccd20
mov r15, qword [rbp + 0x1388]
mov r9, qword [rsp + 0x68]
cmp r12, r15
jae 0x1400cd068
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
cmp rax, rdx
je 0x1400cd0f0
sub rdx, rax
sar rdx, 3
lea rax, [rbp - 0x50]
mov qword [rbp - 0x70], rax
mov ecx, 0x40
mov rax, 0xffffffffffffffff
dec rcx
shr rax, 1
cmp rax, r13
ja 0x1400ccef1
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x68], rcx
lea rcx, [rbp - 0x70]
test rdx, rdx
jne 0x1400ccf14
call fcn.1400c9cb0
jmp 0x1400ccf19
call fcn.1400ad820
mov r8, qword [rsp + 0x50]
lea rdx, [r8 + rax*8]
mov rdi, qword [rdx]
mov r9, qword [rsp + 0x58]
mov rcx, r9
sub rcx, r8
sar rcx, 3
inc rax
cmp rax, rcx
je 0x1400ccf4d
mov rax, qword [r9 - 8]
mov qword [rdx], rax
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov rdx, r9
sub rdx, r8
sar rdx, 3
lea rcx, [rdx - 1]
cmp rcx, rdx
jae 0x1400ccf6b
lea rax, [r8 + rcx*8]
mov qword [rsp + 0x58], rax
jmp 0x1400ccfb2
jbe 0x1400ccfb2
mov rax, qword [rsp + 0x60]
sub rax, r8
sar rax, 3
cmp rcx, rax
jbe 0x1400ccf94
lea r8, [rbp + 0x1380]
mov rdx, rcx
lea rcx, [rsp + 0x50]
call fcn.1400c8c30
jmp 0x1400ccfb2
sub rcx, rdx
lea r8, [rcx*8]
lea rbx, [r8 + r9]
xor edx, edx
mov rcx, r9
call fcn.1401c4950
mov qword [rsp + 0x58], rbx
imul rdi, rdi, 0x78
mov rbx, qword [rsp + 0x68]
add rbx, rdi
mov r14, qword [rsi]
movabs rax, 0x1e1e1e1e1e1e1e1
cmp qword [rsi + 8], rax
je 0x1400cd3c3
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], 0
mov ecx, 0x88
call fcn.1401c1e9c
mov rcx, rax
movups xmm0, xmmword [rbx]
movups xmmword [rax + 0x10], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x20], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rax + 0x30], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rax + 0x40], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rax + 0x50], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rax + 0x60], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rax + 0x70], xmm0
movsd xmm1, qword [rbx + 0x70]
movsd qword [rax + 0x80], xmm1
inc qword [rsi + 8]
mov rax, qword [r14 + 8]
mov qword [rcx], r14
mov qword [rcx + 8], rax
mov qword [rbp - 0x78], 0
mov qword [r14 + 8], rcx
mov qword [rax], rcx
mov r9, qword [rsp + 0x68]
add r12, qword [r9 + rdi + 8]
cmp r12, r15
jb 0x1400ccec3
mov r8, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x38]
test r9, r9
je 0x1400cd2a1
mov rcx, qword [rsp + 0x78]
sub rcx, r9
movabs rax, 0x8888888888888889
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x78
mov rax, r9
cmp rdx, 0x1000
jb 0x1400cd0c5
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400cd3bd
mov rcx, r9
call fcn.1401c1ed8
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
xor ebx, ebx
mov qword [rsp + 0x78], rbx
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x20]
jmp 0x1400cd2a3
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
cmp rcx, rdx
je 0x1400cd297
sub rdx, rcx
sar rdx, 3
lea rax, [rbp - 0x50]
mov qword [rbp - 0x70], rax
mov ecx, 0x40
mov rax, 0xffffffffffffffff
nop
dec rcx
shr rax, 1
cmp rax, r13
ja 0x1400cd120
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x68], rcx
lea rcx, [rbp - 0x70]
test rdx, rdx
jne 0x1400cd143
call fcn.1400c9cb0
jmp 0x1400cd148
call fcn.1400ad820
mov r8, qword [rsp + 0x38]
lea rdx, [r8 + rax*8]
mov rdi, qword [rdx]
mov r9, qword [rsp + 0x40]
mov rcx, r9
sub rcx, r8
sar rcx, 3
inc rax
cmp rax, rcx
je 0x1400cd17c
mov rax, qword [r9 - 8]
mov qword [rdx], rax
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
mov rdx, r9
sub rdx, r8
sar rdx, 3
lea rcx, [rdx - 1]
cmp rcx, rdx
jae 0x1400cd19a
lea rax, [r8 + rcx*8]
mov qword [rsp + 0x40], rax
jmp 0x1400cd1e1
jbe 0x1400cd1e1
mov rax, qword [rsp + 0x48]
sub rax, r8
sar rax, 3
cmp rcx, rax
jbe 0x1400cd1c3
lea r8, [rbp + 0x1380]
mov rdx, rcx
lea rcx, [rsp + 0x38]
call fcn.1400c8c30
jmp 0x1400cd1e1
sub rcx, rdx
lea r8, [rcx*8]
lea rbx, [r8 + r9]
xor edx, edx
mov rcx, r9
call fcn.1401c4950
mov qword [rsp + 0x40], rbx
imul rdi, rdi, 0x78
mov rbx, qword [rsp + 0x68]
add rbx, rdi
mov r14, qword [rsi]
movabs rax, 0x1e1e1e1e1e1e1e1
cmp qword [rsi + 8], rax
je 0x1400cd3c3
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], 0
mov ecx, 0x88
call fcn.1401c1e9c
mov rcx, rax
movups xmm0, xmmword [rbx]
movups xmmword [rax + 0x10], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x20], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rax + 0x30], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rax + 0x40], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rax + 0x50], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rax + 0x60], xmm1
movups xmm0, xmmword [rbx + 0x60]
movups xmmword [rax + 0x70], xmm0
movsd xmm1, qword [rbx + 0x70]
movsd qword [rax + 0x80], xmm1
inc qword [rsi + 8]
mov rax, qword [r14 + 8]
mov qword [rcx], r14
mov qword [rcx + 8], rax
mov qword [rbp - 0x78], 0
mov qword [r14 + 8], rcx
mov qword [rax], rcx
mov r9, qword [rsp + 0x68]
add r12, qword [rdi + r9 + 8]
cmp r12, r15
jb 0x1400cd0f0
jmp 0x1400cd063
mov r8, qword [rsp + 0x20]
jmp 0x1400cd06d
xor ebx, ebx
test r8, r8
je 0x1400cd2fc
mov rax, qword [rsp + 0x30]
sub rax, r8
sar rax, 3
lea rdx, [rax*8]
mov rax, r8
cmp rdx, 0x1000
jb 0x1400cd2e1
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400cd3d0
mov rcx, r8
call fcn.1401c1ed8
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], rbx
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x50]
test r8, r8
je 0x1400cd35a
mov rax, qword [rsp + 0x60]
sub rax, r8
sar rax, 3
lea rdx, [rax*8]
mov rax, r8
cmp rdx, 0x1000
jb 0x1400cd33f
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400cd3d6
mov rcx, r8
call fcn.1401c1ed8
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rbx
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400cd391
mov rdx, qword [rsp + 0x48]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400cd38c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400cd3af
call fcn.1401c1ed8
mov rax, r12
mov rbx, qword [rsp + 0x1490]
add rsp, 0x1440
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401c85ec
nop
mov ecx, eax
call fcn.14019ee98
nop
call fcn.1401c85ec
nop
lea rcx, str.list_too_long
call fcn.14019e39c
nop
call fcn.1401c85ec
nop
call fcn.1401c85ec
int3