Function at 0x45b2d0
Capabilities:
Connect socket

Disassembly:
push 0xffffffffffffffff
push 0x5079d6
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
mov eax, dword [0x5894dc]
xor eax, esp
mov dword [esp + 0xd4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5894dc]
xor eax, esp
push eax
lea eax, [esp + 0xec]
mov dword fs:[0], eax
mov eax, dword [esp + 0x108]
mov ebx, dword [esp + 0xfc]
mov esi, dword [esp + 0x104]
mov edi, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10c]
lea ebp, [edi + 0x128]
mov dword [edi + 0x150], 0
mov ecx, ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], eax
mov byte [eax], 0
call fcn.00407610
test ebx, ebx
jne 0x45b370
mov dword [edi + 0x150], 1
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Cannot_connect__hostname_is_NULL
mov ecx, esi
call eax
jmp 0x45b92b
push ebx
lea ecx, [esp + 0x3c]
call fcn.00407f30
lea ecx, [esp + 0x38]
mov dword [esp + 0xf4], 0
call fcn.00407400
lea ecx, [esp + 0x38]
call fcn.0046fb80
test eax, eax
jne 0x45b3b8
mov dword [edi + 0x150], 1
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Cannot_connect__hostname_is_zero_length
mov ecx, esi
call eax
jmp 0x45b917
push str.localhost
lea ecx, [esp + 0x3c]
call fcn.00409680
test al, al
je 0x45b3f3
push str.127.0.0.1
mov ecx, ebp
call fcn.004091c0
push str.127.0.0.1
lea ecx, [esp + 0x3c]
call fcn.004091c0
lea ecx, [esp + 0x38]
call fcn.004e81e0
mov dword [esp + 0x24], eax
mov ebx, eax
cmp byte [0x58134c], 0
je 0x45b403
mov ecx, esi
call fcn.00457ca0
mov ecx, dword [esp + 0x100]
xor eax, eax
mov dword [esp + 0xd8], eax
push ecx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov word [esp + 0xdc], 2
call dword [sym.imp.WS2_32.dll_htons]
push ebx
mov word [esp + 0xde], ax
call dword [sym.imp.WS2_32.dll_inet_addr]
lea ecx, [esp + 0x60]
mov dword [esp + 0xdc], eax
call fcn.00408020
cmp dword [esp + 0xdc], 0xffffffff
mov byte [esp + 0xf4], 1
mov dword [esp + 0x30], 0
jne 0x45b59f
mov edx, dword [edi + 0x11c]
mov dword [esp + 0x1c], edx
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 0
call fcn.0041e170
mov ecx, dword [edi + 0xac]
lea edx, [esp + 0x17]
push edx
lea edx, [esp + 0x1a]
push edx
lea edx, [esp + 0x38]
push edx
lea edx, [esp + 0x6c]
push edx
mov edx, dword [esp + 0x38]
push edx
push esi
push 0xc8
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x11c]
push eax
push 0
push ecx
push ebx
call fcn.00458520
mov bl, al
add esp, 0x2c
lea eax, [esp + 0x60]
push eax
mov ecx, ebp
call fcn.00409270
test bl, bl
je 0x45b54c
lea ecx, [esp + 0x60]
call fcn.0046fb80
test eax, eax
je 0x45b54c
mov eax, dword [esp + 0x30]
test eax, eax
je 0x45b53d
mov ebx, dword [esp + 0x1c]
test ebx, ebx
mov dword [esp + 0xdc], eax
je 0x45b5a7
call fcn.0041e170
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jbe 0x45b5a7
sub eax, ecx
cmp eax, ebx
jb 0x45b5a7
mov dword [edi + 0x150], 3
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Application_timeout_after_DNS
mov ecx, esi
call eax
jmp 0x45b906
mov dword [edi + 0x150], 2
jmp 0x45b906
mov ecx, dword [esp + 0x18]
mov byte [ecx], 1
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Cannot_get_host_by_name..
mov ecx, esi
call eax
mov ecx, dword [esp + 0x24]
push ecx
push str.hostname
mov ecx, esi
call fcn.00424660
cmp byte [esp + 0x16], 0
je 0x45b588
mov dword [edi + 0x150], 4
jmp 0x45b906
xor edx, edx
cmp byte [esp + 0x17], dl
setne dl
add edx, 2
mov dword [edi + 0x150], edx
jmp 0x45b906
push ebx
mov ecx, ebp
call fcn.004091c0
push 1
push esi
mov ecx, edi
call fcn.0045aed0
test al, al
je 0x45b8ee
cmp dword [edi + 0xa4], 0xffffffff
je 0x45b8ee
cmp dword [edi + 0x11c], 0
je 0x45b5d6
mov ecx, edi
call fcn.00457f00
mov ebx, dword [edi + 0x11c]
mov dword [esp + 0x20], 0
mov byte [esp + 0x16], 0
mov ebp, 0x64
mov edi, edi
call fcn.0041e170
cmp dword [esp + 0x20], 0
mov dword [esp + 0x18], eax
je 0x45b615
cmp ebx, ebp
jb 0x45b60b
sub ebx, ebp
cmp ebx, 0x64
jae 0x45b615
mov ebx, 0x64
mov byte [esp + 0x16], 1
mov ecx, dword [edi + 0xa4]
push 0x10
lea eax, [esp + 0xdc]
push eax
push ecx
xor ebp, ebp
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
mov dword [esp + 0x28], eax
je 0x45b819
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
mov dword [esp + 0x1c], eax
je 0x45b6bb
cmp eax, 0x2726
jne 0x45b6ac
mov ebp, dword [esi]
lea ecx, [esp + 0x60]
add ebp, 0x28
call fcn.004e81e0
mov edx, dword [ebp]
push eax
push str.IP_Address
mov ecx, esi
call edx
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
mov edx, dword [eax + 0x34]
push ecx
push str.ipAddr
mov ecx, esi
call edx
mov ecx, dword [esp + 0x24]
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
push ecx
push str.Hostname
mov ecx, esi
call edx
mov ecx, dword [edi + 0xa4]
mov eax, dword [esi]
mov edx, dword [eax + 0x34]
push ecx
push str.SocketHandle
mov ecx, esi
call edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x2c]
push str.sockError
mov ecx, esi
call eax
test ebx, ebx
je 0x45b811
cmp dword [esp + 0x1c], 0x2733
jne 0x45b811
lea ecx, [esp + 0x17]
push ecx
lea edx, [esp + 0x3b]
push edx
lea eax, [esp + 0x37]
push eax
push esi
push 1
push ebx
mov ecx, edi
call fcn.00458a90
test al, al
jne 0x45b751
cmp byte [esp + 0x16], al
jne 0x45b811
call fcn.0041e170
mov edx, dword [esp + 0x18]
cmp eax, edx
mov ecx, 0x64
jbe 0x45b70f
sub eax, edx
mov ecx, eax
cmp ebx, ecx
jbe 0x45b811
sub ebx, ecx
cmp ebx, 0x3e8
jbe 0x45b739
mov ebp, 0x3e8
push ebp
call fcn.0041e160
add esp, 4
add dword [esp + 0x20], 1
jmp 0x45b5f0
mov ebp, 0x64
push ebp
call fcn.0041e160
add esp, 4
add dword [esp + 0x20], 1
jmp 0x45b5f0
mov ecx, edi
call fcn.00457f30
lea ecx, [edi + 0xb0]
mov byte [edi + 0xa0], 1
call fcn.004b68d0
lea ecx, [esp + 0x88]
call fcn.00408020
push esi
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x90]
push edx
mov ecx, edi
mov byte [esp + 0x100], 2
call fcn.00459f30
mov edi, dword [esi]
lea ecx, [esp + 0x88]
add edi, 0x28
call fcn.004e81e0
push eax
mov eax, dword [edi]
push str.myIP_1
mov ecx, esi
call eax
mov eax, dword [esp + 0x18]
mov edx, dword [esi]
mov edx, dword [edx + 0x2c]
push eax
push str.myPort_1
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.connect_successful.
mov ecx, esi
call edx
lea ecx, [esp + 0x88]
mov byte [esp + 0xf4], 1
call fcn.00408310
lea ecx, [esp + 0x60]
mov byte [esp + 0xf4], 0
call fcn.00408310
lea ecx, [esp + 0x38]
mov dword [esp + 0xf4], 0xffffffff
call fcn.00408310
mov al, 1
jmp 0x45b92d
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
cmp dword [edi + 0x11c], 0
je 0x45b82d
mov ecx, edi
call fcn.00457f30
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x45b8ca
lea ecx, [edi + 0xb0]
mov byte [edi + 0xa0], 1
call fcn.004b68d0
lea ecx, [edi + 0x10]
call fcn.004b6930
lea ecx, [edi + 0x58]
call fcn.004b6930
lea ecx, [esp + 0xb0]
call fcn.00408020
push esi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, edi
mov byte [esp + 0x100], 3
call fcn.00459f30
mov edi, dword [esi]
lea ecx, [esp + 0xb0]
add edi, 0x28
call fcn.004e81e0
mov edx, dword [edi]
push eax
push str.myIP_2
mov ecx, esi
call edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ecx
push str.myPort_2
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.connect_successful..
mov ecx, esi
call edx
lea ecx, [esp + 0xb0]
jmp 0x45b7d8
mov dword [edi + 0x150], 7
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Connect_function_failed.
mov ecx, esi
call edx
push esi
push ebp
call fcn.00458120
add esp, 8
jmp 0x45b906
mov dword [edi + 0x150], 5
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Cannot_connect__invalid_socket__1_
mov ecx, esi
call edx
lea ecx, [esp + 0x60]
mov byte [esp + 0xf4], 0
call fcn.00408310
lea ecx, [esp + 0x38]
mov dword [esp + 0xf4], 0xffffffff
call fcn.00408310
xor al, al
mov ecx, dword [esp + 0xec]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd4]
xor ecx, esp
call fcn.004ec47e
add esp, 0xe4
ret 0x14