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

Disassembly:
sub esp, 0x4c
push esi
mov esi, ecx
push edi
mov dword [esp + 0x24], esi
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
and dword [esp + 0x10], 0
cmp byte [esi], 0
mov edi, eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
je 0x4219cc
push ebx
push ebp
jmp 0x4216cc
mov edi, dword [esp + 0x28]
mov ebx, dword [sym.imp.KERNEL32.DLL_GetTickCount]
push 0x19
pop esi
call ebx
cmp byte [0x482cbc], 0
je 0x4216e9
push esi
call dword [sym.imp.KERNEL32.DLL_Sleep]
xor esi, esi
push 0
push esi
push 0
push 0x482b00
push dword [0x47aab4]
call dword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
mov esi, eax
call fcn.004357eb
mov dword [0x482c44], eax
call ebx
mov ebp, eax
sub eax, edi
test eax, eax
jle 0x42171b
mov dword [esp + 0x24], eax
jmp 0x421720
and dword [esp + 0x24], 0
mov eax, ebp
sub eax, dword [esp + 0x14]
mov ebx, 0x3e8
mov dword [esp + 0x28], ebp
mov byte [esp + 0x13], 0
cmp eax, ebx
jb 0x421752
add dword [esp + 0x14], ebx
mov eax, ebp
sub eax, dword [esp + 0x14]
mov byte [esp + 0x13], 1
cmp eax, 0x7d0
jb 0x421752
mov dword [esp + 0x14], ebp
call fcn.0041e600
cmp esi, dword [0x47aab4]
jae 0x4218af
mov ebx, esi
cmp esi, dword [0x482c6c]
jae 0x421886
mov eax, dword [0x482c64]
mov esi, dword [eax + ebx*4]
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x421874
lea ecx, [esp + 0x30]
push ecx
push 0
push eax
call dword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
je 0x4217c1
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.WSAEnumNetworkEvents_error___d_
call fcn.0045c406
mov edi, dword [esi]
pop ecx
pop ecx
push 0
add edi, 0xc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov ecx, esi
call dword [edi]
jmp 0x421874
mov eax, dword [esp + 0x30]
test al, 0x20
je 0x4217e2
cmp dword [esp + 0x48], 0
je 0x4217e2
push 1
push dword [esp + 0x4c]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
jmp 0x421874
test al, 0x10
je 0x42186c
mov edi, dword [esp + 0x44]
test edi, edi
je 0x42186c
cmp edi, 0x2740
jne 0x421864
movzx eax, word [esi + 0xb7]
test ax, ax
je 0x421864
mov dx, word [0x482c98]
test dx, dx
je 0x421864
mov ecx, dword [0x482c9c]
test ecx, ecx
je 0x421864
cmp ax, dx
jb 0x421864
movzx eax, ax
cmp eax, ecx
jge 0x421864
lea edi, [esi + 0xb9]
test byte [edi], 2
je 0x421841
lea ecx, [esi + 0xa5]
call fcn.0041e94e
and byte [edi], 0xfd
inc word [esi + 0xb7]
movzx eax, word [esi + 0xb7]
push eax
lea eax, [esi + 0xa5]
push eax
mov ecx, esi
mov byte [esi + 0xf], 0
call fcn.00421482
jmp 0x421874
push 1
push edi
jmp 0x4217d6
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 4]
add ebx, dword [0x47aab4]
cmp ebx, dword [0x482c6c]
jb 0x421771
xor eax, eax
push eax
push eax
push eax
push 0x482b00
push dword [0x47aab4]
call dword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
mov esi, eax
cmp esi, dword [0x47aab4]
jb 0x421763
mov ebx, 0x3e8
mov ecx, dword [0x484014]
call fcn.0043879d
mov ecx, dword [0x484010]
call fcn.0043879d
mov edi, ebp
sub edi, dword [esp + 0x20]
cmp edi, 0x32
jb 0x421947
xor esi, esi
cmp dword [0x482c6c], esi
jbe 0x421903
mov eax, dword [0x482c64]
mov ecx, dword [eax + esi*4]
mov al, byte [ecx + 0xe]
test al, 0x20
je 0x4218fa
and al, 0x26
cmp al, 0x22
jne 0x4218fa
cmp dword [ecx + 0x31], 0
je 0x4218fa
call fcn.00420112
inc esi
cmp esi, dword [0x482c6c]
jb 0x4218da
mov ecx, ebp
sub ecx, dword [esp + 0x1c]
cmp ecx, ebx
jb 0x421935
call fcn.0041f9f4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1e
mov dword [esp + 0x1c], ebp
jne 0x421935
call fcn.0041fd58
call fcn.004100fd
call fcn.00434934
and dword [esp + 0x18], 0
mov ecx, edi
call fcn.0041ed51
mov ecx, edi
call fcn.0041f196
mov dword [esp + 0x20], ebp
xor edi, edi
cmp dword [0x482c6c], edi
jbe 0x42199b
cmp byte [esp + 0x13], 0
mov eax, dword [0x482c64]
mov esi, dword [eax + edi*4]
je 0x421980
movzx eax, word [esi + 0xc]
test ax, ax
je 0x421980
dec eax
mov word [esi + 0xc], ax
test ax, ax
ja 0x421980
xor eax, eax
mov word [esi + 0xc], ax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
test byte [esi + 0xe], 0x10
je 0x421992
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
test al, al
je 0x421992
dec edi
inc edi
cmp edi, dword [0x482c6c]
jb 0x421951
call fcn.00415fef
movzx edx, byte [esp + 0x13]
mov ecx, dword [esp + 0x24]
call fcn.0040efb0
call fcn.00419e4e
call fcn.00420f58
call fcn.0041e612
mov eax, dword [esp + 0x2c]
cmp byte [eax], 0
jne 0x4216c8
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x4c
ret