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

Disassembly:
mov eax, 0x1005336d
call fcn.10052218
sub esp, 0x8c
mov dword [ebp - 0x40], edx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x10032a02
cmp byte [ebp + 0x2c], 0
je 0x100329d8
mov dword [ebp - 0x24], 0x6ca3
xor esi, esi
cmp dword [ebp - 0x24], 0x6eb1
jle 0x10032970
push esi
call dword [sym.imp.KERNEL32.dll_ClearCommBreak]
mov edi, esi
mov ebx, esi
mov dword [ebp - 0x34], esi
mov eax, ebx
cdq
idiv esi
mov eax, edi
mov ecx, edx
shl eax, cl
mov ecx, 0x1006a318
cdq
push edx
push eax
call fcn.10001c75
inc esi
cmp esi, 0x34fa
jl 0x1003293a
inc ebx
push 0
pop esi
cmp ebx, 0x74f3
jl 0x10032937
inc edi
cmp edi, 0x7d1
jl 0x10032935
mov dword [ebp - 4], esi
cmp dword [ebp - 0x24], 0x6b6d
jge 0x1003298b
mov edx, str.zwp_osxfbgig_ccrcjbtpz_ycubyzf_nafmn_ftibzx_lgqw_qygjv_drgtwuuyl_qzngyqjj_pnrqf_ohnw_kvxyqfvbk_obvje
mov ecx, 0x1006a318
call fcn.10003644
mov ecx, dword [ebp - 0x40]
or dword [ebp - 4], 0xffffffff
push 0x1a
pop edi
cmp dword [ecx], edi
jge 0x100329bd
mov eax, dword [ebp + 0x1c]
movzx edx, word [eax]
add edx, dword [ecx]
jmp 0x100329ca
mov eax, dword [ecx]
cdq
idiv edi
mov eax, dword [ebp + 0x30]
movzx eax, word [eax]
add edx, eax
mov ecx, dword [ebp + 0x24]
push edx
call fcn.1000f616
jmp 0x10032fe7
mov eax, dword [ebp + 0x14]
cmp byte [eax], 0
je 0x10032fe7
push 0x1b7c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetROP2]
jmp 0x10032fe7
xor esi, esi
cmp byte [ebp + 0x20], 0
je 0x10032a50
mov ebx, dword [ebp + 0x18]
cmp dword [ebx], esi
jbe 0x10032fe7
push 0x1a
pop edi
call fcn.10032519
push 0x34
xor edx, edx
pop ecx
div ecx
mov eax, edx
cmp eax, edi
jge 0x10032a32
mov ecx, dword [ebp + 0x28]
movzx edx, word [ecx]
jmp 0x10032a3b
cdq
idiv edi
mov eax, dword [ebp + 0x10]
movzx eax, word [eax]
mov ecx, dword [ebp + 0xc]
add edx, eax
push edx
call fcn.1000f616
inc esi
cmp esi, dword [ebx]
jb 0x10032a18
jmp 0x10032fe7
xor ebx, ebx
mov dword [ebp - 0x1c], 0x731a
inc ebx
cmp dword [ebp - 0x1c], 0x763d
jle 0x10032b01
mov dword [ebp - 0x14], esi
mov edi, esi
mov dword [ebp - 0x2c], esi
mov ecx, esi
mov dword [ebp - 0x24], esi
mov eax, edi
mov dword [ebp - 0x18], esi
cdq
idiv ecx
mov edi, dword [ebp - 0x14]
mov eax, edx
mov dword [ebp - 0x1c], eax
and eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x80]
xor eax, edi
cdq
push edx
push eax
call fcn.10003c04
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10032a9e
mov eax, dword [eax]
push eax
call fcn.1003a280
pop ecx
push esi
push ebx
lea ecx, [ebp - 0x80]
call fcn.10002056
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x59d8
mov eax, dword [ebp - 0x1c]
jl 0x10032a84
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x4e3
jl 0x10032a74
inc edi
mov dword [ebp - 0x2c], edi
cmp edi, 0x1e29
jl 0x10032a6f
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x581e
jl 0x10032a6a
push 0x21a0
push esi
push 0x96
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x24], 7
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x44], 0xa6edad94
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x20], 0xfffffff8
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0x98b9
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0xcc321a07
mov dword [ebp - 0x30], 0x6c35
cmp dword [ebp - 0x30], 0x7008
jle 0x10032b8b
mov edi, esi
mov ebx, esi
mov dword [ebp - 0x2c], 0x6121
mov dword [ebp - 0x14], esi
mov ecx, esi
mov eax, ebx
shl eax, cl
mov ecx, 0x1006a318
cdq
push edx
push eax
call fcn.10001c75
inc esi
cmp esi, 0x6577
jl 0x10032b59
add ebx, edi
dec dword [ebp - 0x2c]
push 0
pop esi
jne 0x10032b56
inc edi
cmp edi, 0x1783
jl 0x10032b4d
xor ebx, ebx
inc ebx
mov dword [ebp - 0x14], esi
jmp 0x10032b9e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x50], 0xfffffffa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10032b90
mov dword [ebp - 4], 2
cmp dword [ebp - 0x30], 0x6a20
jge 0x10032bc3
mov edx, str.iimfpzhq_roqav_auhgcomin_ogftqbt_lmn_awvg_coac_grqim_dfnjtlcy_inlum
mov ecx, 0x1006a318
call fcn.10003644
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x14], esi
jmp 0x10032bff
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 0xc842f88d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10032bf1
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x5c]
inc dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp - 0x3c]
imul eax, ecx
xor ecx, ecx
cmp eax, 0xa9a1
setne cl
sub ecx, 0xb29d
neg ecx
sbb ecx, ecx
add ecx, 0xfffffffb
cmp ebx, ecx
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
neg ecx
sbb ecx, ecx
neg ecx
sub ecx, eax
mov eax, 0xb5c74600
imul ecx, dword [ebp - 0x24]
cmp eax, ecx
sbb eax, eax
neg eax
cmp eax, 0x439fcb6e
je 0x10032c64
mov eax, ebx
cmp dword [ebp - 0x5c], esi
jne 0x10032c66
mov eax, esi
cmp dword [ebp - 0x4c], eax
jne 0x10032c72
mov eax, ebx
cmp dword [ebp - 0x44], esi
jne 0x10032c74
mov eax, esi
xor ecx, ecx
cmp eax, ebx
mov eax, dword [ebp - 0x20]
setle cl
add eax, 0xc64e
add eax, ecx
je 0x10032c8a
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
sub eax, 0xfffffff6
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [0x1006b64c]
test al, 1
jne 0x10032ce5
or eax, ebx
mov ecx, 0x1571
or dword [0x1006c9d4], 0xffffffff
mov edx, ebx
mov dword [0x1006b64c], eax
mov dword [0x1006b654], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x1006b654], ecx
inc edx
cmp edx, 0x270
jl 0x10032cbc
mov dword [0x1006b650], 0x270
call fcn.100325f7
cmp byte [0x1006b47a], 0
jne 0x10032f13
push 0x1006b650
push 0x10c
sub esp, 0x10
mov cl, bl
call fcn.10032ff8
mov dword [ebp - 0x18], 0xffffffff
add esp, 0x18
mov dword [ebp - 0x30], 0xb0121307
mov dword [ebp - 0x20], 0xe4c7ba3f
mov dword [ebp - 0x20], 0x6bd29a2a
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], 0x7504ed09
mov dword [ebp - 0x20], 0xedda
mov dword [ebp - 0x20], 0xf529
mov dword [ebp - 0x1c], 0x3361
cmp dword [ebp - 0x1c], 0x3693
jle 0x10032d9e
push esi
push 0x1fb4
push esi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPointW]
mov edi, esi
mov ebx, esi
mov eax, ebx
mov ecx, 0x1006a318
xor eax, edi
cdq
push edx
push eax
call fcn.10001c75
inc ebx
cmp ebx, 0x6819
jl 0x10032d78
inc edi
cmp edi, 0x2b70
jl 0x10032d76
xor ebx, ebx
inc ebx
mov dword [ebp - 0x48], 0xb3d385e1
mov dword [ebp - 4], 4
cmp dword [ebp - 0x1c], 0x2fe5
jge 0x10032dc4
mov edx, str.xgsguzzj_qblgxpn_yhjso_ncignfrps_nxlb_cshc_vpsia_yaewps_ramvtmf_jwmjnqha_lsiwjtl_evzurwqkd_sagiw
mov ecx, 0x1006a318
call fcn.10003644
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x14], esi
jmp 0x10032e00
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x28], 0xd3f7bf4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10032df2
mov dword [ebp - 0x14], esi
jmp 0x10032e18
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], 0xa1c3d076
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10032e0a
mov eax, dword [ebp - 0x28]
mov ecx, 0xaec39e39
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
sub ecx, eax
je 0x10032e42
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x30], 0x2a3
jle 0x10032e58
mov eax, ebx
cmp dword [ebp - 0x30], esi
jne 0x10032e5a
mov eax, esi
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x48]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
call fcn.1003305d
mov dword [ebp - 0x2c], 0x4ba4
cmp dword [ebp - 0x2c], 0x4e16
jle 0x10032eea
mov eax, esi
mov dword [ebp - 0x18], esi
mov edi, esi
mov ecx, esi
mov dword [ebp - 0x30], 0x3672
mov dword [ebp - 0x1c], ecx
shl eax, cl
lea ecx, [ebp - 0x98]
cdq
push edx
push eax
call fcn.10003c04
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10032ea8
mov eax, dword [eax]
push eax
call fcn.1003a280
pop ecx
push esi
push ebx
lea ecx, [ebp - 0x98]
call fcn.10002056
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
add ecx, edi
dec dword [ebp - 0x30]
mov dword [ebp - 0x1c], ecx
jne 0x10032e8e
inc edi
cmp edi, 0x3a82
jl 0x10032e82
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0xf34
jl 0x10032e80
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventA]
cmp dword [ebp - 0x2c], 0x4a55
jge 0x10032efe
push str.bgp_quzusbuxj_laskz_bqygod_zlxnta_vkwwmthiy_ascvzjxxa_uxzkda
call fcn.1003a280
pop ecx
or dword [ebp - 4], 0xffffffff
mov edx, 0x1006b47a
push ecx
mov ecx, 0x742c
call fcn.10033177
pop ecx
mov dword [ebp - 0x34], 0xac204e2d
mov dword [ebp - 0x14], esi
jmp 0x10032f29
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x60], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10032f1f
push 0x798d
lea eax, [ebp - 0x34]
xor cl, cl
push eax
sub esp, 0x10
call fcn.10032ff8
add esp, 0x18
lea edx, [ebp - 0x34]
call fcn.100327ad
mov eax, dword [0x1006b650]
cmp eax, 0x270
jne 0x10032f98
mov edx, 0x1006b658
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, 0x1006c018
jl 0x10032f5d
jmp 0x10032fa4
cmp eax, 0x4e0
jb 0x10032fa9
call fcn.10033f32
mov eax, dword [0x1006b650]
mov edx, dword [eax*4 + 0x1006b654]
inc eax
mov dword [0x1006b650], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x1006c9d4]
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 + 8]
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