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

Disassembly:
push 0x98
mov eax, 0x41e122
call fcn.0041c5eb
and dword [ebp - 0x8c], 0
xor esi, esi
and dword [ebp - 0x88], 0
xor ebx, ebx
cmp dword [ebp + 8], 3
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x98], esi
je 0x40aba7
mov edi, 0x80070057
jmp 0x40af01
push dword [edi + 4]
call fcn.00410c67
push dword [edi + 8]
mov esi, eax
call fcn.00410c67
push 0x64
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x74]
push 0
push eax
call fcn.0040dfa0
push esi
push 0x405020
push 0x405078
lea eax, [ebp - 0x74]
push 0x64
push eax
call fcn.0040ab00
mov edi, dword [sym.imp.KERNEL32.dll_OpenEventW]
lea eax, [ebp - 0x74]
add esp, 0x28
push eax
push 0
push 0x100000
call edi
mov dword [ebp - 0x94], eax
test eax, eax
jne 0x40ac20
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x40ae5e
movzx edi, di
or edi, 0x80070000
jmp 0x40ae5e
push esi
push 0x405088
push 0x405078
lea eax, [ebp - 0x74]
push 0x64
push eax
call fcn.0040ab00
add esp, 0x14
lea eax, [ebp - 0x74]
push eax
push 0
push 0x100000
call edi
mov dword [ebp - 0x9c], eax
test eax, eax
jne 0x40ac6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x40ae41
movzx edi, di
or edi, 0x80070000
jmp 0x40ae41
push dword [ebp - 0x84]
xor edi, edi
push edi
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x84], eax
test eax, eax
je 0x40ac50
lea eax, [ebp - 0x8c]
push eax
push edi
push edi
push 0x4050f0
call dword [sym.imp.ADVAPI32.dll_EventRegister]
mov edi, eax
test edi, edi
jne 0x40ae2a
push 0x401050
push 0x30
call fcn.0040cd3f
pop ecx
mov ebx, eax
pop ecx
mov dword [ebp - 0x90], ebx
xor eax, eax
mov dword [ebp - 4], eax
test ebx, ebx
je 0x40ace7
fld1
fstp qword [ebx + 8]
mov dword [ebx], esi
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x28], eax
jmp 0x40ace9
mov ebx, eax
or dword [ebp - 4], 0xffffffff
test ebx, ebx
jne 0x40acfb
mov edi, 0x8007000e
jmp 0x40ae35
mov ecx, ebx
call fcn.0040b4ed
mov edi, eax
test edi, edi
jne 0x40ae2a
push 0x401050
push 0x20
call fcn.0040cd3f
pop ecx
pop ecx
mov dword [ebp - 0x90], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x40ad4a
push dword [ebp - 0x88]
mov ecx, eax
push dword [ebp - 0x8c]
push ebx
push esi
call fcn.0040af5d
mov esi, eax
mov dword [ebp - 0x98], eax
jmp 0x40ad52
xor esi, esi
mov dword [ebp - 0x98], esi
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x40acf1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, esi
mov dword [ebp - 0x90], eax
call fcn.0040b03c
mov edi, eax
cmp edi, 0x490
jne 0x40ad7c
push 0x64
pop eax
jmp 0x40ad9f
test edi, edi
jne 0x40ae2a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x90]
mov edx, 0x3e8
mov ecx, edx
sub ecx, eax
cmp eax, edx
sbb eax, eax
and eax, ecx
mov ecx, dword [ebp - 0x84]
mov edi, dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
push eax
push 0
lea eax, [ebp - 0xa4]
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0x94]
push eax
push 2
mov dword [ebp - 0xa0], ecx
call edi
cmp eax, 0xffffffff
je 0x40ae20
test eax, eax
je 0x40ae1c
cmp eax, 1
je 0x40ae1c
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x9c]
push 0x2710
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x80]
push 0
push eax
push 3
call edi
cmp eax, 0xffffffff
je 0x40ae20
cmp eax, 0x102
je 0x40add9
test eax, eax
je 0x40ae1c
cmp eax, 1
jne 0x40ad5a
xor edi, edi
jmp 0x40ae35
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x40ae35
movzx edi, di
or edi, 0x80070000
push dword [ebp - 0x84]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x94]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x40ae5e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
cmp dword [ebp - 0x8c], esi
jne 0x40ae70
cmp dword [ebp - 0x88], esi
je 0x40ae8e
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
call dword [sym.imp.ADVAPI32.dll_EventUnregister]
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], esi
test ebx, ebx
je 0x40aeb8
push dword [ebx + 0x18]
push dword [ebx + 0x14]
call dword [sym.imp.USER32.dll_ReleaseDC]
push dword [ebx + 0x1c]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [ebx + 0x20]
call esi
push 0x30
push ebx
call fcn.0040cd91
pop ecx
pop ecx
mov ebx, dword [ebp - 0x98]
test ebx, ebx
je 0x40af01
mov dword [ebp - 0x90], ebx
mov dword [ebp - 4], 2
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40aedb
call fcn.0040af2f
or dword [ebp - 4], 0xffffffff
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x40aef7
mov ecx, esi
call fcn.0040bda2
push 4
push esi
call fcn.0040cd91
pop ecx
pop ecx
push 0x20
push ebx
call fcn.0040cd91
pop ecx
pop ecx
mov eax, edi
call fcn.0041c5a6
ret