Function at 0x1400d00f0
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 ebp, 1
add cl, 0xff
mov esi, r15d
shl bp, cl
movzx edi, r15w
add bp, bp
dec bp
cmp qword [rax + 0x1388], r15
jbe 0x1400d031c
nop word [rax + rax]
mov r8d, dword [rax]
cmp r8d, 0x270
jne 0x1400d01a6
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 0x1400d0160
mov r8d, dword [rax]
jmp 0x1400d02af
cmp r8d, 0x4e0
jb 0x1400d02af
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 0x1400d01d0
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 0x1400d0230
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 0x1400d0140
mov rcx, qword [rax + 0x1398]
and r8w, bp
shl di, cl
inc rsi
or di, r8w
cmp rsi, qword [rax + 0x1388]
jb 0x1400d0140
add bp, bp
or bp, 1
cmp rsi, qword [rax + 0x1390]
jae 0x1400d04eb
mov ecx, dword [rax]
cmp ecx, 0x270
jne 0x1400d0393
lea r9, [rax + 8]
mov r10d, ecx
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 0x1400d0350
jmp 0x1400d047f
cmp ecx, 0x4e0
jb 0x1400d047f
lea r10, [rax + 0x9c4]
mov ebx, 0xe3
mov r11d, dword [r10]
nop
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 0x1400d03b0
lea r10, [rax + 0xd50]
mov ebx, 0x18c
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 - 0xd50]
xor edx, r8d
mov dword [r10 - 0x9c4], edx
sub rbx, 1
jne 0x1400d0402
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 dword [rax + 0x9c0], edx
mov dword [rax], r15d
mov ecx, dword [rax]
mov edx, dword [rax + rcx*4 + 4]
inc ecx
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 0x1400d0330
movzx ecx, byte [rax + 0x1398]
and r8w, bp
inc cl
inc rsi
shl di, cl
or di, r8w
cmp rsi, qword [rax + 0x1390]
jb 0x1400d0330
mov rbx, qword [rsp + 0x18]
movzx eax, di
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
pop r15
pop r14
ret