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

Disassembly:
mov eax, 0x100589e7
call fcn.100574a0
sub esp, 0xbc
push ebx
push esi
push edi
mov byte [ebp - 0x28], dl
mov edi, ecx
mov dword [ebp - 0x20], 0x4787
xor ebx, ebx
cmp dword [ebp - 0x20], 0x491d
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x44], edi
jle 0x1002f003
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov eax, esi
mov edi, ebx
cdq
idiv ecx
mov esi, edx
mov dword [ebp - 0x30], ebx
mov ecx, ebx
mov eax, edi
sar eax, cl
mov ecx, 0x10072d38
or eax, esi
cdq
push edx
push eax
call fcn.1000aa66
inc ebx
cmp ebx, 0x6791
jl 0x1002efb8
inc edi
push 0
pop ebx
cmp edi, 0x7743
jl 0x1002efb5
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x1d0a
jl 0x1002efac
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x1fa5
jl 0x1002efa7
mov edi, dword [ebp - 0x44]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], 0x451e
jge 0x1002f01e
mov edx, str.murigapwn_zzjvvzel_lrm_bxbwqkn_rga_xpi
mov ecx, 0x10072d38
call fcn.1000cc60
or dword [ebp - 4], 0xffffffff
xor esi, esi
mov dword [ebp - 0x1c], 0x1d1e
inc esi
cmp dword [ebp - 0x1c], 0x1ea6
jle 0x1002f0d1
mov edi, ebx
mov dword [ebp - 0x18], edi
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov eax, edi
mov dword [ebp - 0x14], ebx
cdq
idiv ecx
mov eax, ebx
mov ecx, edx
mov dword [ebp - 0x40], ecx
mov edx, ecx
mov edi, ebx
mov ecx, eax
shl edx, cl
mov dword [ebp - 0x30], edx
mov eax, edx
mov ecx, edi
shl eax, cl
lea ecx, [ebp - 0x98]
cdq
push edx
push eax
call fcn.10002548
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002f07b
mov eax, dword [eax]
push eax
call fcn.10040f4c
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x98]
call fcn.1000afb2
mov edx, dword [ebp - 0x30]
inc edi
cmp edi, 0x271f
jl 0x1002f05d
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x40]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x3b69
jl 0x1002f052
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x48b6
jl 0x1002f043
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x5ae7
jl 0x1002f03e
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x1c], 0x1bf2
jge 0x1002f0e5
push str.spbgh_xol_ubwv_hcsngndj_daua_tre_fafgioeg
call fcn.10040f4c
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x28], 0
je 0x1002f1f0
mov dword [ebp - 0x20], 0x3d46
cmp dword [ebp - 0x20], 0x3ea5
jle 0x1002f15d
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0xb0]
cdq
push edx
push eax
call fcn.10002548
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002f126
mov eax, dword [eax]
push eax
call fcn.10040f4c
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xb0]
call fcn.1000afb2
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x7150
jl 0x1002f10a
inc edi
cmp edi, 0x3865
jl 0x1002f105
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommTimeouts]
mov edi, dword [ebp - 0x44]
mov dword [edi], 2
jmp 0x1002f1cf
mov dword [ebp - 0x40], 0x39f3faa3
mov eax, dword [edi]
cmp dword [edi], ebx
je 0x1002f1a8
mov eax, dword [ebp + 0x18]
mov edx, esi
mov ecx, dword [edi]
mov eax, dword [eax]
cmp dword [eax + ecx*4], ebx
jne 0x1002f1aa
mov edx, ebx
mov eax, dword [edi]
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
add eax, dword [ecx]
xor ecx, ecx
cmp eax, 4
setg cl
xor eax, eax
cmp edx, ecx
setl al
sub eax, 0x32470555
mov dword [ebp - 0x40], eax
dec dword [edi]
cmp dword [edi], ebx
jge 0x1002f18d
cmp dword [ebp - 0x20], 0x3aeb
jge 0x1002f622
push str.ngb_smsmnht_cdhd_enbs
call fcn.10040f4c
pop ecx
jmp 0x1002f622
mov eax, dword [0x10075784]
test al, 1
jne 0x1002f23d
or eax, esi
mov ecx, 0x1571
or dword [0x10075774], 0xffffffff
mov edx, esi
mov dword [0x10075784], eax
mov dword [0x100743f4], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x100743f4], ecx
inc edx
cmp edx, 0x270
jl 0x1002f214
mov dword [0x100743f0], 0x270
mov dword [ebp - 0x30], 0x7f66
cmp dword [ebp - 0x30], 0x81a7
jle 0x1002f299
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x1c], ebx
add eax, edi
lea ecx, [ebp - 0xc8]
cdq
push edx
push eax
call fcn.10002548
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002f26e
mov eax, dword [eax]
push eax
call fcn.10040f4c
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xc8]
call fcn.1000afb2
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x4fc7
jl 0x1002f254
inc edi
cmp edi, 0x5dc2
jl 0x1002f24f
mov dword [ebp - 0x34], 0x90ac204e
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], 0xa2ef703c
mov dword [ebp - 0x18], 0x549a
cmp dword [ebp - 0x18], 0x5737
jle 0x1002f313
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], 0x122b
mov esi, ebx
mov edi, ebx
mov ebx, dword [ebp - 0x14]
lea ecx, [edi + esi]
mov eax, ebx
shl eax, cl
mov ecx, 0x10072d38
cdq
push edx
push eax
call fcn.1000aa66
inc edi
cmp edi, 0x5025
jl 0x1002f2d0
inc esi
push 0
pop ebx
cmp esi, 0x1a10
jl 0x1002f2cb
dec dword [ebp - 0x14]
dec dword [ebp - 0x1c]
jne 0x1002f2c9
mov edi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0xa73
jl 0x1002f2bf
xor esi, esi
inc esi
mov dword [ebp - 0x50], 0xfffffffd
mov dword [ebp - 4], 6
cmp dword [ebp - 0x18], 0x5463
jge 0x1002f339
mov edx, str.dvput_cyatyeurj_vktn_eiqgjlk_csgbuxn_gdo_xukfejwda_vuqnfzya_vjlrhfl_mcbrkkp_lmhic_fuvgnq
mov ecx, 0x10072d38
call fcn.1000cc60
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x34], ebx
jmp 0x1002f3a8
mov dword [ebp - 0x14], 0xd95e17ca
push ecx
call fcn.1002f752
pop ecx
mov dword [ebp - 0x14], ebx
jmp 0x1002f39f
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x18], ebx
jmp 0x1002f390
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x80], 0x9576
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x1002f382
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x12
je 0x1002f37a
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0x13
jle 0x1002f367
push ebx
push 0x5693
push 0x6058
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x48]
lea ecx, [ebp - 0x34]
call fcn.10031593
add esp, 0x14
cmp dword [ebp - 0x30], 0x7eec
jge 0x1002f3e3
push str.imt_gfsa_jeuunxrdc_shxdig_plttfzm_daqxglyw_pfceirn_ywzekrczk_wjqxult_gxiqelm_auozencoo_qetvvzmm
call fcn.10040f4c
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [0x100742ca], 0
jne 0x1002f4bb
mov dword [ebp - 0x3c], 6
mov dword [ebp - 0x14], ebx
jmp 0x1002f40e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x70], 0xcff0ea75
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1002f400
mov dword [ebp - 0x3c], ebx
jmp 0x1002f456
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
jl 0x1002f453
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], ebx
jl 0x1002f43f
mov byte [ebp - 0x21], bl
lea edx, [ebp - 0x21]
call fcn.1002fa09
dec dword [ebp - 0x14]
jns 0x1002f42f
push ecx
mov byte [ebp - 0x29], bl
lea ecx, [ebp - 0x29]
xor dl, dl
call fcn.1002ec8b
dec dword [ebp - 0x18]
pop ecx
jns 0x1002f424
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], esi
jle 0x1002f419
push 0x7a4a
lea eax, [ebp - 0x3c]
mov edx, 0x47b2
push eax
push 0x560a
push ecx
push 0x58ca
sub esp, 0xc
mov ecx, 0x55f7
push esi
push ebx
push ebx
push 0x716e
push 0x412b
call fcn.10030d44
add esp, 0x2c
mov ecx, 0x100743f0
push 0x752c
sub esp, 0xc
push 0x13c8
push ebx
call fcn.100312e5
add esp, 0x20
push esi
push ecx
push 0x100742ca
call fcn.1002ecae
add esp, 0xc
push esi
lea ecx, [ebp - 0x68]
call fcn.10001bc4
push esi
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0xa
call fcn.10001bc4
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x38], ebx
jmp 0x1002f4ed
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 0xec2e
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], esi
jl 0x1002f4dd
push ecx
lea eax, [ebp - 0x38]
mov edx, 0x6e86
push eax
push ebx
lea eax, [ebp - 0x5c]
push 0x7714
push eax
call fcn.1002edbd
mov eax, dword [ebp - 0x5c]
add esp, 0x14
mov dword [eax], ebx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x14], ebx
jmp 0x1002f555
mov dword [ebp - 0x18], 0xfffffff6
call fcn.100312d4
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1002f552
push 0x23cc
push ecx
push 0x46f7
push ebx
push 0x53c1
mov ecx, 0x4bc4
call fcn.1002eee9
add esp, 0x14
dec dword [ebp - 0x18]
jns 0x1002f52f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x1002f51b
mov eax, dword [ebp - 0x5c]
inc dword [eax]
cmp dword [eax], 0
jle 0x1002f513
push ebx
push ecx
mov edx, 0x2261
mov ecx, 0x5ab2
call fcn.1002ecc9
pop ecx
pop ecx
lea ecx, [ebp - 0x5c]
call fcn.10001c21
lea ecx, [ebp - 0x68]
call fcn.10001c21
mov eax, dword [0x100743f0]
cmp eax, 0x270
jne 0x1002f5d3
mov edx, 0x100743f8
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, 0x10074db8
jl 0x1002f598
jmp 0x1002f5df
cmp eax, 0x4e0
jb 0x1002f5e4
call fcn.10031d1d
mov eax, dword [0x100743f0]
mov edx, dword [eax*4 + 0x100743f4]
inc eax
mov dword [0x100743f0], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x10075774]
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 + 0x10]
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