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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1368]
mov eax, 0x1468
call fcn.1400941f0
sub rsp, rax
mov rax, qword [0x1400f40c0]
xor rax, rsp
mov qword [rbp + 0x1350], rax
movzx edi, r9b
mov rsi, r8
mov qword [rsp + 0x38], r8
mov r14, rdx
mov qword [rsp + 0x48], rdx
mov r12, rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x30], rcx
mov qword [rbp - 0x50], rdx
mov qword [rbp - 0x48], r8
xor r13d, r13d
lea r15d, [r13 + 1]
cmp byte [0x1400f864d], r13b
je 0x14001dc97
mov rcx, qword [0x1400f8600]
mov rdx, qword [0x1400f8608]
cmp rcx, rdx
je 0x14001dc82
call fcn.140011590
mov rax, qword [0x1400f8600]
mov qword [0x1400f8608], rax
mov dword [0x1400f8650], r13d
mov dword [0x1400f4d60], r15d
mov byte [0x1400f864d], 0
mov rdx, rsi
cmp byte [rbp + 0x13d0], 0
jne 0x14001dd51
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x70]
call fcn.1400102b0
mov rbx, rax
mov rdx, r14
lea rcx, [rbp - 0x70]
call fcn.1400102b0
nop
movzx r9d, dil
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.14001c6d0
mov rbx, rax
lea rax, [0x1400f8600]
cmp rax, rbx
je 0x14001de2f
mov rcx, qword [0x1400f8600]
test rcx, rcx
je 0x14001de04
mov rdx, qword [0x1400f8608]
call fcn.140011590
mov rdx, qword [0x1400f8610]
mov rcx, qword [0x1400f8600]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001dded
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001e271
jmp 0x14001dded
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
lea rcx, [rbp - 0x70]
call fcn.1400102b0
mov rbx, rax
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.1400102b0
nop
movzx r9d, dil
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.14001d600
mov rbx, rax
lea rax, [0x1400f8600]
cmp rax, rbx
je 0x14001de2f
mov rcx, qword [0x1400f8600]
test rcx, rcx
je 0x14001de04
mov rdx, qword [0x1400f8608]
call fcn.140011590
mov rdx, qword [0x1400f8610]
mov rcx, qword [0x1400f8600]
sub rdx, rcx
and rdx, 0xffffffffffffffe0
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001dded
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14001e27d
call fcn.1400937a0
xorps xmm0, xmm0
movdqu xmmword [0x1400f8600], xmm0
mov qword [0x1400f8610], r13
mov rax, qword [rbx]
mov qword [0x1400f8600], rax
mov rax, qword [rbx + 8]
mov qword [0x1400f8608], rax
mov rax, qword [rbx + 0x10]
mov qword [0x1400f8610], rax
mov qword [rbx], r13
mov qword [rbx + 0x10], r13
mov qword [rbx + 8], r13
lea rcx, [rsp + 0x58]
call fcn.140010700
mov rdx, qword [0x1400f8608]
mov r8, rdx
mov r13, qword [0x1400f8600]
sub r8, r13
sar r8, 5
mov eax, dword [0x1400f8650]
cmp rax, r8
jae 0x14001e1b7
mov eax, dword [0x1400f85c0]
cmp eax, 1
jne 0x14001dec4
cmp r13, rdx
je 0x14001e0e0
nop dword [rax]
nop dword [rax + rax]
sub rdx, 0x20
cmp r13, rdx
je 0x14001df72
movups xmm2, xmmword [r13]
movups xmm3, xmmword [r13 + 0x10]
movups xmm0, xmmword [rdx]
movups xmmword [r13], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [r13 + 0x10], xmm1
movups xmmword [rdx], xmm2
movups xmmword [rdx + 0x10], xmm3
add r13, 0x20
cmp r13, rdx
jne 0x14001de80
mov r13, qword [0x1400f8600]
jmp 0x14001e0e0
cmp eax, 2
jne 0x14001dee3
movzx r9d, byte [rsp + 0x20]
mov rcx, r13
call fcn.14001f870
mov r13, qword [0x1400f8600]
jmp 0x14001e0e0
cmp eax, 3
jne 0x14001df02
movzx r9d, byte [rsp + 0x20]
mov rcx, r13
call fcn.14001faf0
mov r13, qword [0x1400f8600]
jmp 0x14001e0e0
cmp eax, 4
jne 0x14001df21
movzx r9d, byte [rsp + 0x20]
mov rcx, r13
call fcn.14001fd70
mov r13, qword [0x1400f8600]
jmp 0x14001e0e0
cmp eax, 5
jne 0x14001df40
movzx r9d, byte [rsp + 0x20]
mov rcx, r13
call fcn.14001fff0
mov r13, qword [0x1400f8600]
jmp 0x14001e0e0
cmp eax, 6
jne 0x14001df5f
movzx r9d, byte [rsp + 0x20]
mov rcx, r13
call fcn.140020270
mov r13, qword [0x1400f8600]
jmp 0x14001e0e0
cmp eax, 7
jne 0x14001df7e
movzx r9d, byte [rsp + 0x20]
mov rcx, r13
call fcn.1400204f0
mov r13, qword [0x1400f8600]
jmp 0x14001e0e0
cmp eax, 8
jne 0x14001e0e0
call fcn.1400930e4
mov edx, eax
mov r8d, 0xffffffff
mov dword [rbp + 0x1344], r8d
mov dword [rbp - 0x3c], eax
mov rcx, r15
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rbp + rcx*4 - 0x3c], edx
inc rcx
cmp rcx, 0x270
jb 0x14001dfa1
mov dword [rbp - 0x40], 0x270
mov eax, 0x40
mov rsi, 0xffffffffffffffff
lea rax, [rax - 1]
shr rsi, 1
cmp rsi, r8
ja 0x14001dfd3
mov r13, qword [0x1400f8600]
mov rdx, qword [0x1400f8608]
mov qword [rsp + 0x30], rdx
cmp r13, rdx
je 0x14001e0db
lea rcx, [r13 + 0x20]
mov qword [rsp + 0x28], rcx
cmp rcx, rdx
je 0x14001e0db
lea r14, [rax - 1]
lea r12, [r15 + 1]
xor ebx, ebx
xor edi, edi
test r15, r15
je 0x14001e054
nop
mov rcx, r14
shl rbx, cl
add rbx, rbx
nop dword [rax]
lea rcx, [rbp - 0x40]
call fcn.140020b60
mov eax, eax
cmp rax, rsi
ja 0x14001e030
or rbx, rax
mov rcx, r14
shl rdi, cl
add rdi, rdi
or rdi, rsi
cmp rdi, r15
jb 0x14001e020
xor edx, edx
mov rax, rdi
div r12
mov rcx, rax
xor edx, edx
mov rax, rbx
div r12
cmp rax, rcx
jb 0x14001e079
xor edx, edx
mov rax, rdi
div r12
cmp rdx, r15
jne 0x14001e015
xor edx, edx
mov rax, rbx
div r12
mov rcx, qword [rsp + 0x28]
cmp rdx, r15
je 0x14001e0b3
shl rdx, 5
add rdx, r13
cmp rcx, rdx
je 0x14001e0b3
movups xmm2, xmmword [rcx]
movups xmm3, xmmword [rcx + 0x10]
movups xmm0, xmmword [rdx]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rdx], xmm2
movups xmmword [rdx + 0x10], xmm3
mov r15, r12
add rcx, 0x20
mov qword [rsp + 0x28], rcx
cmp rcx, qword [rsp + 0x30]
jne 0x14001e011
mov r13, qword [0x1400f8600]
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x38]
mov byte [0x1400f864d], 1
mov edx, dword [0x1400f8650]
shl rdx, 5
add rdx, r13
mov rcx, r12
call fcn.1400102b0
nop
mov rdx, qword [r14 + 0x18]
cmp rdx, 0xf
jbe 0x14001e137
mov rcx, qword [r14]
inc rdx
cmp rdx, 0x1000
jb 0x14001e132
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001e26b
mov rcx, r8
call fcn.1400937a0
xor ebx, ebx
mov qword [r14 + 0x10], rbx
mov qword [r14 + 0x18], 0xf
mov byte [r14], bl
mov rdx, qword [rsi + 0x18]
cmp rdx, 0xf
jbe 0x14001e182
inc rdx
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x14001e17d
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x14001e277
mov rcx, r8
call fcn.1400937a0
mov rax, r12
mov byte [rsi], 0
mov qword [rsi + 0x18], 0xf
mov qword [rsi + 0x10], rbx
mov rcx, qword [rbp + 0x1350]
xor rcx, rsp
call fcn.140093780
add rsp, 0x1468
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov byte [0x1400f864c], 0
mov byte [0x1400f864d], 1
xorps xmm0, xmm0
movups xmmword [r12], xmm0
xor ebx, ebx
mov qword [r12 + 0x10], rbx
mov qword [r12 + 0x18], rbx
xor r8d, r8d
lea rdx, [0x1400d6d20]
mov rcx, r12
call fcn.140011930
nop
mov rdx, qword [r14 + 0x18]
cmp rdx, 0xf
jbe 0x14001e222
mov rcx, qword [r14]
inc rdx
cmp rdx, 0x1000
jb 0x14001e21d
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14001e26b
mov rcx, r8
call fcn.1400937a0
mov qword [r14 + 0x10], rbx
mov qword [r14 + 0x18], 0xf
mov byte [r14], 0
mov rdx, qword [rsi + 0x18]
cmp rdx, 0xf
jbe 0x14001e182
inc rdx
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x14001e17d
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
jmp 0x14001e174
call fcn.1400a1c3c
nop
call fcn.1400a1c3c
nop
call fcn.1400a1c3c
nop
call fcn.1400a1c3c
int3