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

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x34
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], 0x26f
mov dword [ebp - 0x10], 0xe3
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x30], 0xe618257b
lea eax, [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
sub eax, 0x970316f4
je 0x10015349
jmp 0x10015168
mov eax, dword [ebp - 0x38]
sub eax, 0x9b3e3294
je 0x10015210
jmp 0x1001517b
mov eax, dword [ebp - 0x38]
sub eax, 0xe54dd428
je 0x10015290
jmp 0x1001518e
mov eax, dword [ebp - 0x38]
sub eax, 0xe618257b
je 0x100151f2
jmp 0x100151a1
mov eax, dword [ebp - 0x38]
sub eax, 0xf046f901
je 0x10015279
jmp 0x100151b4
mov eax, dword [ebp - 0x38]
sub eax, 0xfe524874
je 0x100152a5
jmp 0x100151c7
mov eax, dword [ebp - 0x38]
sub eax, 0x5806531c
je 0x100152c3
jmp 0x100151da
mov eax, dword [ebp - 0x38]
sub eax, 0x6e567c87
je 0x10015332
jmp 0x100151ed
jmp 0x100153aa
mov ecx, 0xe54dd428
mov eax, 0x9b3e3294
cmp dword [ebp - 0x14], 0xe3
cmovb ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], ecx
jmp 0x100153aa
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + ecx*4 + 0x9c4]
and eax, 0x80000000
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ecx + edx*4 + 0x9c8]
and ecx, 0x7fffffff
or eax, ecx
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
shr edx, 1
mov esi, dword [ebp - 0x18]
and esi, 1
xor eax, eax
mov ecx, 0x9908b0df
cmp esi, 0
cmovne eax, ecx
xor edx, eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
xor edx, dword [eax + ecx*4 + 0xff8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [ebp - 0x34]
mov dword [eax], 0xf046f901
jmp 0x100153aa
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
mov dword [eax], 0xe618257b
jmp 0x100153aa
mov dword [ebp - 0x1c], 0xe3
mov eax, dword [ebp - 0x34]
mov dword [eax], 0xfe524874
jmp 0x100153aa
mov ecx, 0x970316f4
mov eax, 0x5806531c
cmp dword [ebp - 0x1c], 0x26f
cmovb ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], ecx
jmp 0x100153aa
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax + ecx*4 + 0x9c4]
and eax, 0x80000000
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ecx + edx*4 + 0x9c8]
and ecx, 0x7fffffff
or eax, ecx
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
shr edx, 1
mov esi, dword [ebp - 0x20]
and esi, 1
xor eax, eax
mov ecx, 0x9908b0df
cmp esi, 0
cmovne eax, ecx
xor edx, eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x1c]
sub ecx, 0x270
xor edx, dword [eax + ecx*4 + 0x638]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [ebp - 0x34]
mov dword [eax], 0x6e567c87
jmp 0x100153aa
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x34]
mov dword [eax], 0xfe524874
jmp 0x100153aa
mov dword [ebp - 0x24], 0x26f
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x1380]
and eax, 0x80000000
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 4]
and ecx, 0x7fffffff
or eax, ecx
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
shr ecx, 1
mov esi, dword [ebp - 0x28]
and esi, 1
xor eax, eax
mov edx, 0x9908b0df
cmp esi, 0
cmovne eax, edx
xor ecx, eax
mov eax, dword [ebp - 0x2c]
xor ecx, dword [eax + 0x634]
mov eax, dword [ebp - 0x2c]
mov dword [eax + 0x9c0], ecx
mov eax, dword [ebp - 0x2c]
mov dword [eax], 0
add esp, 0x34
pop esi
pop ebp
ret
jmp 0x10015152