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

Disassembly:
mov eax, 0x1005a3d9
call fcn.100589e8
sub esp, 0xb4
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x48], ebx
mov byte [ebp - 0x2c], cl
je 0x1003ac2a
test cl, cl
je 0x1003a66a
mov eax, dword [ebp + 0xc]
mov ecx, 0x4801
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
add dword [eax], ecx
jmp 0x1003acf6
mov dword [ebp + 0x10], 0x36ec
xor edi, edi
cmp dword [ebp + 0x10], 0x385c
jle 0x1003a6a5
mov esi, edi
mov ebx, edi
mov ecx, ebx
mov eax, esi
sar eax, cl
mov ecx, 0x100742b8
cdq
push edx
push eax
call fcn.1000793a
inc ebx
cmp ebx, 0x7baf
jl 0x1003a680
inc esi
cmp esi, 0x57cc
jl 0x1003a67e
mov dword [ebp - 4], edi
cmp dword [ebp + 0x10], 0x3651
jge 0x1003a6c0
mov edx, str.eclywew_ktqxrag_aryob
mov ecx, 0x100742b8
call fcn.10009c90
or dword [ebp - 4], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x1c], 0x4e85
inc ebx
cmp dword [ebp - 0x1c], 0x4ee7
jle 0x1003a723
mov esi, edi
mov eax, edi
mov dword [ebp + 0x10], edi
xor eax, esi
lea ecx, [ebp - 0xa8]
cdq
push edx
push eax
call fcn.1000207f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003a6f8
mov eax, dword [eax]
push eax
call fcn.10042041
pop ecx
push edi
push ebx
lea ecx, [ebp - 0xa8]
call fcn.100022c2
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp + 0x10], eax
cmp eax, 0x582e
jl 0x1003a6de
inc esi
cmp esi, 0x12b5
jl 0x1003a6d9
mov eax, dword [0x105769a8]
test al, 1
jne 0x1003a76d
or eax, ebx
mov ecx, 0x1571
or dword [0x105769a4], 0xffffffff
mov edx, ebx
mov dword [0x105769a8], eax
mov esi, 0x270
mov dword [0x10575624], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x10575624], ecx
inc edx
cmp edx, esi
jl 0x1003a74c
mov dword [0x10575620], esi
cmp dword [ebp - 0x1c], 0x4b44
jge 0x1003a781
push str.cmg_tlppwivke_qxkypiv_wdmo_ajreqr_flvwy_tdxcklq_qvjlawbc_yrbbdpd
call fcn.10042041
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [0x10575462], 0
jne 0x1003a8cc
push edi
push ecx
mov edx, 0x693b
mov ecx, 0x10575620
call fcn.1003a3e9
pop ecx
pop ecx
mov dword [ebp + 0x10], 0xe17f7596
lea ecx, [ebp - 0x7c]
push 3
call fcn.10001c0f
lea eax, [ebp - 0x84]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x28], 0xfffffff6
mov dword [ebp - 0x64], 0xf9a325cf
xor dl, dl
mov dword [ebp - 0x28], 0x3bba
push eax
call fcn.1003a264
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x10], ebx
mov dword [ebp - 0x14], 0x70ec
cmp dword [ebp - 0x14], 0x72bf
pop ecx
pop ecx
jle 0x1003a88b
push edi
push edi
push 0x20a4
push edi
push edi
call dword [sym.imp.USER32.dll_CreateDialogIndirectParamA]
mov dword [ebp + 0x10], edi
mov esi, edi
mov dword [ebp - 0x20], edi
mov eax, esi
mov dword [ebp - 0x18], 0x5034
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
xor eax, esi
lea ecx, [ebp - 0xc0]
cdq
push edx
push eax
call fcn.1000207f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003a84e
mov eax, dword [eax]
push eax
call fcn.10042041
pop ecx
push edi
push ebx
lea ecx, [ebp - 0xc0]
call fcn.100022c2
mov eax, dword [ebp - 0x1c]
dec eax
dec dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
jne 0x1003a834
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x79e5
jl 0x1003a825
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp + 0x10], eax
cmp eax, 0x8056
jl 0x1003a820
lea eax, [ebp - 0x64]
push edi
push eax
call fcn.1003a243
cmp dword [ebp - 0x14], 0x6fa5
pop ecx
pop ecx
jge 0x1003a8ab
push str.xek_ewklwukp_ydrko_rupoqwq_fwmiq_dspaovpbb_glvnumxmb_mliskzyz
call fcn.10042041
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7c]
call fcn.10001c92
push 0x10575462
push ecx
xor dl, dl
mov ecx, 0x59c7
call fcn.1003a41c
add esp, 8
push 2
lea ecx, [ebp - 0x70]
call fcn.10001c0f
mov dword [ebp - 4], 7
lea eax, [ebp - 0x80]
mov dword [ebp - 0x24], 0x56915a13
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x44], ebx
xor dl, dl
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp + 0x10], 0x1506f573
mov dword [ebp - 0x28], 0xe267a5e2
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x10], edi
push eax
mov dword [ebp + 0x10], 0x8bb1b5b3
mov dword [ebp - 0x4c], 0x8a62
push 0x2fd4
mov dword [ebp + 0x10], 0xfffffffc
mov dword [ebp + 0x10], 0x1f6b071c
push 0x38e
call fcn.1003bc57
add esp, 0xc
mov dword [ebp - 0x24], edi
jmp 0x1003aae8
mov dword [ebp - 0x20], 0xcd53bc6e
mov dword [ebp - 0x18], 0xfffffffc
mov dword [ebp - 0x20], edi
jmp 0x1003aadc
mov dword [ebp - 0x54], edi
mov dword [ebp + 0x10], edi
jmp 0x1003a994
mov eax, dword [ebp + 0x10]
mov dword [ebp + eax*4 - 0x60], 0x1328f6c7
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], 3
jl 0x1003a986
mov dword [ebp - 0x60], edi
jmp 0x1003aad0
mov dword [ebp + 0x10], ebx
mov dword [ebp - 0x50], 0x887c5c6
mov dword [ebp + 0x10], edi
jmp 0x1003aaa0
mov dword [ebp - 0x14], edi
jmp 0x1003a9c7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x34], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1003a9b9
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], edi
jl 0x1003aa9d
mov dword [ebp - 0x14], 0x49b76eea
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], edi
jl 0x1003aa91
mov dword [ebp - 0x18], edi
jmp 0x1003aa02
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x90], 0xd132
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1003a9f1
mov dword [ebp - 0x54], 0xd9cd4431
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x44]
sub ecx, eax
cmp ecx, dword [ebp - 0x44]
jne 0x1003aa26
cmp dword [ebp - 0x14], edi
jne 0x1003aa26
mov ebx, edi
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov eax, dword [ebp + 0x10]
cmp ebx, eax
mov eax, dword [ebp - 0x70]
setle cl
cmp dword [eax + edx*4], ecx
jl 0x1003aa43
cmp dword [ebp + 0x10], edi
jne 0x1003aa43
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
xor ebx, ebx
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x70]
push 1
cmp dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x20]
setle bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x50]
pop ebx
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x70]
setne dl
xor ecx, ecx
cmp edx, dword [eax + esi*4]
setl cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x88], eax
dec dword [ebp - 0x14]
jns 0x1003a9ec
mov eax, dword [ebp - 0x14]
dec dword [ebp - 0x34]
jns 0x1003a9d9
inc dword [ebp + 0x10]
cmp dword [ebp + 0x10], ebx
jle 0x1003a9b4
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp + 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x50]
je 0x1003aac8
mov eax, edi
cmp dword [ebp - 0x54], edi
je 0x1003aaca
mov eax, ebx
mov dword [ebp + 0x10], eax
inc dword [ebp - 0x60]
cmp dword [ebp - 0x60], ebx
jle 0x1003a9a2
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x1003a97e
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jle 0x1003a968
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x44], eax
jg 0x1003ab06
dec dword [ebp - 0x4c]
mov esi, ebx
jne 0x1003ab08
mov esi, edi
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x40]
cmp ecx, eax
setg dl
mov dword [ebp + 0x10], edx
cmp dword [ebp + 0x10], edi
je 0x1003ab28
cmp dword [ebp - 0x1c], edi
jne 0x1003ab2a
mov ebx, edi
mov eax, dword [ebp - 0x44]
xor ecx, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
cmp ebx, eax
setge cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
sub eax, 0x5185
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x6196
mov eax, dword [ebp - 0x24]
setg dl
xor ecx, ecx
cmp eax, esi
setne cl
imul edx, ecx
add edx, 8
mov dword [ebp - 0x28], edx
xor edx, edx
mov eax, dword [ebp - 0x24]
sub eax, 0x5d39a040
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x40]
cmp ecx, eax
lea ecx, [ebp - 0x70]
setne dl
mov dword [ebp + 0x10], edx
call fcn.10001c92
mov eax, dword [0x10575620]
cmp eax, 0x270
jne 0x1003abd6
mov edx, 0x10575628
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, 0x10575fe8
jl 0x1003ab9b
jmp 0x1003abe2
cmp eax, 0x4e0
jb 0x1003abe7
call fcn.1003be8d
mov eax, dword [0x10575620]
mov edx, dword [eax*4 + 0x10575624]
inc eax
mov dword [0x10575620], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x105769a4]
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 + 0x14]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
jmp 0x1003acf6
cmp byte [ebp + 0x20], 0
je 0x1003acbe
mov dword [ebp + 0x10], 0x5677
cmp dword [ebp + 0x10], 0x58c4
jle 0x1003ac70
xor edi, edi
mov esi, edi
mov ebx, edi
mov eax, ebx
mov ecx, 0x100742b8
or eax, esi
cdq
push edx
push eax
call fcn.1000793a
inc ebx
cmp ebx, 0x5cae
jl 0x1003ac4a
inc esi
cmp esi, 0x2376
jl 0x1003ac48
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 4], 8
cmp dword [ebp + 0x10], 0x533a
jge 0x1003acae
mov edx, str.fkxahhgv_ldcwlclk_weci_vep_fkpus_qsibskire_kabp_stpfnohb
mov ecx, 0x100742b8
call fcn.10009c90
jmp 0x1003acae
or dword [ebp - 4], 0xffffffff
push dword [ebx]
mov ecx, dword [ebp + 0x1c]
call fcn.1000a225
jmp 0x1003acf6
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x1003acf6
push 0
push 0xc9c
push 0x7e2
push 0x284
push 0x203d
push 0x60f
push 0x13b6
push 0x10ae
push 0x12a6
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret