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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x585588
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push esi
push edi
mov eax, dword [0x5e95e0]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [esi - 0x34]
add esi, 0xffffffb0
push eax
lea ecx, [esp + 0x20]
call fcn.0053e441
mov eax, dword [ebp + 0x1c]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x58], edi
jne 0x4ab9cf
mov dword [esp + 0x58], 0xffffffff
cmp dword [esp + 0x20], edi
je 0x4ab9b5
mov ecx, dword [esp + 0x1c]
push ecx
push edi
call fcn.0053dbef
mov eax, 0x80004003
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp dword [eax], edi
je 0x4aba06
mov dword [esp + 0x58], 0xffffffff
cmp dword [esp + 0x20], edi
je 0x4ab9ec
mov edx, dword [esp + 0x1c]
push edx
push edi
call fcn.0053dbef
mov eax, 0x80004003
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov dword [eax], edi
mov eax, dword [ebp + 0x18]
cmp eax, edi
mov ecx, esi
je 0x4abad8
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x68]
call eax
test eax, eax
je 0x4abae5
mov eax, dword [0x5f2620]
call fcn.00488930
test eax, eax
je 0x4abb18
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x5f2c44]
cmp eax, 0x1388
jbe 0x4abb18
mov esi, 1
add dword [0x5f321c], esi
lea ecx, [esp + 0x10]
call fcn.004026e0
mov byte [esp + 0x58], 1
mov edx, dword [0x5f321c]
push edx
lea eax, [esp + 0x14]
push 0x5b589c
push eax
call fcn.00405480
mov ecx, dword [0x5f2620]
mov eax, dword [esp + 0x1c]
add esp, 0xc
add ecx, 0x9544
call fcn.004c4910
cmp dword [0x5f321c], 0xc8
jle 0x4abaca
cmp dword [0x5f1a94], edi
jne 0x4abaca
mov ecx, dword [0x5f2620]
mov edx, dword [ecx + 0x20]
push 0x5b5770
push esi
push 0x4ab
push edx
mov dword [0x5f1a94], esi
call dword [sym.imp.USER32.dll_PostMessageW]
lea ecx, [esp + 0x10]
call fcn.004a4690
jmp 0x4abded
call fcn.00540873
test eax, eax
jne 0x4aba25
mov dword [esp + 0x58], 0xffffffff
cmp dword [esp + 0x20], edi
je 0x4abafe
mov ecx, dword [esp + 0x1c]
push ecx
push edi
call fcn.0053dbef
mov eax, 0x80040112
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [0x5f2620]
mov ecx, dword [eax + 0x568c]
mov edx, dword [ecx + 0x284]
add ecx, 0x22c
mov ecx, dword [ecx + 0x6c]
add ecx, edx
cmp ecx, dword [0x5f2358]
jl 0x4abb5f
push edi
call dword [sym.imp.USER32.dll_MessageBeep]
mov dword [esp + 0x58], 0xffffffff
cmp dword [esp + 0x20], edi
je 0x4abe06
mov ecx, dword [esp + 0x1c]
push ecx
jmp 0x4abe00
call fcn.00488930
test eax, eax
jne 0x4abbbc
lea ecx, [esp + 0x10]
call fcn.004026e0
mov byte [esp + 0x58], 2
cmp dword [0x5f2b5c], edi
je 0x4abbae
lea esi, [esp + 0x10]
call fcn.0047d6e0
cmp eax, edi
je 0x4abbae
mov ecx, esi
call fcn.004a4690
mov dword [esp + 0x58], 0xffffffff
cmp dword [esp + 0x20], edi
je 0x4abe06
mov edx, dword [esp + 0x1c]
push edx
jmp 0x4abe00
lea ecx, [esp + 0x10]
mov byte [esp + 0x58], 0
call fcn.004a4690
mov eax, dword [0x5f2620]
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x4abbfc
mov edx, dword [0x5f2620]
mov eax, dword [edx + 0x20]
push edi
push 0xf120
push 0x112
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [0x5f2620]
mov edx, dword [ecx + 0x20]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x4abc53
mov eax, dword [0x5f2620]
cmp eax, edi
jne 0x4abc09
xor esi, esi
jmp 0x4abc0c
mov esi, dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, esi
je 0x4abc53
mov eax, dword [0x5f2620]
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4abc46
mov ecx, dword [0x5f2620]
call fcn.0048c6a0
mov edx, dword [0x5f2620]
mov eax, dword [edx + 0x20]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x4abc53
mov edi, dword [0x5f2620]
call fcn.004c51e0
xor edi, edi
mov ecx, dword [0x5f2620]
mov edx, dword [ecx + 0x568c]
push edi
push edi
push edi
push edi
push 0xffffffffffffffff
push edi
mov ebx, 1
push ebx
push edi
push edi
push edx
call fcn.004d6240
mov esi, eax
cmp esi, edi
je 0x4abded
mov eax, dword [esi + 4]
mov dword [eax + 0xa4], ebx
mov ecx, dword [esi + 4]
mov dword [ecx + 0x50], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esi + 4]
cmp dword [edx + 0xc], edi
mov dword [esp + 0x14], eax
jne 0x4abceb
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
jmp 0x4abcb0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x7530
ja 0x4abce9
push 0
push 0
push 0
lea eax, [esp + 0x3c]
push eax
call edi
lea ecx, [esp + 0x30]
push ecx
call ebx
lea edx, [esp + 0x30]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [esi + 4]
cmp dword [eax + 0xc], 0
je 0x4abcb0
xor edi, edi
mov eax, dword [esi + 4]
lea ecx, [esp + 0x18]
push ecx
push 0x3e8
push 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], 0xe
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov ecx, dword [eax + 0x44]
lea edx, [esp + 0x30]
push edx
mov edx, dword [eax + 0xc]
push ecx
push 0x4a
push edx
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
cmp eax, edi
jle 0x4abdca
mov ecx, dword [esi + 4]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], edi
mov ebx, dword [ecx + 0x44]
push eax
mov eax, 0x5f27f8
call fcn.004d4890
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4abdc8
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], 0
mov edx, dword [eax]
mov edx, dword [edx + 0x3c]
push ecx
push eax
call edx
cmp dword [esp + 0x14], 0
je 0x4abd82
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xf8]
push 0xffffffffffffffff
push eax
call edx
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esi + 4]
call fcn.004c86f0
mov dword [esp + 0x58], 0xffffffff
cmp dword [esp + 0x20], 0
je 0x4abdb1
mov ecx, dword [esp + 0x1c]
push ecx
push 0
call fcn.0053dbef
xor eax, eax
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
xor edi, edi
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x44]
mov ecx, dword [0x5f2620]
mov ecx, dword [ecx + 0x568c]
mov edx, dword [ecx + 0x20]
push edi
push eax
push 0x8100
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
mov dword [esp + 0x58], 0xffffffff
cmp dword [esp + 0x20], edi
je 0x4abe06
mov eax, dword [esp + 0x1c]
push eax
push edi
call fcn.0053dbef
mov eax, 0x8007000e
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18