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

Disassembly:
mov eax, 0x1005ad34
call fcn.1005a768
sub esp, 0x70
cmp byte [ebp + 0xc], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x4c], ecx
je 0x10004581
mov eax, dword [0x10076cfc]
test al, 1
jne 0x1000415e
or dword [0x10078094], 0xffffffff
or eax, 1
push ecx
push 0x1571
mov dword [0x10076cfc], eax
call fcn.10006cea
push 1
lea ecx, [ebp - 0x7c]
call fcn.10001c9a
xor ebx, ebx
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], 0x83c7730f
mov dword [ebp - 0x24], 0x8b5131d8
mov dword [ebp - 0x20], 0xa5223fa3
mov dword [ebp - 0x18], 0xffffffff
push 2
call fcn.10001c9a
push ecx
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 1
push eax
push ecx
mov dword [ebp - 0x1c], 0x3413f087
lea ecx, [ebp - 0x2c]
call fcn.1000511b
add esp, 0xc
lea edx, [ebp - 0x58]
push 0x32df
push 0x2e6c
push ecx
lea ecx, [ebp - 0x2c]
call fcn.10004e49
add esp, 0xc
mov dword [ebp - 0x18], ebx
jmp 0x100041ed
push ebx
push 0x2841
push 0x77b9
mov edx, 0x354f
mov ecx, 0x102d
call fcn.10004f95
add esp, 0xc
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x100041cd
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x1c]
cmp ecx, eax
je 0x10004204
xor eax, eax
inc eax
jmp 0x10004206
mov eax, ebx
cmp eax, dword [ebp - 0x18]
jl 0x1000422e
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
je 0x1000421c
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
push 0xfffffffffffffffa
pop ecx
mov dword [eax + 4], ecx
cmp dword [ebp - 0x1c], ecx
jne 0x1000422e
mov eax, ebx
jmp 0x10004231
xor eax, eax
inc eax
add eax, 0xffff
jne 0x10004241
cmp dword [ebp - 0x20], ebx
jne 0x10004241
mov eax, ebx
jmp 0x10004244
xor eax, eax
inc eax
cmp dword [ebp - 0x58], 0
mov dword [ebp - 0x18], eax
je 0x1000425f
push dword [ebp - 0x58]
call fcn.10042747
pop ecx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x7c], 0
je 0x1000427b
push dword [ebp - 0x7c]
call fcn.10042747
pop ecx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
cmp byte [0x10076c58], 0
jne 0x100044e4
mov dword [ebp - 0x48], 0x2db58e46
mov dword [ebp - 0x24], 0x7ad95e17
mov dword [ebp - 0x44], 1
mov dword [ebp - 0x40], 0xbe4438b
mov dword [ebp - 0x3c], 0x985a9576
mov dword [ebp - 0x24], 0x7166
cmp dword [ebp - 0x24], 0x740a
jle 0x10004303
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov eax, ebx
mov dword [ebp - 0x1c], 0x7222
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
or eax, edi
mov ecx, 0x10075b18
cdq
push edx
push eax
call fcn.10001b85
mov eax, dword [ebp - 0x20]
add eax, ebx
dec dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
jne 0x100042cf
inc ebx
push 0
mov dword [ebp - 0x18], ebx
cmp ebx, 0x7cf6
pop ebx
jl 0x100042c0
inc edi
cmp edi, 0xc09
jl 0x100042bd
mov dword [ebp - 0x38], 0xfffffff8
mov dword [ebp - 4], 2
cmp dword [ebp - 0x24], 0x6ed0
jge 0x10004329
mov edx, str.gguuvoq_poshr_uwmtpfogk
mov ecx, 0x10075b18
call fcn.100036dc
or dword [ebp - 4], 0xffffffff
push 4
lea ecx, [ebp - 0x70]
call fcn.10001c9a
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x28], 0x815898f
push 2
call fcn.10001c9a
mov byte [ebp - 4], 5
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x20], 0x7cbe
cmp dword [ebp - 0x20], 0x7ccb
jle 0x100043b0
mov dword [ebp - 0x1c], ebx
mov edi, ebx
mov eax, ebx
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
xor eax, edi
mov ecx, 0x10075b18
or eax, ebx
cdq
push edx
push eax
call fcn.10001b85
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x3a1b
jl 0x10004377
inc edi
push 0
pop ebx
cmp edi, 0x79d4
jl 0x1000436f
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x1572
jl 0x1000436d
mov byte [ebp - 4], 6
cmp dword [ebp - 0x20], 0x7af9
jge 0x1000440f
mov edx, str.zsygvrre_qdokutj_efev_azh_ilkx_fqczenov_blutr_ihbidpmrp_etgcujxd_xsaglmlvi
mov ecx, 0x10075b18
call fcn.100036dc
jmp 0x1000440f
push ecx
push ecx
lea eax, [ebp - 0x30]
mov dword [ebp - 4], 5
push eax
push ecx
lea edx, [ebp - 0x70]
call fcn.100045b7
lea eax, [ebp - 0x30]
xor dl, dl
push eax
lea ecx, [ebp - 0x64]
call fcn.100047bd
add esp, 0x14
lea edx, [ebp - 0x28]
mov ecx, 0x7730
push ebx
push 1
call fcn.1000411b
pop ecx
pop ecx
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x70]
push eax
push ecx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x38]
push eax
push ecx
push ecx
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x48]
call fcn.10006418
add esp, 0x28
cmp dword [ebp - 0x64], 0
je 0x1000448d
push dword [ebp - 0x64]
call fcn.10042747
pop ecx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x70], 0
je 0x100044a9
push dword [ebp - 0x70]
call fcn.10042747
pop ecx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
push ecx
push ecx
call fcn.100045e2
push 0x3943
mov dword [ebp - 0x24], 2
lea ecx, [ebp - 0x11]
mov byte [ebp - 0x11], bl
mov edx, 0x45ea
push ebx
call fcn.1000503f
add esp, 8
mov byte [ebp - 0x12], bl
lea ecx, [ebp - 0x12]
call fcn.100045f2
pop ecx
pop ecx
mov byte [0x10076c58], 1
mov eax, dword [0x10076d10]
cmp eax, 0x270
jne 0x10004530
mov edx, 0x10076d18
mov ecx, dword [edx - 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, dword [edx - 4]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, ecx
xor eax, dword [edx + 0x630]
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x100776d8
jl 0x100044f5
jmp 0x1000453c
cmp eax, 0x4e0
jb 0x10004541
call fcn.10006d25
mov eax, dword [0x10076d10]
mov edx, dword [eax*4 + 0x10076d14]
inc eax
mov dword [0x10076d10], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x10078094]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, dword [ebp - 0x4c]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
jmp 0x10004583
inc dword [edx]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret