Function at 0x1002fe88
Capabilities:
Check for time delay via gettickcount
Generate random numbers using a mersenne twister

Disassembly:
mov eax, 0x1005d3a1
call fcn.1005c3e4
sub esp, 0x7c
push ebx
push esi
xor ebx, ebx
mov byte [ebp - 0x18], dl
mov esi, ecx
push edi
mov dword [ebp - 0x10], esp
cmp byte [ebp + 0xc], bl
je 0x1002ffbe
cmp byte [ebp + 8], bl
je 0x1002ff8c
mov dword [ebp - 0x5c], 0xf
mov dword [ebp - 0x60], ebx
mov byte [ebp - 0x70], bl
lea eax, [ebp + 0x18]
mov dword [ebp - 4], ebx
push eax
lea eax, [ebp - 0x70]
mov edx, 0x4faf
push eax
push ecx
push 1
call fcn.1002f3cb
mov eax, dword [0x10076b78]
add esp, 0x10
test al, 1
jne 0x1002ff09
or eax, 1
mov dword [0x10076b78], eax
push 0x13506
mov byte [ebp - 4], 1
call fcn.1003404a
mov byte [0x10076b68], al
mov byte [ebp - 4], bl
mov eax, dword [0x10076b78]
pop ecx
test al, 2
jne 0x1002ff2c
or eax, 2
mov dword [0x10076b78], eax
push 0xe7c9
mov byte [ebp - 4], 2
call fcn.1003404a
pop ecx
mov byte [0x10076b6e], al
mov byte [ebp - 4], bl
push 1
lea eax, [ebp + 0x18]
mov edx, 0x2865
push eax
push 0x792b
push 0x7a54
lea eax, [ebp - 0x70]
mov cl, 1
push eax
push 0x10076b68
push 0x7424
push 0x10076b6e
push 0x4738
push 1
push 0x4692
call fcn.1002fdbb
lea eax, [ebp - 0x70]
add esp, 0x2c
cmp esi, eax
je 0x1002ff7c
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
call fcn.1001f5aa
push ebx
push 1
lea ecx, [ebp - 0x70]
call fcn.1001f40b
jmp 0x100303a6
mov esi, dword [ebp + 0x1c]
cmp dword [esi], ebx
jbe 0x100303a6
sub esp, 0xc
push dword [ebp + 0x20]
push 1
push 0x2ee9
push dword [ebp + 0x10]
push 0x43da
call fcn.1002f3f4
add esp, 0x20
inc ebx
cmp ebx, dword [esi]
jb 0x1002ff97
jmp 0x100303a6
test dl, dl
je 0x1002ffd0
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
jmp 0x100303a6
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x20], 0xcea5d6c0
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0xfffffff9
jle 0x100300a6
mov dword [ebp - 0x30], 0x66f5
mov dword [ebp - 0x24], 0x3e97
cmp dword [ebp - 0x24], 0x400e
jle 0x10030065
mov esi, ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x28], ebx
mov eax, edi
shl eax, cl
lea ecx, [ebp - 0x88]
and eax, esi
cdq
push edx
push eax
call fcn.10001a65
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003002f
mov eax, dword [eax]
push eax
call fcn.100442bc
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x88]
call fcn.10004a91
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x54dc
jl 0x10030011
inc edi
cmp edi, 0x8001
jl 0x1003000c
inc esi
cmp esi, 0xb79
jl 0x1003000a
push 0x7b2c
push ebx
lea eax, [ebp - 0x20]
mov ecx, 0x5a65
push eax
push 1
push 0x20ee
lea edx, [ebp - 0x30]
call fcn.1002dc30
add esp, 0x14
cmp dword [ebp - 0x24], 0x3d29
jge 0x1003009a
push str.dfgngwdax_edjge_vdrqlpj_pysue_jizlzp_yhgrcabcv_whm_iqjvhima_tzbtxvfs
call fcn.100442bc
pop ecx
or dword [ebp - 4], 0xffffffff
dec dword [ebp - 0x20]
jmp 0x1002ffe7
call fcn.1002ea35
mov eax, dword [0x10076b78]
test al, 4
jne 0x100300ce
or dword [0x10077f04], 0xffffffff
or eax, 4
push ecx
push 0x1571
mov dword [0x10076b78], eax
call fcn.10030440
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x28], 0x5e5
cmp dword [ebp - 0x28], 0x86b
jle 0x10030112
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x100758b8
or eax, esi
cdq
push edx
push eax
call fcn.10004429
inc edi
cmp edi, 0x6b6d
jl 0x100300e9
inc esi
cmp esi, 0x5bab
jl 0x100300e7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 4], 5
cmp dword [ebp - 0x28], 0x30c
jge 0x10030138
mov edx, str.nmbnh_wwdwgczvn_ikkqvnvqu_gnmfroi_mnmirsb_kqwqve_rtukdu_etgmlm_fwulnljz_eisdyddn_hpe_zlfncksx
mov ecx, 0x100758b8
call fcn.100067d6
or dword [ebp - 4], 0xffffffff
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x1c], ebx
jmp 0x1003017a
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x48], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x1003016c
push 3
mov dword [ebp - 0x1c], ebx
pop edi
cmp dword [ebp - 0x1c], edi
jg 0x10030240
mov dword [ebp - 0x28], 0xfffffffc
mov dword [ebp - 0x24], 0xfffffffa
mov dword [ebp - 0x24], ebx
jmp 0x100301b0
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x38], 0x2da3c3d2
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jl 0x100301a2
lea eax, [ebp + 0xf]
mov byte [ebp + 0xf], bl
push eax
push ecx
call fcn.1002f3ae
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
neg edx
pop ecx
sbb edx, edx
neg edx
mov esi, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 0x1c]
pop ecx
xor ecx, ecx
mov dword [ebp + eax*4 - 0x48], esi
mov eax, dword [ebp - 0x28]
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, 0x44653ff
mov dword [ebp - 0x38], ecx
setne al
xor edx, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp ecx, eax
mov eax, 0xcc5c6a3f
setle dl
add edx, dword [ebp - 0x1c]
imul edx, dword [ebp - 0x28]
cmp eax, edx
sbb ecx, ecx
xor eax, eax
inc ecx
sub ecx, dword [ebp - 0x28]
cmp esi, ecx
sete al
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jle 0x1003018f
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x1c], ebx
jmp 0x10030253
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x48], 0x2c51978e
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10030245
cmp byte [0x10076a18], 0
jne 0x1003030e
push ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.10030440
mov dword [ebp - 0x24], ebx
mov eax, 0xa0e6
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x24], 0xffffffe4
jmp 0x100302d1
mov dword [ebp - 0x28], ebx
jmp 0x100302a3
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x2c], 0x6942a1e9
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 1
jl 0x10030295
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x2c], ebx
jl 0x100302ce
push ecx
push 0x22ea
sub esp, 0xc
mov byte [ebp - 0x11], bl
lea ecx, [ebp - 0x11]
push ebx
call fcn.1002dc05
add esp, 0x18
dec dword [ebp - 0x2c]
jns 0x100302b1
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffff2
jl 0x10030290
xor dl, dl
mov byte [ebp - 0x12], bl
lea ecx, [ebp - 0x12]
call fcn.1002ea0e
push 0x2641
push 0x10076a18
push 1
push 0x71c3
push ebx
push 0x2e66
push ebx
mov edx, 0x63b2
mov ecx, 0x7df2
call fcn.1002ed75
add esp, 0x1c
mov eax, dword [0x10076b80]
cmp eax, 0x270
jne 0x1003035a
mov edx, 0x10076b88
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, ecx
xor eax, dword [edx + 0x630]
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x10077548
jl 0x1003031f
jmp 0x10030366
cmp eax, 0x4e0
jb 0x1003036b
call fcn.1003047b
mov eax, dword [0x10076b80]
mov ecx, dword [eax*4 + 0x10076b84]
inc eax
mov dword [0x10076b80], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x10077f04]
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 [esi], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret