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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
push r15
mov rax, rcx
xor r15d, r15d
movzx ecx, byte [rcx + 0x1398]
mov edx, 1
add cl, 0xff
mov edi, r15d
shl edx, cl
mov ebp, r15d
lea esi, [rdx*2 - 1]
cmp qword [rax + 0x1388], rdi
jbe 0x14002e749
nop dword [rax]
mov r8d, dword [rax]
cmp r8d, 0x270
jne 0x14002e5d6
lea r9, [rax + 8]
mov r10d, r8d
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [r9 - 4]
xor r8d, dword [r9]
lea r9, [r9 + 4]
btr r8d, 0x1f
xor r8d, dword [r9 - 8]
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [r9 + 0x62c]
xor edx, r8d
mov dword [r9 + 0x9b8], edx
sub r10, 1
jne 0x14002e590
mov r8d, dword [rax]
jmp 0x14002e6df
cmp r8d, 0x4e0
jb 0x14002e6df
lea r10, [rax + 0x9c4]
mov r11d, 0xe3
mov ebx, dword [r10]
nop dword [rax]
nop word [rax + rax]
mov ecx, ebx
mov ebx, dword [r10 + 4]
mov r8d, ebx
lea r10, [r10 + 4]
xor r8d, ecx
btr r8d, 0x1f
xor r8d, ecx
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [r10 + 0x630]
xor edx, r8d
mov dword [r10 - 0x9c4], edx
sub r11, 1
jne 0x14002e600
lea r10, [rax + 0xd50]
mov r11d, 0x18c
mov ebx, dword [r10]
nop dword [rax]
nop word [rax + rax]
mov ecx, ebx
mov ebx, dword [r10 + 4]
mov r8d, ecx
lea r10, [r10 + 4]
xor r8d, ebx
btr r8d, 0x1f
xor r8d, ecx
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [r10 - 0xd50]
xor edx, r8d
mov dword [r10 - 0x9c4], edx
sub r11, 1
jne 0x14002e660
mov ecx, dword [rax + 0x1380]
mov r8d, ecx
xor r8d, dword [rax + 4]
btr r8d, 0x1f
xor r8d, ecx
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rax + 0x634]
xor edx, r8d
mov r8d, r15d
mov dword [rax + 0x9c0], edx
mov dword [rax], r15d
mov ecx, r8d
mov edx, dword [rax + rcx*4 + 4]
lea ecx, [r8 + 1]
mov dword [rax], ecx
mov ecx, edx
shr ecx, 0xb
and ecx, dword [rax + 0x1384]
xor edx, ecx
mov ecx, edx
and ecx, 0xff3a58ad
shl ecx, 7
xor edx, ecx
mov ecx, edx
and ecx, 0xffffdf8c
shl ecx, 0xf
xor edx, ecx
mov r8d, edx
shr r8d, 0x12
xor r8d, edx
cmp r8d, dword [rax + 0x13a0]
ja 0x14002e570
mov rcx, qword [rax + 0x1398]
and r8d, esi
shl edi, cl
inc rbp
or edi, r8d
cmp rbp, qword [rax + 0x1388]
jb 0x14002e570
add esi, esi
or esi, 1
cmp rbp, qword [rax + 0x1390]
jae 0x14002e92c
nop dword [rax + rax]
mov r8d, dword [rax]
cmp r8d, 0x270
jne 0x14002e7c6
lea r9, [rax + 8]
mov r10d, r8d
nop dword [rax]
nop word [rax + rax]
mov r8d, dword [r9 - 4]
xor r8d, dword [r9]
lea r9, [r9 + 4]
btr r8d, 0x1f
xor r8d, dword [r9 - 8]
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [r9 + 0x62c]
xor edx, r8d
mov dword [r9 + 0x9b8], edx
sub r10, 1
jne 0x14002e780
mov r8d, dword [rax]
jmp 0x14002e8c0
cmp r8d, 0x4e0
jb 0x14002e8c0
lea r10, [rax + 0x9c4]
mov ebx, 0xe3
mov r11d, dword [r10]
mov ecx, r11d
mov r11d, dword [r10 + 4]
mov r8d, ecx
lea r10, [r10 + 4]
xor r8d, r11d
btr r8d, 0x1f
xor r8d, ecx
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [r10 + 0x630]
xor edx, r8d
mov dword [r10 - 0x9c4], edx
sub rbx, 1
jne 0x14002e7e2
lea r10, [rax + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop dword [rax]
nop dword [rax + rax]
mov ecx, r11d
mov r11d, dword [r10 + 4]
mov r8d, ecx
lea r10, [r10 + 4]
xor r8d, r11d
btr r8d, 0x1f
xor r8d, ecx
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [r10 - 0xd50]
xor edx, r8d
mov dword [r10 - 0x9c4], edx
sub rbx, 1
jne 0x14002e840
mov ecx, dword [rax + 0x1380]
mov r8d, ecx
xor r8d, dword [rax + 4]
btr r8d, 0x1f
xor r8d, ecx
mov ecx, r8d
and cl, 1
neg cl
sbb edx, edx
shr r8d, 1
and edx, 0x9908b0df
xor edx, dword [rax + 0x634]
xor edx, r8d
mov r8d, r15d
mov dword [rax + 0x9c0], edx
mov dword [rax], r15d
mov ecx, r8d
mov edx, dword [rax + rcx*4 + 4]
lea ecx, [r8 + 1]
mov dword [rax], ecx
mov ecx, edx
shr ecx, 0xb
and ecx, dword [rax + 0x1384]
xor edx, ecx
mov ecx, edx
and ecx, 0xff3a58ad
shl ecx, 7
xor edx, ecx
mov ecx, edx
and ecx, 0xffffdf8c
shl ecx, 0xf
xor edx, ecx
mov r8d, edx
shr r8d, 0x12
xor r8d, edx
cmp r8d, dword [rax + 0x13a4]
ja 0x14002e760
movzx ecx, byte [rax + 0x1398]
and r8d, esi
inc cl
inc rbp
shl edi, cl
or edi, r8d
cmp rbp, qword [rax + 0x1390]
jb 0x14002e760
mov rbx, qword [rsp + 0x18]
mov eax, edi
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
pop r15
pop r14
ret