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

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0xc
mov eax, 1
mov dword [ebp - 0xc], 1
mov eax, 2
mov dword [ebp - 0x10], 2
mov eax, dword [0x577ea8]
cmp eax, 0x270
jne 0x48993c
mov eax, 0
mov dword [0x577ea8], 0
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0xc]
dec edi
mov eax, dword [eax + edi*4]
and eax, 0x80000000
push eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0x10]
dec edi
mov eax, dword [eax + edi*4]
and eax, 0x7fffffff
pop edx
xchg edx, eax
or eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
dec eax
add eax, 0x18d
push edx
mov edx, 0x270
mov ecx, edx
cdq
idiv ecx
mov eax, edx
pop edx
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
and eax, 1
cmp eax, 0
je 0x48985b
mov eax, dword [ebp - 0x14]
sar eax, 1
push eax
pop edx
xchg edx, eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0x10]
dec edi
mov eax, dword [eax + edi*4]
xchg edx, eax
xor eax, edx
xor eax, 0x9908b0df
mov edx, eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0xc]
dec edi
mov dword [eax + edi*4], edx
jmp 0x489881
mov eax, dword [ebp - 0x14]
sar eax, 1
push eax
pop edx
xchg edx, eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0x10]
dec edi
mov eax, dword [eax + edi*4]
xchg edx, eax
xor eax, edx
mov edx, eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0xc]
dec edi
mov dword [eax + edi*4], edx
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
cmp eax, 0x270
jne 0x4897da
mov eax, 0x18d
mov dword [ebp - 0xc], 0x18d
mov eax, 0x270
mov dword [ebp - 0x10], 0x270
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0x10]
dec edi
mov eax, dword [eax + edi*4]
and eax, 0x80000000
push eax
mov eax, dword [0x577eac]
mov eax, dword [eax]
and eax, 0x7fffffff
pop edx
xchg edx, eax
or eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
and eax, 1
cmp eax, 0
je 0x489916
mov eax, dword [ebp - 0x14]
sar eax, 1
push eax
pop edx
xchg edx, eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0xc]
dec edi
mov eax, dword [eax + edi*4]
xchg edx, eax
xor eax, edx
xor eax, 0x9908b0df
mov edx, eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0x10]
dec edi
mov dword [eax + edi*4], edx
jmp 0x48993c
mov eax, dword [ebp - 0x14]
sar eax, 1
push eax
pop edx
xchg edx, eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0xc]
dec edi
mov eax, dword [eax + edi*4]
xchg edx, eax
xor eax, edx
mov edx, eax
mov eax, dword [0x577eac]
mov edi, dword [ebp - 0x10]
dec edi
mov dword [eax + edi*4], edx
mov eax, dword [0x577ea8]
inc eax
mov dword [0x577ea8], eax
mov eax, dword [0x577eac]
mov edi, dword [0x577ea8]
dec edi
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
sar eax, 0xb
mov edx, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
shl eax, 7
and eax, 0x9d2c5680
mov edx, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
shl eax, 0xf
and eax, 0xefc60000
mov edx, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
sar eax, 0x12
mov edx, dword [ebp - 0x14]
xor eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
leave
ret