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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x521450
mov eax, dword fs:[0]
push eax
mov eax, 0x1628
call fcn.004ac2a0
mov eax, dword [0x569564]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x260]
push str._rand_
mov dword [ebp - 0x1630], ebx
call fcn.004075b0
push dword [ebp - 0x250]
xor esi, esi
lea eax, [ebp - 0x260]
cmp dword [ebp - 0x24c], 8
mov ecx, ebx
push esi
cmovae eax, dword [ebp - 0x260]
push eax
mov dword [ebp - 4], esi
call fcn.004127c0
mov dword [ebp - 0x1634], eax
test eax, eax
jle 0x4559a5
cmp dword [ebx + 0x58], esi
je 0x4559a5
lea ecx, [ebx + 0x48]
cmp dword [ecx + 0x14], 8
jb 0x4556a7
mov ecx, dword [ecx]
push ecx
lea eax, [ebp - 0x248]
push eax
call fcn.005162f0
pop ecx
pop ecx
lea eax, [ebx + 0x60]
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 8
jb 0x4556c5
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.005162f0
mov edi, 0x54affc
mov byte [ebp - 4], 2
push edi
call fcn.00401ae4
add esp, 0xc
lea ecx, [ebp - 0x248]
push eax
push esi
push edi
call fcn.00404ad0
test eax, eax
jle 0x455989
cmp eax, dword [ebp - 0x238]
jae 0x455989
push edi
call fcn.00401ae4
pop ecx
push eax
push esi
push edi
lea ecx, [ebp - 0x248]
call fcn.00404ad0
push eax
push esi
lea eax, [ebp - 0x230]
push eax
lea ecx, [ebp - 0x248]
call fcn.00403921
cmp dword [eax + 0x14], 0x10
jb 0x455737
mov eax, dword [eax]
push eax
call fcn.004f3d64
pop ecx
push esi
push 1
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x161c], eax
call fcn.004049c9
mov edi, dword [ebp - 0x238]
push 0x54affc
call fcn.00401ae4
pop ecx
push eax
push esi
push 0x54affc
lea ecx, [ebp - 0x248]
call fcn.00404ad0
push 0x54affc
mov esi, eax
call fcn.00401ae4
pop ecx
push eax
push 0
push 0x54affc
lea ecx, [ebp - 0x248]
call fcn.00404ad0
sub edi, esi
lea ecx, [ebp - 0x248]
dec edi
inc eax
push edi
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00403921
cmp dword [eax + 0x14], 0x10
jb 0x4557b5
mov eax, dword [eax]
push eax
call fcn.004f3d64
pop ecx
xor esi, esi
lea ecx, [ebp - 0x230]
push esi
push 1
mov edi, eax
call fcn.004049c9
cmp edi, dword [ebp - 0x161c]
jle 0x455989
mov dword [ebp - 0x162c], esi
mov dword [ebp - 0x1628], esi
mov dword [ebp - 0x1624], esi
cmp dword [ebp - 0x264], 0x10
lea esi, [ebp - 0x278]
mov ecx, 0x56dff0
mov byte [ebp - 4], 3
cmovae esi, dword [ebp - 0x278]
call fcn.00449c9e
push 0x54d490
push esi
lea ecx, [ebp - 0x162c]
push ecx
mov ecx, eax
call fcn.0045195d
mov ecx, eax
call fcn.0044e3ae
mov ebx, dword [ebp - 0x161c]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
or dword [ebp - 0x294], 0xffffffff
lea ecx, [ebp - 0x1618]
push 0x6c078965
push eax
call fcn.00456bd0
push edi
push ebx
lea eax, [ebp - 0x1618]
push eax
lea ecx, [ebp - 0x1620]
call fcn.00452b1c
mov esi, dword [ebp - 0x162c]
mov dword [ebp - 0x161c], eax
jmp 0x4558b4
push esi
lea ecx, [ebp - 0x230]
call fcn.00403aac
cmp dword [ebp - 0x21c], 0x10
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.004f3d64
pop ecx
lea ecx, [ebp - 0x230]
push 0
push 1
cmp dword [ebp - 0x161c], eax
je 0x4559cf
call fcn.004049c9
add esi, 0x18
cmp esi, dword [ebp - 0x1628]
jne 0x45586f
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004e9750
mov ebx, dword [ebp - 0x1630]
add esp, 0xc
mov eax, dword [ebp - 0x250]
mov edi, dword [ebp - 0x1634]
mov ecx, dword [ebx + 0x10]
sub ecx, eax
add eax, edi
sub ecx, edi
push ecx
push eax
lea eax, [ebp - 0x290]
mov ecx, ebx
push eax
call fcn.00412dd0
mov esi, eax
push edi
push 0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 4
push eax
mov ecx, ebx
call fcn.00412dd0
cmp dword [esi + 0x14], 8
jb 0x45591c
mov esi, dword [esi]
cmp dword [eax + 0x14], 8
jb 0x455924
mov eax, dword [eax]
push esi
push dword [ebp - 0x161c]
push eax
lea eax, [ebp - 0x218]
push str._s_d_s
push eax
call fcn.004490df
add esp, 0x14
lea ecx, [ebp - 0x230]
xor esi, esi
push esi
push 1
call fcn.00409a10
push esi
push 1
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 3
call fcn.00409a10
lea eax, [ebp - 0x218]
push eax
call fcn.00408db0
pop ecx
push eax
lea eax, [ebp - 0x218]
mov ecx, ebx
push eax
call fcn.00408e30
lea ecx, [ebp - 0x162c]
call fcn.00404924
push esi
push 1
lea ecx, [ebp - 0x278]
call fcn.004049c9
push esi
push 1
lea ecx, [ebp - 0x248]
call fcn.004049c9
push esi
push 1
lea ecx, [ebp - 0x260]
call fcn.00409a10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ac267
mov esp, ebp
pop ebp
ret
call fcn.004049c9
jmp 0x45582f