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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov byte [ebp - 6], cl
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov edi, dword [ebp + 8]
mov eax, edi
mov edx, dword [0x5bc024]
mov edx, dword [edx]
call fcn.00403d34
mov eax, dword [ebp - 4]
cmp byte [eax + 0x228], 0
jne 0x5a9abe
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1e8], 0
je 0x5a98ce
mov eax, dword [ebp - 4]
cmp dword [eax + 0x1ec], 0
jne 0x5a98ce
mov eax, dword [ebp - 4]
mov byte [eax + 0x1e8], 0
mov eax, dword [ebp - 4]
inc dword [eax + 0x1ec]
call sub.kernel32.dll_GetTickCount
mov esi, eax
xor edx, edx
push ebp
push 0x5a9ab7
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc0]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x214], 0
jne 0x5a9940
mov eax, dword [ebp - 4]
cmp byte [eax + 0x217], 0
jne 0x5a992f
mov edx, dword [ebp - 4]
mov eax, 0x1d4c0
mov dword [edx + 0xc0], eax
cmp eax, dword [ebp - 0xc]
jge 0x5a992f
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0xc0], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc0]
mov eax, dword [ebp - 4]
call fcn.005aa9ac
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x24c]
mov eax, 0x5a9ad0
call fcn.00404200
mov ebx, eax
test ebx, ebx
jle 0x5a998f
push edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24c]
mov ecx, ebx
mov edx, 1
call fcn.0040411c
mov eax, dword [edi]
call fcn.00403f18
mov ecx, eax
mov eax, dword [ebp - 4]
add eax, 0x24c
mov edx, 1
call fcn.0040415c
jmp 0x5a9a54
cmp byte [ebp - 5], 0
je 0x5a9a54
mov eax, dword [ebp - 4]
cmp word [eax + 0x3e], 0
je 0x5a99af
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x40]
call dword [ebx + 0x3c]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.005accec
mov eax, dword [ebp - 4]
cmp byte [eax + 0xa4], 0
je 0x5a99cf
call fcn.004037b0
jmp 0x5a9abe
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1e8], 0
je 0x5a99e5
call fcn.004037b0
jmp 0x5a9abe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24c]
mov edx, dword [0x5bc024]
mov edx, dword [edx]
call fcn.00404028
jne 0x5a9a2c
call sub.kernel32.dll_GetTickCount
sub eax, esi
cmp eax, 0x3e8
jbe 0x5a9a2c
call sub.kernel32.dll_GetTickCount
mov esi, eax
mov eax, dword [ebp - 4]
push eax
push 0
push 0x468
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x248]
push eax
call sub.user32.dll_PostMessageA
mov eax, dword [ebp - 4]
cmp byte [eax + 0x268], 0
je 0x5a9a54
mov eax, dword [ebp - 4]
cmp byte [eax + 0x215], 0
jne 0x5a9a54
mov eax, dword [ebp - 4]
cmp byte [eax + 0x216], 0
je 0x5a9940
mov eax, dword [ebp - 4]
cmp byte [eax + 0x214], 0
jne 0x5a9a74
mov eax, dword [ebp - 4]
call fcn.005aaa04
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0xc0], edx
cmp dword [edi], 0
je 0x5a9a88
mov eax, dword [ebp - 4]
add eax, 0x224
mov edx, dword [edi]
call fcn.00403cf0
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x215]
and al, byte [ebp - 6]
je 0x5a9aa0
mov eax, dword [ebp - 4]
mov byte [eax + 0x215], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a9abe
mov eax, dword [ebp - 4]
dec dword [eax + 0x1ec]
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4