Function at 0x1009aa20
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 8], 0x80000000
mov dword [ebp - 0x10], 0x7fffffff
mov dword [ebp - 0x14], 6
mov dword [ebp - 0xc], 5
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
jmp 0x1009aa5e
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xde
jae 0x1009aabc
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + ecx*4]
and eax, 0x80000000
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx + ecx*4 + 4]
and ecx, 0x7fffffff
or eax, ecx
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
shr edx, 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x3c]
xor edx, dword [ecx + eax*4 + 0x634]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + eax*4 + 4]
and eax, 1
imul eax, eax, 0x9908b0df
xor edx, eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov dword [eax + ecx*4], edx
jmp 0x1009aa55
mov dword [ebp - 0x24], 0xde
jmp 0x1009aace
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 0xe3
jae 0x1009ab2d
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + edx*4]
and ecx, 0x80000000
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + edx*4 + 4]
and edx, 0x7fffffff
or ecx, edx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
shr eax, 1
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x3c]
xor eax, dword [edx + ecx*4 + 0x634]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx + ecx*4 + 4]
and ecx, 1
imul ecx, ecx, 0x9908b0df
xor eax, ecx
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + edx*4], eax
jmp 0x1009aac5
mov dword [ebp - 0x2c], 0xe3
jmp 0x1009ab3f
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0x26f
jae 0x1009ab9d
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + eax*4]
and edx, 0x80000000
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + eax*4 + 4]
and eax, 0x7fffffff
or edx, eax
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
xor ecx, dword [eax + edx*4 - 0x38c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + edx*4 + 4]
and edx, 1
imul edx, edx, 0x9908b0df
xor ecx, edx
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
mov dword [edx + eax*4], ecx
jmp 0x1009ab36
mov dword [ebp - 0x34], 0x26f
jmp 0x1009abaf
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x26f
jae 0x1009ac0d
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + ecx*4]
and eax, 0x80000000
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx + ecx*4 + 4]
and ecx, 0x7fffffff
or eax, ecx
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
shr edx, 1
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
xor edx, dword [ecx + eax*4 - 0x38c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + eax*4 + 4]
and eax, 1
imul eax, eax, 0x9908b0df
xor edx, eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov dword [eax + ecx*4], edx
jmp 0x1009aba6
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x9bc]
and edx, 0x80000000
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
and ecx, 0x7fffffff
or edx, ecx
mov dword [ebp - 4], edx
mov edx, dword [ebp - 4]
shr edx, 1
mov eax, dword [ebp - 0x3c]
xor edx, dword [eax + 0x630]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx]
and eax, 1
imul eax, eax, 0x9908b0df
xor edx, eax
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x9bc], edx
mov edx, dword [ebp - 0x3c]
mov dword [edx + 0x9c0], 0
mov esp, ebp
pop ebp
ret