Function at 0x10015600
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], 0xbb340116
lea eax, [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
sub eax, 0x808f65fa
je 0x100157a3
jmp 0x10015648
mov eax, dword [ebp - 0x38]
sub eax, 0xbb340116
je 0x100156d2
jmp 0x1001565b
mov eax, dword [ebp - 0x38]
sub eax, 0xd7100203
je 0x100156f0
jmp 0x1001566e
mov eax, dword [ebp - 0x38]
sub eax, 0x3adfaeb
je 0x10015770
jmp 0x10015681
mov eax, dword [ebp - 0x38]
sub eax, 0x5760afb
je 0x10015812
jmp 0x10015694
mov eax, dword [ebp - 0x38]
sub eax, 0xb70b73a
je 0x10015759
jmp 0x100156a7
mov eax, dword [ebp - 0x38]
sub eax, 0x515422fd
je 0x10015829
jmp 0x100156ba
mov eax, dword [ebp - 0x38]
sub eax, 0x6150d409
je 0x10015785
jmp 0x100156cd
jmp 0x1001588a
mov ecx, 0x3adfaeb
mov eax, 0xd7100203
cmp dword [ebp - 0x14], 0xe3
cmovb ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], ecx
jmp 0x1001588a
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], 0xb70b73a
jmp 0x1001588a
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
mov dword [eax], 0xbb340116
jmp 0x1001588a
mov dword [ebp - 0x1c], 0xe3
mov eax, dword [ebp - 0x34]
mov dword [eax], 0x6150d409
jmp 0x1001588a
mov ecx, 0x515422fd
mov eax, 0x808f65fa
cmp dword [ebp - 0x1c], 0x26f
cmovb ecx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], ecx
jmp 0x1001588a
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], 0x5760afb
jmp 0x1001588a
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x34]
mov dword [eax], 0x6150d409
jmp 0x1001588a
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 0x10015632