Function at 0x42abf0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
sub esp, 0x2c
mov eax, dword [0x48db98]
push ebx
push edi
mov edi, dword [esp + 0x38]
mov ebx, dword [edi]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ebx
call fcn.0042b000
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
mov byte [eax], 0
mov eax, dword [ebx + 0x88]
test eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], 0x493e0
jne 0x42ac3c
mov eax, dword [ebx + 0x8c]
test eax, eax
je 0x42acc6
mov ecx, dword [ebx + 0x204]
mov edx, dword [ebx + 0x200]
push ecx
push edx
call fcn.0042b000
push edx
push eax
call fcn.0042b020
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x88]
fild dword [esp + 0x48]
add esp, 0x10
test eax, eax
je 0x42ac89
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
je 0x42ac85
cmp eax, ecx
jl 0x42ac8f
imul ecx, ecx, 0x3e8
mov dword [esp + 0x38], ecx
jmp 0x42ac99
test eax, eax
jne 0x42ac8f
mov eax, dword [ebx + 0x8c]
imul eax, eax, 0x3e8
mov dword [esp + 0x38], eax
call fcn.00453926
sub dword [esp + 0x38], eax
jns 0x42acc6
push str.Connection_time_out
push ebx
call fcn.0042a840
add esp, 8
pop edi
mov eax, 0x1c
pop ebx
mov ecx, dword [esp + 0x28]
call fcn.0044ffb2
add esp, 0x2c
ret
mov eax, dword [ebx + 0x168]
test eax, eax
je 0x42acdc
mov eax, dword [edi + 0x28c]
mov dword [esp + 0xc], eax
jmp 0x42ace6
mov ecx, dword [edi + 0x26c]
mov dword [esp + 0xc], ecx
mov al, byte [edi + 0x2f6]
test al, al
mov ecx, 0x476734
jne 0x42ad47
mov ecx, 0x4747f4
mov eax, ecx
mov edx, dword [esp + 0x40]
push edx
push ecx
mov ecx, dword [esp + 0x14]
push ecx
push eax
push str.About_to_connect___to__s_s_s:_d_n
push ebx
call fcn.0042a770
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
add esp, 0x18
test eax, eax
jne 0x42ad4e
push str.no_address_available
push ebx
call fcn.0042a840
add esp, 8
pop edi
mov eax, 7
pop ebx
mov ecx, dword [esp + 0x28]
call fcn.0044ffb2
add esp, 0x2c
ret
mov eax, 0x477a3c
jmp 0x42acfc
push esi
push 0
push 1
push 2
call sub.WS2_32.dll_socket
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0xc], esi
jne 0x42ad88
push str.couldnt_create_socket
push ebx
call fcn.0042a840
add esp, 8
pop esi
pop edi
mov eax, 7
pop ebx
mov ecx, dword [esp + 0x28]
call fcn.0044ffb2
add esp, 0x2c
ret
mov edx, dword [edi]
mov eax, dword [edx + 0x64]
test eax, eax
je 0x42ada6
pop esi
pop edi
mov eax, 0x2d
pop ebx
mov ecx, dword [esp + 0x28]
call fcn.0044ffb2
add esp, 0x2c
ret
push ebp
lea eax, [esp + 0x24]
push eax
push 0x8004667e
push esi
mov dword [esp + 0x30], 1
call sub.WS2_32.dll_ioctlsocket
or edi, 0xffffffff
xor ebp, ebp
jmp 0x42add0
mov ebx, dword [esp + 0x18]
lea ebx, [ebx]
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp dword [edx + ebp*4], 0
je 0x42af40
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [edx + ebp*4]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
mov ax, word [eax + 8]
push ecx
mov word [esp + 0x2c], ax
call sub.WS2_32.dll_htons
push 0x10
lea edx, [esp + 0x2c]
push edx
push esi
mov word [esp + 0x36], ax
call sub.WS2_32.dll_connect
mov edi, eax
cmp edi, 0xffffffff
jne 0x42ae79
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb
je 0x42ae5d
cmp eax, 0x2732
jle 0x42ae43
cmp eax, 0x2734
jle 0x42ae5d
mov ecx, dword [esp + 0x14]
push eax
lea eax, [ebp + 1]
push eax
push ecx
push str.Failed_to_connect_to__s_IP_number__d:__d
push ebx
call fcn.0042a840
add esp, 0x14
jmp 0x42ae79
cmp dword [ebx + 0x278], 2
jne 0x42ae6e
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0x40]
call fcn.0042ab00
mov edi, eax
cmp edi, 1
jne 0x42aeba
cmp dword [ebx + 0x278], 2
jne 0x42aed3
mov eax, dword [esp + 0x50]
test eax, eax
je 0x42ae9d
mov edx, dword [esp + 0x44]
mov ecx, dword [edx]
mov edx, dword [ecx + 0xc]
mov ecx, dword [edx + ebp*4]
mov dword [eax], ecx
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x42aea7
mov dword [eax], esi
pop ebp
pop esi
pop edi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x28]
call fcn.0044ffb2
add esp, 0x2c
ret
test edi, edi
jne 0x42aed3
mov edx, esi
call fcn.0042aba0
test eax, eax
je 0x42af16
cmp eax, 0x2748
je 0x42af16
or edi, 0xffffffff
call fcn.0042b000
mov esi, edx
mov edx, dword [esp + 0x20]
mov ebx, eax
mov eax, dword [esp + 0x1c]
push edx
push eax
push esi
push ebx
call fcn.0042b020
mov ecx, dword [esp + 0x50]
add esp, 0x10
sub ecx, eax
mov dword [esp + 0x40], ecx
js 0x42af22
inc ebp
test edi, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
jne 0x42adc6
jmp 0x42ae87
mov ecx, dword [esp + 0x54]
mov byte [ecx], 1
jmp 0x42ae87
mov eax, dword [esp + 0x18]
lea edx, [ebp + 1]
push edx
push str.Connect_timeout_on_IP_number__d
push eax
call fcn.0042a840
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
add esp, 0xc
test edi, edi
je 0x42ae87
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0x4c]
push str.Connect_failed
push ebx
mov dword [ecx], 0xffffffff
call fcn.0042a840
mov ecx, dword [esp + 0x40]
add esp, 8
pop ebp
pop esi
pop edi
mov eax, 7
pop ebx
call fcn.0044ffb2
add esp, 0x2c
ret