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

Disassembly:
mov eax, 0x1005d224
call fcn.1005b9d8
sub esp, 0x6c
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x14], dl
mov dword [ebp - 0x48], ecx
je 0x10039406
cmp byte [ebp + 8], 0
je 0x100393fc
mov eax, dword [ebp + 0x14]
cmp byte [eax], 0
je 0x10039777
push 0
push 0x57ef
push 0x6a26
call fcn.10039268
add esp, 0xc
jmp 0x10039777
mov eax, dword [ebp + 0xc]
inc dword [eax]
jmp 0x10039777
test dl, dl
je 0x10039416
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
dec dword [eax]
jmp 0x10039777
xor esi, esi
push 2
mov dword [ebp + 0x10], esi
pop edi
jmp 0x1003942e
mov eax, dword [ebp + 0x10]
mov dword [ebp + eax*4 - 0x64], 0xffffffff
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], edi
jl 0x10039420
mov dword [ebp + 0x10], esi
jmp 0x10039446
mov eax, dword [ebp + 0x10]
mov dword [ebp + eax*4 - 0x54], 0x801897a4
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], edi
jl 0x10039438
push 0x6134
push 0xdbe
push 0x2431
push 0x72a6
xor ebx, ebx
mov edx, 0x32bf
inc ebx
mov ecx, 0x627d
push ebx
push 0x66ab
push 0x52d7
push 0x4e63
push 0x773a
push 0x7bb7
push esi
push 0x5690
push 0x35a4
push 0x1f59
push 0x65b8
push esi
push 0x402d
call fcn.1003a618
add esp, 0x44
mov dword [ebp - 0x50], ebx
cmp dword [ebp - 0x50], esi
jl 0x100394bb
cmp dword [ebp - 0x54], esi
jne 0x100394bb
dec dword [ebp - 0x50]
jns 0x100394b1
mov eax, dword [0x1025a838]
test al, 1
jne 0x100394dd
or dword [0x1025bbc4], 0xffffffff
or eax, ebx
push ecx
push 0x1571
mov dword [0x1025a838], eax
call fcn.1003abad
mov dword [ebp - 0x24], 0xfea
cmp dword [ebp - 0x24], 0x118b
jle 0x1003954c
mov eax, esi
mov dword [ebp - 0x20], esi
mov edi, eax
mov dword [ebp - 0x1c], 0x1935
mov eax, esi
mov dword [ebp + 0x10], esi
mov ebx, edi
mov dword [ebp - 0x28], esi
xor ebx, eax
mov eax, ebx
mov ecx, 0x10077e58
or eax, esi
cdq
push edx
push eax
call fcn.100030bc
inc esi
cmp esi, 0x2e1e
jl 0x10039507
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp + 0x10], eax
push 0
pop esi
cmp eax, 0x217b
jl 0x10039500
dec edi
dec dword [ebp - 0x1c]
jne 0x100394fb
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x2a7e
jl 0x100394f2
push 2
xor ebx, ebx
pop edi
inc ebx
mov dword [ebp - 0x2c], 0xfa860b4f
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x34], 0x7bf0b96c
mov dword [ebp - 0x38], 9
mov dword [ebp - 0x44], 0xffffffff
push ebx
call fcn.10003233
mov dword [ebp - 4], esi
lea eax, [ebp - 0x78]
mov dword [ebp - 0x30], 0x2703
lea ecx, [ebp - 0x4c]
push eax
mov dword [ebp - 0x18], 4
xor dl, dl
mov dword [ebp - 0x40], 0x39bb
mov dword [ebp - 0x3c], 0x7fae0cd5
push 0xb0e
call fcn.10038e9b
pop ecx
pop ecx
inc dword [ebp - 0x18]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x38]
push eax
push 0x55d3
push ecx
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x18]
push 0x7ad1
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x44]
call fcn.1003a5d0
add esp, 0x28
lea ecx, [ebp - 0x78]
call fcn.100032b6
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0xe5f
jge 0x10039600
mov edx, str.pzstsj_vyobcrzf_vdxuur_yag
mov ecx, 0x10077e58
call fcn.1000530a
or dword [ebp - 4], 0xffffffff
cmp byte [0x1025a682], 0
jne 0x100396ae
mov dword [ebp + 0x10], esi
jmp 0x1003964c
mov eax, dword [ebp + 0x10]
mov dword [ebp + eax*4 - 0x6c], 0xffffffff
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], edi
jl 0x1003963e
mov dword [ebp + 0x10], esi
jmp 0x10039664
mov eax, dword [ebp + 0x10]
mov dword [ebp + eax*4 - 0x5c], 0x801897a4
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], edi
jl 0x10039656
push 0x2e1f
push 0x52d5
push 0x6e05
xor cl, cl
call fcn.10038831
add esp, 0xc
mov dword [ebp - 0x58], ebx
cmp dword [ebp - 0x58], esi
jl 0x10039694
cmp dword [ebp - 0x5c], esi
jne 0x10039694
dec dword [ebp - 0x58]
jns 0x1003968a
push ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.1003abad
push esi
push 0x1025a682
call fcn.10038cfb
pop ecx
pop ecx
push 0x4ce8
push ecx
push 0x4090
push 0x38be
sub esp, 0x14
mov edx, 0x7fa0
push 0x6d7c
push 0x2e6e
push esi
sub esp, 0x10
call fcn.10038a6e
mov eax, dword [0x1025a840]
add esp, 0x40
cmp eax, 0x270
jne 0x10039728
mov edx, 0x1025a848
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, dword [edx + 0x630]
xor eax, ecx
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x1025b208
jl 0x100396ed
jmp 0x10039734
cmp eax, 0x4e0
jb 0x10039739
call fcn.1003abe8
mov eax, dword [0x1025a840]
mov ecx, dword [eax*4 + 0x1025a844]
inc eax
mov dword [0x1025a840], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x1025bbc4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
mov ecx, dword [ebp - 0x48]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret