Function at 0x453780
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Get socket status
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b8
mov eax, dword [0x572c40]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 8]
cmp dword [esi + 0x18], 0xffffffff
jne 0x4537da
push 6
push 1
push 2
call sub.WSOCK32.dll_socket
mov dword [esi + 0x18], eax
cmp eax, 0xffffffff
jne 0x45381f
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x276d
jne 0x453808
lea eax, [ebp - 0x1a4]
push eax
push 0x101
call sub.WSOCK32.dll_WSAStartup
test eax, eax
jne 0x4537f1
cmp dword [esi + 0x18], 0xffffffff
je 0x4537a0
pop edi
mov eax, 2
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00481761
mov esp, ebp
pop ebp
ret 0x10
pop edi
mov eax, 0xb
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00481761
mov esp, ebp
pop ebp
ret 0x10
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00481761
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 1
push ecx
push 0x8004667e
push eax
call sub.WSOCK32.dll_ioctlsocket
xorps xmm0, xmm0
push edi
movlpd qword [ebp - 0xc], xmm0
call sub.WSOCK32.dll_gethostbyname
test eax, eax
jne 0x45386b
mov ecx, esi
call fcn.004536c0
pop edi
mov eax, 4
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00481761
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [eax + 0xc]
push dword [ebp + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, 2
mov word [ebp - 0x14], ax
call sub.WSOCK32.dll_htons
mov word [ebp - 0x12], ax
lea eax, [ebp - 0x14]
push 0x10
push eax
push dword [esi + 0x18]
call sub.WSOCK32.dll_connect
test eax, eax
je 0x4538ac
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x2733
jne 0x45398f
mov eax, dword [ebp + 0x14]
lea edi, [eax + eax*4]
add edi, edi
test edi, edi
jle 0x45396c
nop dword [eax]
mov eax, dword [esi + 0x28]
dec edi
test eax, eax
je 0x4538d1
cmp byte [eax], 0
jne 0x453971
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x1b0]
push eax
push 0
lea eax, [ebp - 0x118]
mov dword [ebp - 0x1b0], 0
push eax
push 0
push 0
mov dword [ebp - 0x1ac], 0xc350
mov dword [ebp - 0x118], 1
call sub.WSOCK32.dll_select
cmp eax, 1
je 0x45396d
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x118]
mov dword [ebp - 0x1b8], 0
push eax
push 0
push 0
push 0
mov dword [ebp - 0x1b4], 0xc350
mov dword [ebp - 0x118], 1
call sub.WSOCK32.dll_select
cmp eax, 0xffffffff
jne 0x453964
call sub.WSOCK32.dll_WSAGetLastError
test eax, eax
jne 0x45398f
test edi, edi
jg 0x4538c0
dec edi
test edi, edi
jg 0x4539ad
mov ecx, esi
call fcn.004536c0
pop edi
mov eax, 6
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00481761
mov esp, ebp
pop ebp
ret 0x10
mov ecx, esi
call fcn.004536c0
pop edi
mov eax, 5
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00481761
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x608], 0
test eax, eax
jle 0x4539e8
push eax
mov ecx, esi
call fcn.00454370
test eax, eax
je 0x4539e8
mov ecx, esi
call fcn.004536c0
pop edi
mov eax, 0xd
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00481761
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.00481761
mov esp, ebp
pop ebp
ret 0x10