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

Disassembly:
mov eax, 0x10063227
call fcn.10061bc4
sub esp, 0x118
cmp byte [ebp + 0xc], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x48], dl
mov dword [ebp - 0x58], edi
je 0x1003288c
cmp byte [ebp + 0x14], 0
je 0x1003287f
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push dword [eax]
call fcn.100118eb
jmp 0x100330d2
push 0
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
jmp 0x100330d2
test dl, dl
je 0x100330c7
mov eax, dword [0x1008235c]
xor ebx, ebx
inc ebx
mov dword [ebp - 0x74], edi
test bl, al
jne 0x100328bc
or dword [0x10082354], 0xffffffff
or eax, ebx
push ecx
push 0x1571
mov dword [0x1008235c], eax
call fcn.10034058
push 0xfffffffffffffff9
pop esi
push ecx
mov dword [ebp - 0x38], 0x8901
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x3c], 0x49c9fb37
mov edx, 0x42fe
mov dword [ebp - 0x14], esi
push 0x4f71
call fcn.10031f28
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x38], 0x8d383303
pop ecx
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x2fd2
mov eax, dword [ebp - 0x38]
pop ecx
setne dl
xor ecx, ecx
cmp eax, edx
setne cl
xor eax, eax
cmp ecx, ebx
setge al
xor edx, edx
lea ecx, [eax - 4]
mov eax, dword [ebp - 0x38]
cmp eax, ecx
mov ecx, dword [ebp - 0x14]
setge dl
cmp edx, ebx
sbb eax, eax
neg eax
sub ecx, eax
dec ecx
neg ecx
sbb ecx, ecx
xor ebx, ebx
inc ecx
cmp ecx, 0xffffffff
jge 0x10032972
cmp dword [ebp - 0x38], ebx
je 0x10032972
cmp dword [ebp - 0x14], ebx
je 0x10032972
lea eax, [ebp + 0xf]
mov byte [ebp + 0xf], bl
push eax
push 0x2ce2
xor dl, dl
mov ecx, 0xecb
call fcn.10031f47
pop ecx
push ebx
push 0x676d
push 0x31bb
mov ecx, 0x6056
call fcn.10033d84
add esp, 0x10
jmp 0x100329d9
mov dword [ebp - 0x14], 0x8cd54673
xor ecx, ecx
mov dword [ebp - 0x24], 0x279e56e6
mov dword [ebp - 0x1c], 0xdf47f28a
mov dword [ebp - 0x1c], 0xca862934
mov dword [ebp - 0x1c], 0x41adf890
cmp dword [ebp - 0x38], ebx
jne 0x100329c2
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
cmp eax, 1
setl cl
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp edx, eax
setg cl
mov dword [ebp - 0x1c], ecx
mov ecx, ebx
jmp 0x100329c3
inc ecx
mov eax, dword [ebp - 0x14]
add eax, ecx
je 0x100329d4
cmp dword [ebp - 0x24], ebx
je 0x100329d4
xor eax, eax
inc eax
jmp 0x100329d6
mov eax, ebx
mov dword [ebp - 0x1c], eax
push 1
lea ecx, [ebp - 0x70]
call fcn.10001ed7
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x80], 8
mov dword [ebp - 0x54], 0x53d42374
push 2
call fcn.10001ed7
mov byte [ebp - 4], 1
lea eax, [ebp - 0x70]
mov dword [ebp - 0x18], 0x7647f1a
mov edx, 0x2a16
mov dword [ebp - 0x18], 0xfffffffc
mov dword [ebp - 0x18], 0xffffffff
push eax
mov dword [ebp - 0x18], 5
push ecx
mov dword [ebp - 0x18], 0xc6548aa
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x98], 0xfffffff8
push 0x16f9
call fcn.100310a0
add esp, 0xc
mov dword [ebp - 0x20], ebx
jmp 0x10032a6b
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xd4]
mov dword [eax + ecx*4], 0xfffe
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10032a58
mov dword [ebp - 0x20], ebx
jmp 0x10032a87
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xfc], 0xec0dcee0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10032a76
mov eax, dword [ebp - 0x70]
mov dword [eax], 0xffffffea
jmp 0x10032b14
mov dword [ebp - 0x28], 0x24f84b81
mov dword [ebp - 0x18], 0x97515801
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], 0x7feae215
mov dword [ebp - 0x14], ebx
jmp 0x10032ac6
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x124], 0xaf8716b5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10032ab5
mov dword [ebp - 0x28], 0xfffffffe
jmp 0x10032aec
lea eax, [ebp - 0x80]
push 0x6dd2
push eax
lea edx, [ebp - 0x54]
call fcn.10031063
add esp, 0xc
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffed
lea eax, [ebp - 0x28]
push eax
je 0x10032ad5
lea eax, [ebp - 0x54]
push eax
push ecx
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0xd4]
call fcn.100330e3
mov eax, dword [ebp - 0x70]
add esp, 0xc
inc dword [eax]
mov eax, dword [ebp - 0x70]
cmp dword [eax], 0x15
je 0x10032a98
lea ecx, [ebp - 0xd4]
call fcn.10001f5a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.10001f5a
cmp byte [0x10080e30], 0
jne 0x10032f31
mov dword [ebp - 0x30], 0xffffffff
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x44], 0xaafbebf0
mov dword [ebp - 0xa8], 0xaaf19195
push 1
call fcn.10001ed7
mov dword [ebp - 4], 2
xor edx, edx
mov dword [ebp - 0xa0], 6
inc edx
mov dword [ebp - 0xb0], 0xae792f69
mov dword [ebp - 0xa4], 0xa6c6106a
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x9c], 0x552b
mov dword [ebp - 0x14], ebx
jmp 0x10032bb7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xf0], 0x32a2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10032ba6
mov dword [ebp - 0x14], ebx
jmp 0x10032bd5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc8]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10032bc2
mov dword [ebp - 0x3c], 0x2592
cmp dword [ebp - 0x3c], 0x2612
mov dword [ebp - 0x18], str.vngcy_oabgdxnas_fwk_jtgde_iehlyrtlv
jle 0x10032c58
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x24], 0x5a9
mov edi, ebx
mov eax, esi
lea ecx, [ebp - 0x114]
or eax, edi
cdq
push edx
push eax
call fcn.10002a23
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10032c1e
mov eax, dword [eax]
push eax
call fcn.10049a06
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x114]
call fcn.10002ff9
inc edi
cmp edi, 0x2049
jl 0x10032c02
dec esi
dec dword [ebp - 0x24]
jne 0x10032c00
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x142a
jl 0x10032bf6
push ebx
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x30], 7
je 0x10032e9f
push 2
pop esi
push esi
lea ecx, [ebp - 0x64]
call fcn.10001ed7
push esi
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 3
call fcn.10001ed7
push ecx
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 4
push eax
push ecx
push ecx
lea eax, [ebp - 0x64]
mov dword [ebp - 0x50], ebx
push eax
push ecx
mov dword [ebp - 0x94], 0xfc518f82
push ecx
mov dword [ebp - 0xac], 0xffffffff
call fcn.10031c08
lea eax, [ebp - 0x90]
push eax
lea edx, [ebp - 0x78]
call fcn.100331c7
mov eax, dword [ebp - 0x64]
xor edx, edx
add esp, 0x20
inc edx
mov dword [eax], esi
cmp dword [eax], ebx
jl 0x10032e12
mov dword [ebp - 0x24], 0x36fe
cmp dword [ebp - 0x24], 0x388a
jle 0x10032d1b
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, esi
mov ecx, 0x1007f138
cdq
idiv ebx
or edx, edi
mov eax, edx
cdq
push edx
push eax
call fcn.10002c1c
inc ebx
cmp ebx, 0x4078
jl 0x10032ce7
inc esi
push 0
pop ebx
cmp esi, 0x6c7f
jl 0x10032ce4
inc edi
cmp edi, 0x6071
jl 0x10032ce2
mov dword [ebp - 0x1c], 0xdf2e
mov byte [ebp - 4], 5
cmp dword [ebp - 0x24], 0x35a2
jge 0x10032d62
mov edx, str.ujc_hipxkgrl_avza_fzzj_yws_tsrhiouha_yto_eyuhweh_pcukzbo_dcqou_xcmgi_yddlzav_ckwnw_egxs
mov ecx, 0x1007f138
call fcn.100045d3
jmp 0x10032d62
mov dword [ebp - 4], 4
xor ecx, ecx
mov eax, dword [ebp - 0x64]
inc ecx
cmp dword [eax], ebx
je 0x10032d91
lea eax, [ebp - 0x29]
mov byte [ebp - 0x29], bl
push eax
push ecx
push 0x6024
push ecx
push ecx
mov edx, 0x5358
call fcn.10030fec
add esp, 0x14
jmp 0x10032dad
push ecx
push ecx
lea eax, [ebp - 0x90]
mov dword [ebp - 0x7c], ecx
push eax
push 0xa9d
lea ecx, [ebp - 0x7c]
call fcn.10033d84
add esp, 0x10
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, 0xed16
mov eax, dword [ebp - 0xe8]
setle cl
xor edx, edx
cmp ecx, 1
setg dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x44], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x50]
imul eax, dword [esi + 4]
cmp eax, 0x94be3d0e
setne cl
xor edx, edx
inc edx
cmp edx, ecx
sbb eax, eax
inc eax
cmp eax, 0x24ad
jle 0x10032e01
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x64]
mov dword [esi + 4], 0x9b8db370
dec dword [eax]
jmp 0x10032cc8
push edx
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0xc8]
push eax
push 0x67de
lea eax, [ebp - 0x90]
push eax
push ebx
push 0x517e
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x30]
push eax
push edx
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0xac]
push 0x5cab
push eax
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x50]
call fcn.100310cf
add esp, 0x48
lea ecx, [ebp - 0x90]
call fcn.10001f5a
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 2
call fcn.10001f5a
inc dword [ebp - 0x30]
jmp 0x10032c5b
cmp dword [ebp - 0x3c], 0x2422
jge 0x10032eb1
push dword [ebp - 0x18]
call fcn.10049a06
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc8]
call fcn.10001f5a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ecx
push eax
call fcn.10034058
push 1
push 0x7437
push 0x7acc
push 0x17cf
push 0x6cb3
push 0x269d
push ebx
push 0x2594
push 0x4d41
push 0x13c1
push 0x1d05
push 0x241c
push 0x12a3
push 0x7667
push ebx
push 0x7f53
push 0x10080e30
push 0x798a
mov edx, 0x13f8
mov ecx, 0x2855
call fcn.100310cf
mov edi, dword [ebp - 0x58]
add esp, 0x48
push dword [ebp + 0xc]
movdqa xmm0, xmmword [str._b_b_b_b_t_t_t_t]
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x14], ebx
push eax
mov dword [ebp - 0x18], 0xfffffff8
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x18], 0x62bb2c59
mov dword [ebp - 0x18], 0x2f1e5c8a
push ebx
movdqu xmmword [ebp - 0xe4], xmm0
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], ebx
call fcn.10001fc0
xor ecx, ecx
mov dword [ebp - 4], 9
mov dword [ebp - 0x14], ebx
inc ecx
jmp 0x10032fa1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x34], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10032f97
mov dword [ebp - 0x14], ebx
jmp 0x1003301d
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x4c], 2
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], 0xcedb7758
mov dword [ebp - 0x18], 0x78cca699
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x34], ebx
je 0x10032ff4
mov eax, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x34]
mov eax, dword [ebp - 0x34]
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setg dl
sub eax, 0xd035
imul eax, edx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x4c], ebx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x34]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
push ecx
mov dword [ebp + eax*4 - 0x34], ecx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x4c]
call fcn.10031080
inc dword [ebp - 0x14]
pop ecx
pop ecx
cmp dword [ebp - 0x14], ebx
jle 0x10032fab
lea ecx, [ebp - 0xbc]
call fcn.10001f5a
mov eax, dword [0x10080fd0]
cmp eax, 0x270
jne 0x10033079
mov edx, 0x10080fd8
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, 0x10081998
jl 0x1003303e
jmp 0x10033085
cmp eax, 0x4e0
jb 0x1003308a
call fcn.10034093
mov eax, dword [0x10080fd0]
mov ecx, dword [eax*4 + 0x10080fd4]
inc eax
mov dword [0x10080fd0], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x10082354]
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 dword [edi], eax
jmp 0x100330d2
push 0x632
call dword [sym.imp.USER32.dll_MessageBeep]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret