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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4a82da
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34c], 0xffffffff
je 0x4a82bf
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0xcc], 3
jne 0x4a7d49
mov eax, dword [ebp - 4]
cmp byte [eax + 0xf0], 0
je 0x4a82bf
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2d7], 0
jne 0x4a82b5
xor edx, edx
push ebp
push 0x4a82ae
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x2d7], 1
mov eax, dword [ebp - 4]
cmp dword [eax + 0x370], 0
jne 0x4a7d93
mov eax, dword [ebp - 4]
cmp byte [eax + 0xcc], 3
jne 0x4a7d93
call fcn.00403720
jmp 0x4a82bf
mov eax, dword [ebp - 4]
cmp byte [eax + 0xcc], 3
jne 0x4a7e62
mov eax, dword [ebp - 4]
cmp dword [eax + 0x32c], 0
jne 0x4a7dbd
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x32c], eax
xor ecx, ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x322], 0
je 0x4a7e0f
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x32c]
mov ecx, 0x3e8
xor edx, edx
div ecx
mov ecx, eax
test ecx, ecx
jne 0x4a7ded
mov ecx, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
xor edx, edx
div ecx
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x324]
jbe 0x4a7e0f
call fcn.00403720
jmp 0x4a82bf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov al, byte [eax + 0x322]
mov edx, dword [ebp - 4]
cmp al, byte [edx + 0x322]
jne 0x4a7e2b
cmp ecx, 0x1b
jbe 0x4a7e62
mov edx, dword [ebp - 4]
mov byte [edx + 0x322], al
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
mov dword [edx + 0x32c], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x310], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x324]
mov edx, dword [ebp - 4]
mov dword [edx + 0x324], eax
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 4]
call fcn.004aa2ec
mov ebx, eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0xcc], 3
jne 0x4a7e9b
mov eax, dword [ebp - 4]
cmp byte [eax + 0x322], 0
je 0x4a7e9b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x324]
cmp eax, ebx
jae 0x4a7e9b
mov ebx, eax
cmp ebx, 0x8000
jle 0x4a7ea8
mov ebx, 0x8000
cmp ebx, 1
jge 0x4a7eb2
mov ebx, 0x1000
lea eax, [ebp - 8]
mov edx, ebx
call fcn.004041b8
xor eax, eax
push ebp
push 0x4a7ef7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x322]
xor al, 1
push eax
lea eax, [ebp - 8]
call fcn.00404058
mov edx, eax
mov ecx, ebx
mov eax, dword [ebp - 4]
call fcn.004a7a70
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a7f08
cmp dword [ebp - 0x14], 0xffffffff
je 0x4a8197
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xe4]
sub eax, 0xa
je 0x4a7fbd
dec eax
je 0x4a7f35
sub eax, 5
je 0x4a7fbd
jmp 0x4a803e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x321], 5
je 0x4a803e
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x14]
call fcn.004041b8
mov eax, dword [ebp - 4]
add eax, 0x36c
mov edx, dword [ebp - 8]
call fcn.00403e90
mov eax, dword [ebp - 4]
lea edx, [eax + 0x36c]
mov eax, dword [ebp - 4]
call fcn.004a96d8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x321], 5
jne 0x4a7fb3
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x36c]
call fcn.00403ca4
mov eax, dword [ebp - 4]
add eax, 0x36c
mov edx, dword [0x581dd8]
mov edx, dword [edx]
call fcn.00403c60
mov eax, dword [ebp - 8]
call fcn.00403e88
mov dword [ebp - 0x14], eax
jmp 0x4a803e
call fcn.00403720
jmp 0x4a82bf
mov eax, dword [ebp - 4]
cmp byte [eax + 0x320], 0
jne 0x4a803e
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x14]
call fcn.004041b8
mov eax, dword [ebp - 4]
add eax, 0x36c
mov edx, dword [ebp - 8]
call fcn.00403e90
mov eax, dword [ebp - 4]
lea edx, [eax + 0x36c]
mov eax, dword [ebp - 4]
call fcn.004a9494
mov eax, dword [ebp - 4]
cmp byte [eax + 0x320], 1
jne 0x4a8034
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x36c]
call fcn.00403ca4
mov eax, dword [ebp - 4]
add eax, 0x36c
mov edx, dword [0x581dd8]
mov edx, dword [edx]
call fcn.00403c60
mov eax, dword [ebp - 8]
call fcn.00403e88
mov dword [ebp - 0x14], eax
jmp 0x4a803e
call fcn.00403720
jmp 0x4a82bf
xor eax, eax
push ebp
push 0x4a8163
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0xcc], 3
jne 0x4a80a1
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x370]
test ebx, ebx
je 0x4a812d
lea eax, [ebp - 8]
call fcn.00404058
mov edx, eax
mov eax, ebx
mov ecx, dword [ebp - 0x14]
call fcn.00413b74
mov eax, dword [ebp - 0x14]
cdq
mov ecx, dword [ebp - 4]
add dword [ecx + 0x108], eax
adc dword [ecx + 0x10c], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
add dword [eax + 0x310], edx
jmp 0x4a812d
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x14]
call fcn.004041b8
mov eax, dword [ebp - 4]
add eax, 0x36c
mov edx, dword [ebp - 8]
call fcn.00403e90
mov eax, dword [ebp - 4]
cmp byte [eax + 0xcc], 0
jne 0x4a812d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x340]
mov edx, dword [0x581dd8]
mov edx, dword [edx]
call fcn.00403f98
jne 0x4a812d
jmp 0x4a810a
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004a6444
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004a6780
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004a8bdc
mov eax, dword [ebp - 4]
cmp dword [eax + 0x30c], 0
jne 0x4a812d
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, 0x4a82f0
call fcn.00404170
test eax, eax
jg 0x4a80e2
mov eax, dword [ebp - 4]
cmp word [eax + 0x112], 0
je 0x4a8159
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0xcc]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x114]
call dword [ebx + 0x110]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a8191
mov byte [ebp - 0x15], 1
jmp 0x4a81f5
call sub.wsock32.dll_WSAGetLastError
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004a8ae0
mov eax, dword [ebp - 4]
call fcn.004a8ad8
cmp eax, 0x2733
je 0x4a81f5
mov eax, dword [ebp - 4]
call fcn.004a8ad8
test eax, eax
je 0x4a81f5
mov eax, dword [ebp - 4]
call fcn.004a8ad8
lea edx, [ebp - 0xc]
call fcn.004a1e08
mov eax, dword [ebp - 4]
cmp word [eax + 0x76], 0
je 0x4a81f5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
call fcn.004a8ad8
mov ecx, eax
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x78]
call dword [ebx + 0x74]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x394], 0
je 0x4a824a
mov eax, dword [ebp - 4]
cmp byte [eax + 0xcc], 0
je 0x4a824a
mov eax, dword [ebp - 4]
cmp byte [eax + 0x322], 0
jne 0x4a824a
mov eax, dword [ebp - 4]
cmp byte [eax + 0xac], 0
je 0x4a8234
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x1c]
cmp eax, 0x1388
ja 0x4a824a
cmp dword [ebp - 0x14], 0xffffffff
je 0x4a824a
cmp dword [ebp - 0x14], 0
je 0x4a824a
cmp dword [ebp - 0x14], 1
jne 0x4a7e6a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a82bf
mov eax, dword [ebp - 4]
mov byte [eax + 0x2d7], 0
cmp byte [ebp - 0x15], 0
je 0x4a827d
mov eax, dword [ebp - 4]
cmp word [eax + 0x36], 0
je 0x4a827d
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x38]
call dword [ebx + 0x34]
mov eax, dword [ebp - 4]
cmp byte [eax + 0xac], 0
je 0x4a82ad
mov eax, dword [ebp - 4]
mov byte [eax + 0xac], 0
mov eax, dword [ebp - 4]
push eax
push 0
push 0x468
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x368]
push eax
call sub.user32.dll_PostMessageA
ret
mov eax, dword [ebp - 4]
mov byte [eax + 0xac], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a82e1
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00403c30
ret