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

Disassembly:
mov eax, 0x10143b3a
call fcn.1014399c
sub esp, 0x98
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x1c], 0xfffffff7
push edi
inc ebx
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x2c], 2
lea ecx, [ebp - 0x70]
push ebx
call fcn.100141a5
xor esi, esi
mov dword [ebp - 0x20], 0x283bc1b0
push 3
mov dword [ebp - 0x14], esi
pop edi
jmp 0x10015e77
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x90], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10015e6a
mov dword [ebp - 0x14], esi
jmp 0x10015e8d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10015e81
push 2
mov dword [ebp - 0x1c], esi
pop ecx
jmp 0x10015eee
mov dword [ebp - 0x14], 0xfd4914d2
mov dword [ebp - 0x14], esi
jmp 0x10015eb7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x90], 0xc7555b7c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10015ea6
mov dword [ebp - 0x14], esi
jmp 0x10015ee6
mov dword [ebp - 0x18], 0x14173bf3
mov dword [ebp - 0x18], esi
jmp 0x10015ede
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x90], 0x8872fa4
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10015ecd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jle 0x10015ec1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jle 0x10015e9a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x70], esi
je 0x10015f0d
push dword [ebp - 0x70]
call fcn.10123626
pop ecx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov eax, dword [0x105d9dec]
test bl, al
jne 0x10015f2f
or dword [0x105d9de4], 0xffffffff
or eax, ebx
push ecx
push 0x1571
mov dword [0x105d9dec], eax
call fcn.10016cf6
push 8
pop ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
jmp 0x10015f54
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x24], 0x4a8c6a53
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10015f46
mov dword [ebp - 0x38], esi
cmp dword [ebp - 0x38], esi
jl 0x10015fb0
mov dword [ebp - 0x28], 0xbe92e3f9
mov eax, dword [ebp - 0x38]
cmp dword [ebp + eax*4 - 0x24], esi
je 0x10015f78
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax*4 - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax*4 - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax*4 - 0x24]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax*4 - 0x24]
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x38], ebx
jne 0x10015fa6
mov eax, dword [ebp - 0x38]
cmp dword [ebp + eax*4 - 0x24], esi
mov eax, ebx
jne 0x10015fa8
mov eax, esi
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x38]
jns 0x10015f61
mov dword [ebp - 0x18], 0xfffffff1
cmp dword [ebp - 0x18], ecx
jle 0x10015fe6
mov dword [ebp - 0x20], 0xbb000e2e
xor edx, edx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setl dl
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 8
jg 0x10015fbc
cmp byte [0x105d883d], 0
jne 0x10016257
mov dword [ebp - 0x18], 0x42eb90da
lea ecx, [ebp - 0x84]
push 4
call fcn.100141a5
mov dword [ebp - 4], esi
lea eax, [ebp - 0x90]
mov dword [ebp - 0x2c], 0xa7221ebc
lea ecx, [ebp - 0x58]
push dword [ebp - 0x2c]
xorps xmm0, xmm0
mov dword [ebp - 0x58], esi
push eax
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x54], esi
push eax
push esi
movdqu xmmword [ebp - 0xa0], xmm0
mov dword [ebp - 0x50], esi
call fcn.10015178
mov byte [ebp - 4], bl
mov dword [ebp - 0x20], 0x7736
mov dword [ebp - 0x1c], esi
jmp 0x1001605d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x84]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x1001604e
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], 0xfffffffb
jg 0x10016211
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x74], eax