Function at 0x409ed0
Capabilities:
Check for time delay via gettickcount
Set socket configuration

Disassembly:
sub esp, 0x150
cmp dword [esp + 0x154], 0xffffffff
push ebx
push esi
push edi
push ebp
je 0x40a1e2
xor esi, esi
cmp dword [0x42f7dc], esi
je 0x40a1e2
mov eax, 1
push 4
lea ecx, [esp + 0x20]
inc dword [0x42f7e0]
push ecx
mov dword [0x42fcd0], eax
push eax
mov dword [0x42f330], esi
mov dword [esp + 0x28], eax
push 6
mov eax, dword [esp + 0x174]
push eax
call sub.WSOCK32.dll_setsockopt
lea eax, [esp + 0x60]
push 0x100
cmp byte [0x42f7c4], 0x41
push eax
jne 0x409f41
push 0x37bf
jmp 0x409f46
push 0x37c0
mov ecx, dword [0x438580]
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
mov ebx, dword [esp + 0x168]
lea eax, [esp + 0x60]
push ebx
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push eax
push str.input:
call edi
lea ecx, [esp + 0x48]
add esp, 0xc
push ecx
push ebx
call fcn.0042b900
add esp, 8
cmp eax, 0xffffffff
je 0x409fa5
mov eax, dword [esp + 0x50]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push str.___ld_bytes_
push str.input:
call ebp
add eax, str.input:
push eax
call edi
add esp, 0xc
push 1
call fcn.00403ea0
add esp, 4
push 0
push 0
push 0
push 0
call fcn.004098d0
add esp, 0x10
push 0
push ebx
call dword [sym.imp.KERNEL32.dll__lopen]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x40a04b
lea eax, [esp + 0x60]
push 0x100
push eax
mov ecx, dword [0x438580]
push 0x36fc
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
call fcn.00420970
mov ecx, dword [eax]
lea edx, [esp + 0x60]
push ecx
push ebx
push edx
push str.___s__s___u_
push 0x438790
call edi
add esp, 0x14
xor esi, esi
push 0x438790
call fcn.0040cf20
add esp, 4
push 0x10
call fcn.0040bb30
add esp, 4
cmp dword [0x431744], esi
je 0x40a1ba
push esi
mov eax, dword [0x42f7d0]
push 0x438030
push 0x438790
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40a1ba
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x42f330], 0
mov dword [esp + 0x18], eax
jne 0x40a152
mov edi, dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
xor ebp, ebp
mov eax, dword [0x42f7e4]
mov ecx, dword [esp + 0x10]
push eax
push 0x438c30
push ecx
call dword [sym.imp.KERNEL32.dll__lread]
mov dword [esp + 0x14], eax
cmp eax, ebp
jle 0x40a152
mov ecx, dword [esp + 0x164]
push eax
push 0x438c30
push ecx
call fcn.00409e20
add esp, 0xc
cmp eax, 0xffffffff
je 0x40a148
add esi, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.004098d0
lea eax, [esp + 0x30]
add esp, 0x10
push 1
push ebp
push ebp
push ebp
push eax
call ebx
test eax, eax
je 0x40a13a
cmp dword [0x42f7d4], ebp
je 0x40a0fd
lea eax, [esp + 0x20]
mov ecx, dword [0x42f7d4]
push eax
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x40a12a
lea eax, [esp + 0x20]
mov ecx, dword [0x437014]
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
call edi
test eax, eax
jne 0x40a12a
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
lea eax, [esp + 0x20]
push 1
push ebp
push ebp
push ebp
push eax
call ebx
test eax, eax
jne 0x40a0df
cmp dword [0x42f330], ebp
je 0x40a070
jmp 0x40a152
mov dword [0x42f330], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll__lclose]
lea ecx, [esp + 0x60]
push 0x100
push ecx
mov eax, dword [0x438580]
push 0x37e1
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
cmp dword [esp + 0x10], 0xffffffff
je 0x40a195
cmp dword [0x42f330], 0
mov eax, 0
je 0x40a19a
mov eax, 1
lea ecx, [esp + 0x60]
push eax
mov eax, dword [esp + 0x1c]
push edi
push eax
push esi
push ecx
call fcn.00409bf0
add esp, 0x14
cmp dword [0x42f330], 1
sbb esi, esi
neg esi
push 0
dec dword [0x42f7e0]
push 0
push 0
push 0
call fcn.004098d0
add esp, 0x10
call fcn.00403f30
mov eax, esi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x150
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x150
ret