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

Disassembly:
mov eax, 0x1005ecb3
call fcn.1005dc80
sub esp, 0x74
cmp byte [ebp + 0x14], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, edx
mov byte [ebp - 0x14], cl
je 0x10020382
cmp byte [ebp + 0x10], 0
je 0x100202ee
xor ebx, ebx
mov byte [ebp + 0x17], bl
mov dword [ebp - 0x28], 0x68df
cmp dword [ebp - 0x28], 0x6b8c
jle 0x10020242
xor esi, esi
mov edi, ebx
inc esi
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov edx, ebx
mov dword [ebp - 0x24], ebx
add eax, edi
xor eax, edx
xor eax, ecx
lea ecx, [ebp - 0x80]
cdq
push edx
push eax
call fcn.10001b3f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100201fc
mov eax, dword [eax]
push eax
call fcn.10047293
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x80]
call fcn.1001084f
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
inc edx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edx
cmp edx, 0x36ea
jl 0x100201e1
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x2191
jl 0x100201dc
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x421d
jl 0x100201d7
inc edi
cmp edi, 0x3561
jl 0x100201d2
cmp byte [ebp + 0x17], bl
je 0x1002024f
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
cmp dword [ebp - 0x28], 0x6524
jge 0x10020263
push str.tjtpx_qyd_yxorvxdf_ejrj_janney_fsizwgk_ezkp_qud_ltdjwgrl_pevsleb_qcjhih_imrw_nymboz_hlmdivyxc
call fcn.10047293
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp + 0x14], 0x245
cmp dword [ebp + 0x14], 0x378
jle 0x100202b0
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x30], ebx
mov ecx, ebx
lea eax, [edi + esi]
sar eax, cl
mov ecx, 0x10079ad8
cdq
push edx
push eax
call fcn.1000fde8
inc ebx
cmp ebx, 0x38dc
jl 0x1002027e
inc edi
push 0
pop ebx
cmp edi, 0x4663
jl 0x1002027b
inc esi
cmp esi, 0x48dd
jl 0x10020279
mov dword [ebp - 4], 2
cmp dword [ebp + 0x14], 0x1f7
jge 0x100202cf
mov edx, str.taopagsao_gudzbft_yjdjpadtl_sncf_yrazukenu
mov ecx, 0x10079ad8
call fcn.10012b8c
jmp 0x1002073c
mov dword [ebp + 0x14], 0x2356
cmp dword [ebp + 0x14], 0xf51
jge 0x1002037a
lea eax, [ebp - 0x40]
mov ecx, 0x10079bf8
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1001d0cf
mov ecx, eax
call fcn.1001d0cf
mov ecx, eax
call fcn.1001d0cf
mov ecx, eax
call fcn.1001d0cf
mov ecx, eax
call fcn.1001d0cf
mov ecx, dword [ebp - 0x34]
imul ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
lea edx, [ecx + eax*2]
mov ecx, dword [ebp - 0x3c]
imul ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
lea eax, [ecx + eax*2]
cmp edx, eax
jne 0x1002035d
mov edx, str.Friendship
jmp 0x10020369
mov edx, str.First
jl 0x10020369
mov edx, str.Second
mov ecx, 0x10079ad8
call fcn.10012b8c
push eax
call fcn.1001f1b2
pop ecx
mov byte [esi], 1
jmp 0x1002073c
mov dword [ebp - 0x20], 0x5d2c
xor ebx, ebx
cmp dword [ebp - 0x20], 0x5fd3
jle 0x100203f3
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp - 0x28], 0x1499
mov esi, dword [ebp + 0x14]
mov edi, ebx
mov eax, esi
mov dword [ebp - 0x1c], ebx
cdq
idiv edi
mov esi, dword [ebp - 0x1c]
mov ebx, edx
mov eax, ebx
mov ecx, 0x10079ad8
or eax, esi
cdq
push edx
push eax
call fcn.1000fde8
inc esi
cmp esi, 0x5103
jl 0x100203b3
mov esi, dword [ebp + 0x14]
inc edi
push 0
pop ebx
cmp edi, 0x67fb
jl 0x100203a6
mov esi, dword [ebp - 0x24]
add dword [ebp + 0x14], esi
dec dword [ebp - 0x28]
jne 0x100203a1
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x1d6b
jl 0x10020397
mov dword [ebp - 4], 4
cmp dword [ebp - 0x20], 0x5c39
jge 0x10020412
mov edx, str.rtylmvgy_cgvde_vwbdxgjrz_kapwoh_xiirghmt_apj_qmttwxv_zcdr_hndnfnpys
mov ecx, 0x10079ad8
call fcn.10012b8c
or edi, 0xffffffff
mov dword [ebp - 4], edi
cmp byte [ebp - 0x14], 0
je 0x10020467
mov edx, dword [ebp + 0xc]
mov dword [edx], ebx
cmp dword [edx], 4
jge 0x1002073c
mov esi, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x2fa814b1
inc dword [edx]
cmp dword [edx], 4
jl 0x1002042f
jmp 0x1002073c
mov eax, dword [0x10141108]
xor esi, esi
inc esi
test al, 1
jne 0x100204b2
or eax, esi
mov dword [0x10142494], edi
mov ecx, 0x1571
mov dword [0x10141108], eax
mov dword [0x10141114], ecx
mov edx, esi
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
mov eax, 0x270
add ecx, edx
mov dword [edx*4 + 0x10141114], ecx
inc edx
cmp edx, eax
jl 0x1002048d
mov dword [0x10141110], eax
mov dword [ebp - 0x20], 0xfffffffb
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x24], 0xdc6f79b3
mov dword [ebp + 0x14], 0x197cbb40
mov dword [ebp + 0x14], 0x8a88acc1
mov dword [ebp + 0x14], 0xddfdaf0b
mov dword [ebp + 0x14], esi
mov dword [ebp + 0x14], ebx
jmp 0x100204f4
mov eax, dword [ebp + 0x14]
mov dword [ebp + eax*4 - 0x30], edi
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], esi
jl 0x100204ea
mov eax, dword [ebp - 0x20]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x14], ebx
jne 0x10020513
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], esi
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
cmp eax, esi
setl cl
add ecx, dword [ebp - 0x1c]
jne 0x10020531
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
neg ecx
imul eax, ecx
xor ecx, ecx
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x1c]
sub edx, eax
mov eax, dword [ebp - 0x20]
cmp eax, edx
setl cl
push ecx
mov dword [ebp + 0x14], ecx
call fcn.1001fd39
cmp byte [0x10141014], 0
pop ecx
jne 0x100206a1
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x14], 0x2971c1e
mov dword [ebp + 0x14], 0x124f84b8
mov dword [ebp + 0x14], 4
mov dword [ebp + 0x14], 2
mov dword [ebp - 0x44], 0xfffffff8
mov dword [ebp + 0x14], ebx
jmp 0x100205b1
mov eax, dword [ebp + 0x14]
mov dword [ebp + eax*4 - 0x4c], 0x9978f3c
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], esi
jl 0x100205a3
push ecx
lea edx, [ebp - 0x44]
call fcn.10020763
mov dword [esp], 0x52f7
mov edx, 0x7ac5
push 0x6054
push 0x4eb3
push ebx
push 0x10141110
push 0x718c
push ebx
push 0x5c72
push 0x49ac
push 0x6d78
push esi
mov ecx, 0xe68
call fcn.1001fd4d
mov dword [ebp - 0x18], 0x8ade19d2
add esp, 0x2c
mov dword [ebp - 0x48], edi
mov dword [ebp + 0x14], ebx
jmp 0x1002061b
mov eax, dword [ebp + 0x14]
mov dword [ebp + eax*4 - 0x68], 0xfffffff6
inc dword [ebp + 0x14]
cmp dword [ebp + 0x14], 3
jl 0x1002060d
mov dword [ebp - 0x18], ebx
jmp 0x1002067c
mov dword [ebp + 0x14], ebx
lea ecx, [ebp - 0x5c]
push esi
call fcn.100100c6
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 6
push eax
push ecx
push ecx
lea edx, [ebp - 0x5c]
call fcn.1001fd1c
mov dword [ebp + 0x14], 2
add esp, 0xc
cmp dword [ebp + 0x14], ebx
jl 0x1002066e
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp + 0x14]
mov dword [ebp + eax*4 - 0x68], ecx
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
dec dword [ebp + 0x14]
jns 0x10020656
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], edi
call fcn.10010128
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jle 0x10020626
push 0x7cac
push ecx
lea edx, [ebp - 0x48]
lea ecx, [ebp - 0x18]
call fcn.1002074d
pop ecx
pop ecx
xor dl, dl
mov ecx, 0x10141014
call fcn.1002016d
mov eax, dword [0x10141110]
cmp eax, 0x270
jne 0x100206ed
mov edx, 0x10141118
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, 0x10141ad8
jl 0x100206b2
jmp 0x100206f9
cmp eax, 0x4e0
jb 0x100206fe
call fcn.1002142d
mov eax, dword [0x10141110]
mov edx, dword [eax*4 + 0x10141114]
inc eax
mov dword [0x10141110], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x10142494]
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 + 0x18]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret