Function at 0x64a378
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea edi, [ebp - 4]
xor ecx, ecx
push ebp
push 0x64a788
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [edi]
cmp byte [eax + 0x1594], 0
je 0x64a77e
mov eax, dword [edi]
cmp byte [eax + 0x15a0], 0
jne 0x64a77e
xor esi, esi
mov eax, dword [edi]
cmp byte [eax + 0x169c], 0
je 0x64a3d9
mov eax, dword [edi]
cmp dword [eax + 0x1698], 0
je 0x64a3d9
mov eax, dword [edi]
mov eax, dword [eax + 0x1698]
cmp byte [eax + 0x57], 0
jne 0x64a3dd
xor ebx, ebx
jmp 0x64a3df
mov bl, 1
mov eax, dword [edi]
mov al, byte [eax + 0x57]
mov byte [ebp - 5], al
test bl, bl
je 0x64a3fc
mov eax, dword [edi]
mov eax, dword [eax + 0x1698]
call fcn.00649be8
mov esi, eax
jmp 0x64a40b
cmp byte [ebp - 5], 0
je 0x64a40b
mov eax, dword [edi]
call fcn.00649be8
mov esi, eax
test esi, esi
jbe 0x64a5c1
test bl, bl
je 0x64a524
mov eax, dword [edi]
cmp byte [eax + 0x169c], 0
je 0x64a524
mov eax, dword [edi]
cmp dword [eax + 0x1698], 0
je 0x64a524
mov eax, dword [edi]
mov eax, dword [eax + 0x1698]
cmp byte [eax + 0x57], 0
je 0x64a524
mov eax, dword [0x6713c0]
mov eax, dword [eax]
mov ecx, esi
mov edx, dword [edi]
call fcn.0061f920
test al, al
jne 0x64a484
mov eax, esi
call fcn.00649bd4
test al, al
je 0x64a484
mov eax, dword [edi]
mov eax, dword [eax + 0x1698]
call fcn.00451704
call fcn.00649bd4
test al, al
jne 0x64a5c1
push 0x253
mov eax, dword [edi]
mov esi, dword [eax + 0x1698]
mov eax, dword [esi + 0x4c]
push eax
mov eax, dword [esi + 0x48]
push eax
mov eax, dword [esi + 0x44]
push eax
mov eax, dword [esi + 0x40]
push eax
push 0xffffffffffffffff
mov eax, dword [edi]
mov eax, dword [eax + 0x1698]
call fcn.00451704
push eax
call sub.user32.dll_SetWindowPos
mov eax, dword [edi]
cmp dword [eax + 0x15ac], 0
je 0x64a4f3
push 0x213
mov eax, dword [edi]
mov esi, dword [eax + 0x15ac]
mov eax, dword [esi + 0x4c]
push eax
mov eax, dword [esi + 0x48]
push eax
mov eax, dword [esi + 0x44]
push eax
mov eax, dword [esi + 0x40]
push eax
push 0xffffffffffffffff
mov eax, dword [edi]
mov eax, dword [eax + 0x15ac]
call fcn.00451704
push eax
call sub.user32.dll_SetWindowPos
push 0x213
mov eax, dword [edi]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x40]
push eax
push 0xffffffffffffffff
mov eax, dword [edi]
call fcn.00451704
push eax
call sub.user32.dll_SetWindowPos
jmp 0x64a5c1
cmp byte [ebp - 5], 0
je 0x64a5c1
mov eax, dword [0x6713c0]
mov eax, dword [eax]
cmp esi, dword [eax + 0x368]
je 0x64a548
mov eax, esi
call fcn.00649bd4
test al, al
je 0x64a558
mov eax, dword [edi]
call fcn.00451704
call fcn.00649bd4
test al, al
jne 0x64a5c1
mov eax, dword [edi]
cmp dword [eax + 0x15ac], 0
je 0x64a595
push 0x253
mov eax, dword [edi]
mov esi, dword [eax + 0x15ac]
mov eax, dword [esi + 0x4c]
push eax
mov eax, dword [esi + 0x48]
push eax
mov eax, dword [esi + 0x44]
push eax
mov eax, dword [esi + 0x40]
push eax
push 0xffffffffffffffff
mov eax, dword [edi]
mov eax, dword [eax + 0x15ac]
call fcn.00451704
push eax
call sub.user32.dll_SetWindowPos
push 0x253
mov eax, dword [edi]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x40]
push eax
push 0xffffffffffffffff
mov eax, dword [edi]
call fcn.00451704
push eax
call sub.user32.dll_SetWindowPos
test bl, bl
je 0x64a5d6
push ebp
mov eax, dword [edi]
mov eax, dword [eax + 0x1698]
mov dl, 1
call fcn.00649e4c
pop ecx
cmp byte [ebp - 5], 0
je 0x64a651
mov eax, dword [edi]
cmp byte [eax + 0x169c], 0
jne 0x64a651
mov eax, dword [edi]
cmp byte [eax + 0x15f8], 0
je 0x64a5fd
mov eax, dword [edi]
cmp byte [eax + 0x15d8], 0
jne 0x64a651
push ebp
xor edx, edx
mov eax, dword [edi]
call fcn.00649e4c
pop ecx
push ebp
call fcn.0064a218
pop ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x15ac]
test eax, eax
je 0x64a651
mov edx, dword [edi]
mov edx, dword [edx + 0x40]
mov ecx, dword [edi]
sub edx, dword [ecx + 0x15a8]
cmp edx, dword [eax + 0x40]
je 0x64a632
call fcn.0044a660
mov edx, dword [edi]
mov edx, dword [edx + 0x44]
mov ecx, dword [edi]
sub edx, dword [ecx + 0x15a8]
mov eax, dword [edi]
mov eax, dword [eax + 0x15ac]
cmp edx, dword [eax + 0x44]
je 0x64a651
call fcn.0044a684
mov eax, dword [edi]
call fcn.0062b8bc
mov eax, dword [0x6713c0]
mov eax, dword [eax]
cmp byte [eax + 0x3e6], 0
je 0x64a69b
mov eax, dword [edi]
cmp byte [eax + 0x1629], 0
je 0x64a69b
mov eax, dword [edi]
cmp byte [eax + 0x15f8], 0
je 0x64a69b
mov eax, dword [edi]
cmp byte [eax + 0x169c], 0
jne 0x64a69b
mov eax, dword [edi]
cmp byte [eax + 0x15a1], 0
jne 0x64a69b
mov eax, dword [edi]
call fcn.00640140
mov eax, dword [edi]
cmp byte [eax + 0x1609], 0
je 0x64a720
mov edx, dword [edi]
cmp byte [edx + 0x1609], 0
je 0x64a6cc
mov eax, dword [edi]
mov eax, dword [eax + 0x160c]
test eax, eax
je 0x64a6c3
cmp byte [eax + 0x57], 0
jne 0x64a6cc
mov eax, dword [edi]
mov byte [eax + 0x1609], 0
mov eax, dword [edi]
cmp byte [eax + 0x1609], 0
je 0x64a720
mov eax, dword [edi]
cmp dword [eax + 0x160c], 0
je 0x64a720
mov eax, dword [edi]
mov eax, dword [eax + 0x160c]
cmp byte [eax + 0x57], 0
je 0x64a720
mov eax, dword [edi]
mov eax, dword [eax + 0x160c]
call fcn.00451704
mov ebx, eax
call sub.user32.dll_GetForegroundWindow
cmp ebx, eax
je 0x64a720
mov eax, dword [edi]
mov eax, dword [eax + 0x160c]
cmp byte [eax + 0x364], 0
jne 0x64a720
mov eax, dword [edi]
call fcn.0064f978
mov eax, dword [edi]
cmp dword [eax + 0x161c], 0
jne 0x64a736
cmp dword [eax + 0x1618], 0
jbe 0x64a77e
jmp 0x64a738
jle 0x64a77e
call sub.kernel32.dll_GetTickCount
xor edx, edx
mov ecx, dword [edi]
sub eax, dword [ecx + 0x1618]
sbb edx, dword [ecx + 0x161c]
test edx, edx
jge 0x64a758
neg eax
adc edx, 0
neg edx
cmp edx, 0
jne 0x64a766
cmp eax, 0x1f4
jbe 0x64a77e
jmp 0x64a768
jle 0x64a77e
mov eax, dword [edi]
mov dword [eax + 0x1618], 0
mov dword [eax + 0x161c], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x64a792
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret