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

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 8], rbx
mov ebx, 1
mov qword [rax + 0x18], rsi
mov qword [rax - 0x20], r14
mov r14, rcx
mov qword [rax - 0x28], r15
mov ecx, 0xffffffff
lea rax, [rdx - 1]
mov r15, rdx
mov esi, ecx
cmp rcx, rax
jae 0x1400eda30
shl rsi, 0x20
inc ebx
or rsi, rcx
cmp rsi, rax
jb 0x1400eda22
mov r9d, ebx
mov qword [rsp + 0x58], r12
mov r8, r15
lea rdx, [rsp + 0x20]
mov rcx, r14
call fcn.140102990
mov r8, qword [rsp + 0x20]
mov rcx, r8
and rcx, rsi
cmp rcx, r15
jae 0x1400edc78
xor edx, edx
mov rax, rsi
sub rax, r15
inc rax
div r15
mov r12, rdx
cmp rcx, rdx
jae 0x1400edc78
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x50], r13
lea r13d, [rbx - 1]
nop dword [rax]
mov rcx, r14
call fcn.1401027c0
mov rdi, rax
mov ebp, r13d
test r13d, r13d
je 0x1400edc48
nop word [rax + rax]
mov r9, qword [r14]
shl rdi, 0x20
mov ecx, dword [r9]
cmp ecx, 0x270
jne 0x1400edb13
lea rcx, [r9 + 8]
mov r10d, 0x270
nop dword [rax]
mov r8d, dword [rcx - 4]
xor r8d, dword [rcx]
lea rcx, [rcx + 4]
btr r8d, 0x1f
xor r8d, dword [rcx - 8]
mov eax, r8d
and al, 1
neg al
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rcx + 0x62c]
xor edx, r8d
mov dword [rcx + 0x9b8], edx
sub r10, 1
jne 0x1400edad0
mov ecx, dword [r9]
jmp 0x1400edbf5
cmp ecx, 0x4e0
jb 0x1400edbf5
lea r10, [r9 + 0x9c4]
mov r11d, 0xe3
mov ebx, dword [r10]
nop
mov eax, ebx
mov r8, r10
mov ebx, dword [r10 + 4]
mov edx, eax
xor edx, ebx
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub r11, 1
jne 0x1400edb30
lea r10, [r9 + 0xd50]
mov r11d, 0x18c
mov ebx, dword [r10]
nop dword [rax]
mov eax, ebx
mov r8, r10
mov ebx, dword [r10 + 4]
add r10, 4
mov edx, ebx
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [r8 - 0xd4c]
mov dword [r8 - 0x9c0], ecx
sub r11, 1
jne 0x1400edb80
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [r9 + 0x634]
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], r11d
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and edx, 0xffffdf8c
shl edx, 0xf
mov ecx, edx
xor rcx, rax
mov rax, rcx
shr rax, 0x12
xor rax, rcx
or rdi, rax
mov eax, 0xffffffff
add ebp, eax
jne 0x1400edab0
mov rax, r15
mul rdi
mov r8, rax
mov qword [rsp + 0x20], rax
and rax, rsi
mov qword [rsp + 0x28], rdx
cmp rax, r12
jb 0x1400eda90
mov r13, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x78]
jmp 0x1400edc7d
mov rdx, qword [rsp + 0x28]
vmovups xmm0, xmmword [rsp + 0x20]
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x70]
popcnt rcx, rsi
mov rsi, qword [rsp + 0x80]
mov ecx, ecx
test cl, cl
je 0x1400edccb
cmp cl, 0x40
jb 0x1400edcbf
movzx eax, cl
and eax, 0x3f
shrx rax, rdx, rax
add rsp, 0x68
ret
shrd r8, rdx, cl
mov rax, r8
add rsp, 0x68
ret
vmovq rax, xmm0
add rsp, 0x68
ret