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

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
mov rbp, rsp
mov rcx, rdx
xor r8d, 0x80000000
xor r9d, 0x80000000
sub r9d, r8d
cmp r9d, 0xffffffff
je 0x423360
lea edi, [r9 + 1]
mov r14d, 0x80000000
nop word cs:[rax + rax]
test r9d, r9d
mov r10d, 0
mov r11d, 0
je 0x42332e
mov eax, dword [rcx]
cmp eax, 0x270
jne 0x423210
mov edx, dword [rcx + 4]
mov rax, 0xfffffffffffffd90
nop dword [rax + rax]
and edx, 0x80000000
mov ebx, dword [rcx + rax*4 + 0x9c8]
mov esi, ebx
and esi, 0x7ffffffe
or esi, edx
shr esi, 1
mov edx, ebx
and ebx, 1
neg ebx
and ebx, 0x9908b0df
xor ebx, dword [rcx + rax*4 + 0xff8]
xor ebx, esi
mov dword [rcx + rax*4 + 0x1384], ebx
inc rax
jne 0x4231c0
mov eax, dword [rcx]
jmp 0x4232ed
cmp eax, 0x4e0
jb 0x4232ed
mov edx, dword [rcx + 0x9c4]
xor eax, eax
nop word cs:[rax + rax]
and edx, 0x80000000
mov esi, dword [rcx + rax*4 + 0x9c8]
mov ebx, esi
and ebx, 0x7ffffffe
or ebx, edx
shr ebx, 1
mov edx, esi
and esi, 1
neg esi
and esi, 0x9908b0df
xor esi, dword [rcx + rax*4 + 0xff8]
xor esi, ebx
mov dword [rcx + rax*4 + 4], esi
inc rax
cmp rax, 0xe3
jne 0x423230
mov edx, dword [rcx + 0xd50]
and edx, r14d
xor eax, eax
nop dword [rax]
mov esi, dword [rcx + rax*4 + 0xd54]
mov ebx, esi
and ebx, 0x7ffffffe
or ebx, edx
shr ebx, 1
mov edx, esi
and esi, 1
neg esi
and esi, 0x9908b0df
xor esi, dword [rcx + rax*4 + 4]
xor esi, ebx
mov dword [rcx + rax*4 + 0x390], esi
and edx, 0x80000000
inc rax
cmp rax, 0x18c
jne 0x423280
mov eax, dword [rcx + 4]
mov ebx, eax
and ebx, 0x7ffffffe
or ebx, edx
shr ebx, 1
and eax, 1
neg eax
and eax, 0x9908b0df
xor eax, dword [rcx + 0x634]
xor eax, ebx
mov dword [rcx + 0x9c0], eax
mov dword [rcx], 0
xor eax, eax
lea edx, [rax + 1]
mov dword [rcx], edx
mov eax, eax
mov eax, dword [rcx + rax*4 + 4]
mov edx, eax
shr edx, 0xb
and edx, dword [rcx + 0x1384]
xor edx, eax
mov eax, edx
shl eax, 7
and eax, 0x9d2c5680
xor eax, edx
mov edx, eax
shl edx, 0xf
and edx, 0xefc60000
xor edx, eax
mov r10d, edx
shr r10d, 0x12
xor r10d, edx
mov r11d, 0xffffffff
xor edx, edx
mov eax, r10d
div edi
mov esi, eax
xor edx, edx
mov eax, r11d
div edi
cmp esi, eax
jb 0x423352
xor edx, edx
mov eax, r11d
div edi
cmp edx, r9d
jne 0x423190
xor edx, edx
mov eax, r10d
div edi
mov eax, edx
jmp 0x4234d5
mov eax, dword [rcx]
cmp eax, 0x270
jne 0x4233c2
mov edx, dword [rcx + 4]
mov rax, 0xfffffffffffffd90
nop word cs:[rax + rax]
and edx, 0x80000000
mov edi, dword [rcx + rax*4 + 0x9c8]
mov ebx, edi
and ebx, 0x7ffffffe
or ebx, edx
shr ebx, 1
mov edx, edi
and edi, 1
neg edi
and edi, 0x9908b0df
xor edi, dword [rcx + rax*4 + 0xff8]
xor edi, ebx
mov dword [rcx + rax*4 + 0x1384], edi
inc rax
jne 0x423380
mov eax, dword [rcx]
jmp 0x42349d
cmp eax, 0x4e0
jb 0x42349d
mov edx, dword [rcx + 0x9c4]
xor eax, eax
nop word cs:[rax + rax]
and edx, 0x80000000
mov edi, dword [rcx + rax*4 + 0x9c8]
mov ebx, edi
and ebx, 0x7ffffffe
or ebx, edx
shr ebx, 1
mov edx, edi
and edi, 1
neg edi
and edi, 0x9908b0df
xor edi, dword [rcx + rax*4 + 0xff8]
xor edi, ebx
mov dword [rcx + rax*4 + 4], edi
inc rax
cmp rax, 0xe3
jne 0x4233e0
mov edx, 0x80000000
and edx, dword [rcx + 0xd50]
xor eax, eax
nop dword [rax + rax]
mov edi, dword [rcx + rax*4 + 0xd54]
mov ebx, edi
and ebx, 0x7ffffffe
or ebx, edx
shr ebx, 1
mov edx, edi
and edi, 1
neg edi
and edi, 0x9908b0df
xor edi, dword [rcx + rax*4 + 4]
xor edi, ebx
mov dword [rcx + rax*4 + 0x390], edi
and edx, 0x80000000
inc rax
cmp rax, 0x18c
jne 0x423430
mov eax, dword [rcx + 4]
mov ebx, eax
and ebx, 0x7ffffffe
or ebx, edx
shr ebx, 1
and eax, 1
neg eax
and eax, 0x9908b0df
xor eax, dword [rcx + 0x634]
xor eax, ebx
mov dword [rcx + 0x9c0], eax
mov dword [rcx], 0
xor eax, eax
lea edx, [rax + 1]
mov dword [rcx], edx
mov eax, eax
mov eax, dword [rcx + rax*4 + 4]
mov edx, eax
shr edx, 0xb
and edx, dword [rcx + 0x1384]
xor edx, eax
mov eax, edx
shl eax, 7
and eax, 0x9d2c5680
xor eax, edx
mov ecx, eax
shl ecx, 0xf
and ecx, 0xefc60000
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
add eax, r8d
xor eax, 0x80000000
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret