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

Disassembly:
sub esp, 0x42c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x43c]
push edi
cmp byte [esi], 0
je 0x429733
movsx eax, byte [esi]
push eax
call fcn.0043c684
add esp, 4
test eax, eax
jne 0x42972b
cmp byte [esi], 0x2e
jne 0x429743
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x429716
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x42c
ret
mov al, byte [0x487958]
test al, 1
jne 0x4297e9
mov cl, al
push 0x487940
or cl, 1
mov byte [0x487958], cl
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ebx, 0x487520
mov ebp, 0x487920
mov edx, 0x487820
mov dword [esp + 0x10], 8
mov edi, 0x480cf8
or ecx, 0xffffffff
xor eax, eax
add ebp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
add ebx, 0x60
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x480cf8
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
add edx, 0x20
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
dec eax
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 4], 0
mov dword [esp + 0x10], eax
jne 0x42977d
push 0x429af0
call fcn.0043c032
add esp, 4
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x1d]
mov byte [esp + 0x1c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x487940
xor bl, bl
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor esi, esi
mov ebp, 0x487520
xor edi, edi
mov ecx, dword [esp + 0x440]
push ebp
push ecx
call fcn.0043c4f0
add esp, 8
test eax, eax
je 0x42983a
add edi, 0x60
inc esi
add ebp, 0x60
cmp edi, 0x300
jl 0x429814
jmp 0x4298a7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esi*4 + 0x487920]
add edx, 0xdbba00
cmp edx, eax
jbe 0x429882
lea edi, [esi + 0x18]
or ecx, 0xffffffff
shl edi, 5
add edi, 0x487520
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1c]
mov eax, ecx
mov esi, edi
mov edi, edx
mov bl, 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4298a7
lea ecx, [esi + esi*2]
lea edx, [esi + 0x18]
shl ecx, 5
shl edx, 5
mov byte [ecx + 0x487520], 0
mov byte [edx + 0x487520], 0
mov dword [esi*4 + 0x487920], 0
push 0x487940
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test bl, bl
je 0x4298ec
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x440]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
call fcn.00429270
test eax, eax
jne 0x429900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
xor esi, esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
push esi
push esi
push esi
push esi
push esi
push esi
push closesocket
push str.GatorAsyncWnd
push str.GatorAsyncWndClass
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov edi, eax
test edi, edi
mov dword [esp + 0x18], edi
je 0x429ad5
mov edx, dword [esp + 0x440]
lea ecx, [esp + 0x3c]
push 0x400
push ecx
push edx
push 0x43e
push edi
call sub.WSOCK32.dll_WSAAsyncGetHostByName
test eax, eax
mov dword [esp + 0x14], eax
je 0x429ace
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x479ef4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov dword [esp + 0x10], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [esp + 0x10], eax
jbe 0x429ac0
push 1
push 0
push 0
lea eax, [esp + 0x28]
push edi
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x429a93
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
cmp dword [esp + 0x20], 0x43e
jne 0x429a93
mov eax, dword [esp + 0x28]
shr eax, 0x10
test ax, ax
jne 0x429a93
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov eax, dword [edx]
push eax
call sub.WSOCK32.dll_inet_ntoa
push 0x487940
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor esi, esi
mov ebx, 0x487520
xor edx, edx
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 1
jb 0x429a1e
add edx, 0x60
inc esi
add ebx, 0x60
cmp edx, 0x300
jl 0x4299fc
jmp 0x429a5b
mov ecx, dword [esp + 0x440]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea edx, [esi + esi*2]
push 0x60
shl edx, 5
add edx, 0x487520
push ecx
push edx
call edi
lea eax, [esi + 0x18]
push 0x60
shl eax, 5
add eax, 0x487520
push ebp
push eax
call edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi*4 + 0x487920], eax
push 0x487940
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x440]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x18]
mov esi, 1
mov al, byte [0x487af4]
test al, al
jne 0x429ac0
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
test esi, esi
je 0x42997a
push edi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret
test esi, esi
jne 0x429ace
mov eax, dword [esp + 0x14]
push eax
call sub.WSOCK32.dll_WSACancelAsyncRequest
push edi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x42c
ret