Function at 0x40ceac
Capabilities:
Check for time delay via gettickcount
Get hostname
Resolve dns
Set socket configuration

Disassembly:
mov eax, 0x41a75f
call fcn.0040e0b0
sub esp, 0xb4
push ebx
push esi
push edi
push 0x429024
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
and dword [ebp - 4], 0
push 0x10
lea eax, [ebp - 0x20]
push 0
push eax
call sub.MSVCR71.dll_memset
add esp, 0xc
lea esi, [ebx + 0x20]
push esi
mov word [ebp - 0x20], 2
call dword [sym.imp.WS2_32.dll_inet_addr]
cmp eax, 0xffffffff
mov dword [ebp - 0x1c], eax
jne 0x40cffc
push 0x1f
pop ecx
xor eax, eax
mov byte [ebp - 0xbc], 0
lea edi, [ebp - 0xbb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x80
lea eax, [ebp - 0xbc]
push eax
call dword [sym.imp.WS2_32.dll_gethostname]
test eax, eax
je 0x40cf30
xor esi, esi
jmp 0x40d04d
push esi
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x10]
mov esi, 0x42903c
push eax
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.0040bad7
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edi, dword [ebp - 0x10]
cmp dword [0x429040], edi
je 0x40cf90
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
sub eax, ecx
cmp eax, 0xea60
jbe 0x40cf8d
push edi
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call fcn.0040c169
jmp 0x40cf90
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x40cffc
lea eax, [ebx + 0x20]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x40cf29
mov esi, eax
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x24]
push 4
push dword [eax]
lea eax, [ebp - 0x1c]
push eax
call sub.MSVCR71.dll_memcpy
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp - 0x1c]
mov edi, eax
lea eax, [ebx + 0x20]
push eax
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
lea eax, [ebp - 0x3c]
push eax
mov ecx, 0x42903c
mov byte [ebp - 4], 2
call fcn.0040cce2
mov dword [eax], edi
lea ecx, [ebp - 0x3c]
mov dword [eax + 4], esi
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor eax, eax
mov ax, word [ebx + 0xe8]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x1e], ax
lea edi, [ebx + 0xc]
lea esi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
push esi
push dword [ebx + 8]
push 2
call dword [sym.imp.WS2_32.dll_socket]
cmp eax, 0xffffffff
mov dword [ebx], eax
je 0x40d04d
push 4
add ebx, 4
push ebx
push 0x1005
push 0xffff
push eax
mov dword [ebx], 0x7d0
call dword [sym.imp.WS2_32.dll_setsockopt]
inc esi
push 0x429024
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret