Function at 0x41898c
Capabilities:
Act as tcp client
Check for time delay via gettickcount
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create thread
Create udp socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
mov eax, 0x4c33e8
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
call fcn.00479eb8
mov dword [ebp - 8], 1
lea edx, [ebp + 0xc]
lea eax, [ebp + 0xc]
call fcn.00488c1c
inc dword [ebp - 8]
mov word [ebp - 0x14], 8
push ebx
call fcn.00418bd0
pop ecx
push 0x10
push 0
lea edx, [ebp - 0x40]
push edx
call fcn.004798f8
add esp, 0xc
mov word [ebp - 0x40], 2
cmp dword [ebp + 0xc], 0
je 0x4189e5
mov ecx, dword [ebp + 0xc]
jmp 0x4189ea
mov ecx, 0x4c3344
push ecx
call sub.WSOCK32.DLL_inet_addr
mov dword [ebp - 0x3c], eax
mov ax, word [ebp + 0x10]
push eax
call sub.WSOCK32.DLL_htons
mov word [ebp - 0x3e], ax
push 0
push 1
push 2
call sub.WSOCK32.DLL_socket
mov esi, eax
mov dword [ebx + 0xc], esi
cmp esi, 0xffffffff
jne 0x418a39
xor eax, eax
mov edx, 2
push eax
lea eax, [ebp + 0xc]
dec dword [ebp - 8]
call fcn.00488dd0
pop eax
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x418b93
mov ecx, dword [ebp + 0x14]
shl ecx, 3
or esi, 0xffffffff
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*4]
mov dword [ebp - 0x28], ecx
call sub.KERNEL32.DLL_GetTickCount
mov dword [ebp - 0x2c], eax
push str.DOWNDATEBASE
push 0
push 1
push 0
call sub.KERNEL32.DLL_CreateEventA
mov edi, eax
jmp 0x418ace
mov eax, dword [0x4e9de4]
mov eax, dword [eax]
call fcn.00464e6c
push 0x10
lea edx, [ebp - 0x40]
push edx
mov ecx, dword [ebx + 0xc]
push ecx
call sub.WSOCK32.DLL_connect
mov esi, eax
test esi, esi
je 0x418ae1
call sub.WSOCK32.DLL_WSAGetLastError
push eax
cmp dword [ebp + 0xc], 0
je 0x418a9c
mov eax, dword [ebp + 0xc]
jmp 0x418aa1
mov eax, 0x4c3373
push eax
push 0x4c3352
mov edx, dword [0x4ea064]
push edx
call fcn.0040f424
add esp, 0x10
push 0x7d0
push edi
call sub.KERNEL32.DLL_WaitForSingleObject
mov ecx, dword [0x4e9de4]
mov eax, dword [ecx]
call fcn.00464e6c
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x28]
ja 0x418ae1
cmp byte [ebx + 4], 0
je 0x418a6a
push edi
call sub.KERNEL32.DLL_CloseHandle
inc esi
jne 0x418b4a
call sub.WSOCK32.DLL_WSAGetLastError
mov word [ebp - 0x14], 8
push eax
cmp dword [ebp + 0xc], 0
je 0x418b01
mov edx, dword [ebp + 0xc]
jmp 0x418b06
mov edx, 0x4c3395
push edx
push 0x4c3374
mov eax, dword [0x4ea064]
push eax
call fcn.0040f424
add esp, 0x10
mov ecx, dword [ebx + 0xc]
push ecx
call sub.WSOCK32.DLL_closesocket
mov dword [ebx + 0xc], 0xffffffff
xor eax, eax
mov edx, 2
push eax
lea eax, [ebp + 0xc]
dec dword [ebp - 8]
call fcn.00488dd0
pop eax
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x418b93
xor ecx, ecx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], ecx
mov word [ebp - 0x14], 8
push eax
push 0
push ebx
push 0x418bf0
push 0
push 0
call sub.KERNEL32.DLL_CreateThread
mov esi, eax
mov edx, 2
test esi, esi
mov dword [ebx + 8], esi
setne al
and eax, 1
push eax
lea eax, [ebp + 0xc]
dec dword [ebp - 8]
call fcn.00488dd0
pop eax
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret