Function at 0x45b960
Capabilities:
Connect socket

Disassembly:
push 0xffffffffffffffff
push 0x507a36
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
mov eax, dword [0x5894dc]
xor eax, esp
mov dword [esp + 0xec], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5894dc]
xor eax, esp
push eax
lea eax, [esp + 0x104]
mov dword fs:[0], eax
mov eax, dword [esp + 0x120]
mov ebp, dword [esp + 0x124]
mov ebx, dword [esp + 0x114]
mov esi, dword [esp + 0x11c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x128]
mov edi, ecx
mov byte [eax], 0
mov dword [edi + 0x150], 0
lea ecx, [edi + 0x128]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], eax
mov byte [ebp], 0
call fcn.00407610
test ebx, ebx
jne 0x45ba09
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 0x45c0fc
push ebx
lea ecx, [esp + 0x50]
call fcn.00407f30
lea ecx, [esp + 0x4c]
mov dword [esp + 0x10c], 0
call fcn.00407400
push 0x510649
push str.http:__
lea ecx, [esp + 0x54]
call fcn.004087f0
push 0x510649
push str.https:__
lea ecx, [esp + 0x54]
call fcn.004087f0
push 0x2f
lea ecx, [esp + 0x50]
call fcn.004092d0
lea ecx, [esp + 0x4c]
call fcn.0046fb80
test eax, eax
jne 0x45ba82
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 0x45c0e8
push str.localhost
lea ecx, [esp + 0x50]
call fcn.00409680
test al, al
je 0x45bab2
push str.127.0.0.1
lea ecx, [edi + 0x128]
call fcn.004091c0
push str.127.0.0.1
lea ecx, [esp + 0x50]
call fcn.004091c0
cmp byte [0x58134c], 0
je 0x45bac2
mov ecx, esi
call fcn.00457ca0
lea ecx, [esp + 0x78]
call fcn.00408020
mov ecx, dword [esp + 0x118]
push ecx
lea ecx, [esp + 0x7c]
mov byte [esp + 0x110], 1
call fcn.00409ad0
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], 0x80
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 1
call fcn.004e81e0
lea edx, [esp + 0xf0]
push edx
push eax
call fcn.004578f0
add esp, 8
test al, al
je 0x45bb54
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.This_is_an_IPV4_numeric_address...
mov ecx, esi
call edx
mov dword [esp + 0x30], 2
jmp 0x45bb88
lea ecx, [esp + 0x4c]
call fcn.004e81e0
lea ecx, [esp + 0xf0]
push ecx
push eax
call fcn.004579a0
add esp, 8
test al, al
je 0x45bb8d
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.This_is_an_IPV6_numeric_address...
mov ecx, esi
call eax
mov dword [esp + 0x30], 0x17
or dword [esp + 0x2c], 4
cmp dword [0x58bc60], 0
jne 0x45bbdb
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x118]
push ebp
push ecx
push esi
push edx
push ebx
mov ecx, edi
call fcn.0045b2d0
lea ecx, [esp + 0x78]
mov bl, al
mov byte [esp + 0x10c], 0
call fcn.00408310
lea ecx, [esp + 0x4c]
mov dword [esp + 0x10c], 0xffffffff
call fcn.00408310
mov al, bl
jmp 0x45c0fe
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x80]
call fcn.004e81e0
push eax
lea ecx, [esp + 0x58]
call fcn.004e81e0
push eax
call dword [0x58bc60]
test eax, eax
je 0x45bca0
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
push str.Failed_to_get_host_address_info.__1_
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Versions_of_Windows_earlier_than_Windows_XP_are_limited_to_handling_IPv4_only
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.On_Windows_Server_2003_and_Windows_XP__IPv6_addresses_are_returned_only_if_IPv6_is_installed_on_the_local_computer.
mov ecx, esi
call eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push esi
push eax
call fcn.00458120
mov ebp, dword [esi]
add esp, 8
lea ecx, [esp + 0x4c]
add ebp, 0x28
call fcn.004e81e0
mov edx, dword [ebp]
push eax
push str.hostOrIpAddr
mov ecx, esi
call edx
mov ebp, dword [esi]
lea ecx, [esp + 0x78]
add ebp, 0x28
call fcn.004e81e0
push eax
mov eax, dword [ebp]
push str.port
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.reverting_to_gethostbyname...
mov ecx, esi
call eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x118]
push ecx
push edx
push esi
push eax
jmp 0x45bba5
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45bd37
mov edx, dword [esi]
cmp dword [eax + 4], 2
mov eax, dword [edx + 0x14]
mov ecx, esi
jne 0x45bcc0
push str.Connect_using_IPV4.
jmp 0x45bcc5
push str.Connect_using_IPV6.
call eax
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
cmp edx, 2
mov eax, dword [ecx + 0x18]
jne 0x45bcdb
add eax, 4
jmp 0x45bcde
add eax, 8
mov ecx, dword [ecx + 0xc]
cmp ecx, 6
je 0x45bd0a
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
push ecx
push str.ai_protocol
mov ecx, esi
call eax
mov ecx, dword [esp + 0x18]
call fcn.00457e70
mov ecx, dword [esp + 0x24]
mov byte [ecx], 1
jmp 0x45c0d7
lea ebp, [edi + 0x128]
push ebp
push eax
push edx
call fcn.004578c0
mov ebx, dword [esi]
add esp, 0xc
mov ecx, ebp
add ebx, 0x28
call fcn.004e81e0
mov edx, dword [ebx]
push eax
push str.ipAddress
mov ecx, esi
call edx
mov eax, dword [esp + 0x18]
push 1
push esi
push eax
mov ecx, edi
call fcn.0045b0c0
test al, al
je 0x45c0aa
cmp dword [edi + 0xa4], 0xffffffff
je 0x45c0aa
cmp dword [edi + 0x11c], 0
je 0x45bd67
mov ecx, edi
call fcn.00457f00
mov ebx, dword [edi + 0x11c]
mov dword [esp + 0x24], 0
mov byte [esp + 0x17], 0
mov ebp, 0x64
nop
call fcn.0041e170
cmp dword [esp + 0x24], 0
mov dword [esp + 0x74], eax
je 0x45bda5
cmp ebx, ebp
jb 0x45bd9b
sub ebx, ebp
cmp ebx, 0x64
jae 0x45bda5
mov ebx, 0x64
mov byte [esp + 0x17], 1
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x18]
mov eax, dword [edi + 0xa4]
push ecx
push edx
push eax
xor ebp, ebp
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
mov dword [esp + 0x20], eax
je 0x45bfad
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
mov dword [esp + 0x1c], eax
je 0x45be27
cmp eax, 0x2726
jne 0x45be18
mov ebp, dword [esi]
lea ecx, [esp + 0x4c]
add ebp, 0x28
call fcn.004e81e0
mov edx, dword [ebp]
push eax
push str.HostOrIpAddress
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 0x45bfa5
cmp dword [esp + 0x1c], 0x2733
jne 0x45bfa5
lea ecx, [esp + 0x2b]
push ecx
lea edx, [esp + 0x2d]
push edx
lea eax, [esp + 0x32]
push eax
push esi
push 1
push ebx
mov ecx, edi
call fcn.00458a90
test al, al
jne 0x45bebd
cmp byte [esp + 0x17], al
jne 0x45bfa5
call fcn.0041e170
mov edx, dword [esp + 0x74]
cmp eax, edx
mov ecx, 0x64
jbe 0x45be7b
sub eax, edx
mov ecx, eax
cmp ebx, ecx
jbe 0x45bfa5
sub ebx, ecx
cmp ebx, 0x3e8
jbe 0x45bea5
mov ebp, 0x3e8
push ebp
call fcn.0041e160
add esp, 4
add dword [esp + 0x24], 1
jmp 0x45bd80
mov ebp, 0x64
push ebp
call fcn.0041e160
add esp, 4
add dword [esp + 0x24], 1
jmp 0x45bd80
mov ecx, edi
call fcn.00457f30
lea ecx, [edi + 0xb0]
mov byte [edi + 0xa0], 1
call fcn.004b68d0
lea ecx, [esp + 0xc8]
call fcn.00408020
cmp dword [edi + 0xa8], 2
mov byte [esp + 0x10c], 2
push esi
jne 0x45bf0a
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0xd0]
push edx
mov ecx, edi
call fcn.00459f30
jmp 0x45bf1e
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0xd0]
push ecx
mov ecx, edi
call fcn.0045a010
mov edi, dword [esi]
lea ecx, [esp + 0xc8]
add edi, 0x28
call fcn.004e81e0
mov edx, dword [edi]
push eax
push str.myIP_3
mov ecx, esi
call edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ecx
push str.myPort_3
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.connect_successful.
mov ecx, esi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00457e70
lea ecx, [esp + 0xc8]
mov byte [esp + 0x10c], 1
call fcn.00408310
lea ecx, [esp + 0x78]
mov byte [esp + 0x10c], 0
call fcn.00408310
lea ecx, [esp + 0x4c]
mov dword [esp + 0x10c], 0xffffffff
call fcn.00408310
mov al, 1
jmp 0x45c0fe
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp dword [edi + 0x11c], 0
je 0x45bfc1
mov ecx, edi
call fcn.00457f30
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x45c07d
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 + 0xa0]
call fcn.00408020
cmp dword [edi + 0xa8], 2
mov byte [esp + 0x10c], 3
push esi
jne 0x45c01f
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0xa8]
push ecx
mov ecx, edi
call fcn.00459f30
jmp 0x45c033
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0xa8]
push eax
mov ecx, edi
call fcn.0045a010
mov edi, dword [esi]
lea ecx, [esp + 0xa0]
add edi, 0x28
call fcn.004e81e0
mov edx, dword [edi]
push eax
push str.myIP_4
mov ecx, esi
call edx
mov ecx, dword [esp + 0x20]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
push ecx
push str.myPort_4
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 + 0xa0]
jmp 0x45bf6c
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
mov ecx, dword [esp + 0x20]
add esp, 8
call fcn.00457e70
jmp 0x45c0d7
mov dword [edi + 0x150], 5
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push str.Cannot_connect__invalid_socket__2_
mov ecx, esi
call edx
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45c0d7
mov ecx, dword [0x58bc64]
test ecx, ecx
je 0x45c0d7
push eax
call ecx
lea ecx, [esp + 0x78]
mov byte [esp + 0x10c], 0
call fcn.00408310
lea ecx, [esp + 0x4c]
mov dword [esp + 0x10c], 0xffffffff
call fcn.00408310
xor al, al
mov ecx, dword [esp + 0x104]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xec]
xor ecx, esp
call fcn.004ec47e
add esp, 0xfc
ret 0x18