Function at 0x44f8b0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x52
push 0
push 0
dec ecx
jne 0x44f8b9
push ecx
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0x20], ecx
mov byte [ebp - 0x19], dl
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
call fcn.00403f1c
mov eax, dword [ebp + 0x14]
call fcn.00403f1c
xor eax, eax
push ebp
push 0x45037c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x10], 0
jne 0x450309
mov eax, dword [ebp + 0xc]
test eax, eax
jns 0x44f905
call fcn.00402d7c
mov edx, dword [ebp - 0x18]
mov dword [edx + 0xe0], eax
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xe4], 0
jne 0x44f933
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xe0], 0
jne 0x44f933
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xe0], 0x1e
cmp byte [ebp - 0x19], 4
jne 0x44f945
mov dword [ebp - 0x24], 0xfffffffe
jmp 0x450310
cmp byte [ebp - 0x19], 1
je 0x44f951
cmp byte [ebp + 8], 0
je 0x44f97a
cmp word [0x46ea5c], 0
jne 0x44f97a
push 0x46ea5c
push 0x101
call sub.wsock32.dll_WSAStartup_1
test eax, eax
je 0x44f97a
mov dword [ebp - 0x24], 0xffffffff
jmp 0x450310
mov dword [ebp - 0x2c], 0xffffffff
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 0x20]
call fcn.00403b80
lea eax, [ebp - 0x40]
mov edx, dword [ebp + 0x14]
call fcn.00403b80
cmp byte [ebp - 0x19], 3
jne 0x44f9e1
cmp dword [ebp - 0x20], 0
je 0x44f9b2
mov eax, dword [ebp - 0x20]
mov edx, 0x450398
call fcn.00403e78
je 0x44f9bf
lea eax, [ebp - 0x20]
mov edx, 0x450398
call fcn.00403b80
cmp dword [ebp + 0x14], 0
je 0x44f9d4
mov eax, dword [ebp + 0x14]
mov edx, 0x4503a4
call fcn.00403e78
je 0x44f9e1
lea eax, [ebp + 0x14]
mov edx, 0x4503a4
call fcn.00403b80
cmp byte [ebp - 0x19], 3
jne 0x44fe53
cmp dword [ebp - 0x20], 0
je 0x44fa00
mov eax, dword [ebp - 0x20]
mov edx, 0x450398
call fcn.00403e78
je 0x44fa1d
cmp dword [ebp + 0x14], 0
je 0x44fe53
mov eax, dword [ebp + 0x14]
mov edx, 0x4503a4
call fcn.00403e78
jne 0x44fe53
push 0x4503b4
push dword [ebp - 0x20]
push 0x4503c0
push dword [ebp + 0x14]
lea eax, [ebp - 0x148]
mov edx, 4
call fcn.00403e28
mov edx, dword [ebp - 0x148]
lea eax, [ebp - 0x140]
mov ecx, 0xff
call fcn.00403d44
xor eax, eax
mov dword [ebp - 0x30], eax
push 0
push 0
push 3
push 0
push 0
push 0xc0000000
lea eax, [ebp - 0x140]
add eax, 1
jno 0x44fa77
call fcn.00402d84
push eax
call sub.kernel32.dll_CreateFileA_2
test eax, eax
jns 0x44fa86
call fcn.00402d7c
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x44fc53
call sub.kernel32.dll_GetLastError_2
cmp eax, 0xe7
je 0x44fb60
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xdc], 0x7e1
lea eax, [ebp - 0x24c]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x264], eax
mov byte [ebp - 0x260], 0xb
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x25c], eax
mov byte [ebp - 0x258], 0xb
call sub.kernel32.dll_GetLastError_2
mov dword [ebp - 0x254], eax
mov byte [ebp - 0x250], 0
lea edx, [ebp - 0x264]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xdc]
sub eax, 0x7d0
jae 0x44fb04
call fcn.00402d84
cmp eax, 0x14
jbe 0x44fb0e
call fcn.00402d7c
mov ecx, dword [0x46ce28]
mov eax, dword [ecx + eax*4]
mov ecx, 2
call fcn.00408f84
mov edx, dword [ebp - 0x24c]
lea eax, [ebp - 0x248]
mov ecx, 0xff
call fcn.00403d44
lea edx, [ebp - 0x248]
mov eax, dword [ebp - 0x18]
add eax, 0x11
mov cl, 0xc8
call fcn.00402a10
cmp byte [ebp + 8], 0
jne 0x44fc53
mov dword [ebp - 0x24], 0xfffffff7
jmp 0x450310
imul eax, dword [ebp + 0xc], 0x3e8
jae 0x44fb6e
call fcn.00402d84
push eax
lea eax, [ebp - 0x140]
add eax, 1
jno 0x44fb7f
call fcn.00402d84
push eax
call sub.kernel32.dll_WaitNamedPipeA
test eax, eax
jne 0x44fc46
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xdc], 0x7e0
lea eax, [ebp - 0x268]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x264], eax
mov byte [ebp - 0x260], 0xb
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x25c], eax
mov byte [ebp - 0x258], 0xb
call sub.kernel32.dll_GetLastError_2
mov dword [ebp - 0x254], eax
mov byte [ebp - 0x250], 0
lea edx, [ebp - 0x264]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xdc]
sub eax, 0x7d0
jae 0x44fbee
call fcn.00402d84
cmp eax, 0x14
jbe 0x44fbf8
call fcn.00402d7c
mov ecx, dword [0x46ce28]
mov eax, dword [ecx + eax*4]
mov ecx, 2
call fcn.00408f84
mov edx, dword [ebp - 0x268]
lea eax, [ebp - 0x248]
mov ecx, 0xff
call fcn.00403d44
lea edx, [ebp - 0x248]
mov eax, dword [ebp - 0x18]
add eax, 0x11
mov cl, 0xc8
call fcn.00402a10
cmp byte [ebp + 8], 0
jne 0x44fc53
mov dword [ebp - 0x24], 0xfffffff7
jmp 0x450310
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x65
jne 0x44fa58
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x44fd16
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xdc], 0x7e1
lea eax, [ebp - 0x26c]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x264], eax
mov byte [ebp - 0x260], 0xb
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x25c], eax
mov byte [ebp - 0x258], 0xb
call sub.kernel32.dll_GetLastError_2
mov dword [ebp - 0x254], eax
mov byte [ebp - 0x250], 0
lea edx, [ebp - 0x264]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xdc]
sub eax, 0x7d0
jae 0x44fcbe
call fcn.00402d84
cmp eax, 0x14
jbe 0x44fcc8
call fcn.00402d7c
mov ecx, dword [0x46ce28]
mov eax, dword [ecx + eax*4]
mov ecx, 2
call fcn.00408f84
mov edx, dword [ebp - 0x26c]
lea eax, [ebp - 0x248]
mov ecx, 0xff
call fcn.00403d44
lea edx, [ebp - 0x248]
mov eax, dword [ebp - 0x18]
add eax, 0x11
mov cl, 0xc8
call fcn.00402a10
cmp byte [ebp + 8], 0
jne 0x44fd16
mov dword [ebp - 0x24], 0xfffffff7
jmp 0x450310
cmp dword [ebp - 0x2c], 0xffffffff
je 0x44fe19
xor eax, eax
mov dword [ebp - 0x34], eax
push 0
push 0
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x2c]
test eax, eax
jns 0x44fd39
call fcn.00402d7c
push eax
call sub.kernel32.dll_SetNamedPipeHandleState
test eax, eax
jne 0x44fe19
mov eax, dword [ebp - 0x2c]
test eax, eax
jns 0x44fd53
call fcn.00402d7c
push eax
call sub.kernel32.dll_CloseHandle_2
mov dword [ebp - 0x2c], 0xffffffff
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xdc], 0x7e2
lea eax, [ebp - 0x270]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x264], eax
mov byte [ebp - 0x260], 0xb
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x25c], eax
mov byte [ebp - 0x258], 0xb
call sub.kernel32.dll_GetLastError_2
mov dword [ebp - 0x254], eax
mov byte [ebp - 0x250], 0
lea edx, [ebp - 0x264]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xdc]
sub eax, 0x7d0
jae 0x44fdc1
call fcn.00402d84
cmp eax, 0x14
jbe 0x44fdcb
call fcn.00402d7c
mov ecx, dword [0x46ce28]
mov eax, dword [ecx + eax*4]
mov ecx, 2
call fcn.00408f84
mov edx, dword [ebp - 0x270]
lea eax, [ebp - 0x248]
mov ecx, 0xff
call fcn.00403d44
lea edx, [ebp - 0x248]
mov eax, dword [ebp - 0x18]
add eax, 0x11
mov cl, 0xc8
call fcn.00402a10
cmp byte [ebp + 8], 0
jne 0x44fe19
mov dword [ebp - 0x24], 0xfffffff7
jmp 0x450310
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x44fe31
cmp byte [ebp + 8], 0
jne 0x44fe53
mov dword [ebp - 0x24], 0xfffffff7
jmp 0x450310
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x10], 3
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x18]
mov dword [edx + 8], eax
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x450310
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x44fe5f
cmp byte [ebp - 0x19], 3
je 0x44fe69
cmp byte [ebp + 8], 0
je 0x4502e8
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
call fcn.00403b80
lea eax, [ebp + 0x14]
mov edx, dword [ebp - 0x40]
call fcn.00403b80
cmp dword [ebp + 0x10], 0
jne 0x44fe8c
mov dword [ebp + 0x10], 0xcea
cmp dword [ebp - 0x20], 0
jne 0x44fe9f
lea eax, [ebp - 0x20]
mov edx, 0x4503d0
call fcn.00403b80
push 0
push 1
push 2
call sub.wsock32.dll_socket_1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jne 0x44ff47
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xdc], 0x7d4
lea eax, [ebp - 0x274]
push eax
call sub.wsock32.dll_WSAGetLastError_1
mov dword [ebp - 0x27c], eax
mov byte [ebp - 0x278], 0
lea edx, [ebp - 0x27c]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xdc]
sub eax, 0x7d0
jae 0x44fef8
call fcn.00402d84
cmp eax, 0x14
jbe 0x44ff02
call fcn.00402d7c
mov ecx, dword [0x46ce28]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
call fcn.00408f84
mov edx, dword [ebp - 0x274]
lea eax, [ebp - 0x248]
mov ecx, 0xff
call fcn.00403d44
lea edx, [ebp - 0x248]
mov eax, dword [ebp - 0x18]
add eax, 0x11
mov cl, 0xc8
call fcn.00402a10
mov dword [ebp - 0x24], 0xfffffff8
jmp 0x450310
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0044f738
lea eax, [ebp - 0x14]
xor ecx, ecx
mov edx, 0x10
call fcn.00402b34
mov word [ebp - 0x14], 2
mov eax, dword [ebp - 0x20]
call fcn.00403f2c
push eax
call sub.wsock32.dll_inet_addr_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
je 0x44ff88
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
jmp 0x4500b4
mov eax, dword [ebp - 0x20]
call fcn.00403f2c
push eax
call sub.wsock32.dll_gethostbyname_1
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x45004f
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xdc], 0x7d5
lea eax, [ebp - 0x280]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x290], eax
mov byte [ebp - 0x28c], 0xb
call sub.wsock32.dll_WSAGetLastError_1
mov dword [ebp - 0x288], eax
mov byte [ebp - 0x284], 0
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xdc]
sub eax, 0x7d0
jae 0x44fff4
call fcn.00402d84
cmp eax, 0x14
jbe 0x44fffe
call fcn.00402d7c
mov ecx, dword [0x46ce28]
mov eax, dword [ecx + eax*4]
mov ecx, 1
call fcn.00408f84
mov edx, dword [ebp - 0x280]
lea eax, [ebp - 0x248]
mov ecx, 0xff
call fcn.00403d44
lea edx, [ebp - 0x248]
mov eax, dword [ebp - 0x18]
add eax, 0x11
mov cl, 0xc8
call fcn.00402a10
mov dword [ebp - 0x24], 0xfffffff9
mov eax, dword [ebp - 0x28]
push eax
call sub.wsock32.dll_closesocket_1
jmp 0x450310
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
movzx eax, byte [eax]
mov edx, dword [ebp - 0x38]
mov edx, dword [edx + 0xc]
mov edx, dword [edx]
movzx edx, byte [edx + 1]
shl edx, 8
add eax, edx
jno 0x450072
call fcn.00402d84
mov edx, dword [ebp - 0x38]
mov edx, dword [edx + 0xc]
mov edx, dword [edx]
movzx edx, byte [edx + 2]
shl edx, 0x10
add eax, edx
jno 0x45008a
call fcn.00402d84
mov edx, dword [ebp - 0x38]
mov edx, dword [edx + 0xc]
mov edx, dword [edx]
movzx edx, byte [edx + 3]
shl edx, 0x18
add eax, edx
jno 0x4500a2
call fcn.00402d84
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x38]
mov word [eax + 0xa], 0xa
mov eax, dword [ebp + 0x10]
push eax
call sub.wsock32.dll_htons_1
mov word [ebp - 0x12], ax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x10], 1
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0044f738
push 0x10
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x28]
push eax
call sub.wsock32.dll_connect_1
test eax, eax
jge 0x4501c5
call sub.wsock32.dll_WSAGetLastError_1
cmp eax, 0x2733
je 0x4501c5
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x10], 0
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xdc], 0x7d3
lea eax, [ebp - 0x294]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x290], eax
mov byte [ebp - 0x28c], 0xb
call sub.wsock32.dll_WSAGetLastError_1
mov dword [ebp - 0x288], eax
mov byte [ebp - 0x284], 0
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xdc]
sub eax, 0x7d0
jae 0x45016a
call fcn.00402d84
cmp eax, 0x14
jbe 0x450174
call fcn.00402d7c
mov ecx, dword [0x46ce28]
mov eax, dword [ecx + eax*4]
mov ecx, 1
call fcn.00408f84
mov edx, dword [ebp - 0x294]
lea eax, [ebp - 0x248]
mov ecx, 0xff
call fcn.00403d44
lea edx, [ebp - 0x248]
mov eax, dword [ebp - 0x18]
add eax, 0x11
mov cl, 0xc8
call fcn.00402a10
mov dword [ebp - 0x24], 0xfffffffa
mov eax, dword [ebp - 0x28]
push eax
call sub.wsock32.dll_closesocket_1
jmp 0x450310
mov eax, dword [ebp - 0x18]
call fcn.0044f640
mov dl, 1
mov eax, dword [ebp - 0x18]
call fcn.0044f6b8
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xe0], 0
je 0x4502c9
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0xe0]
test edx, edx
jns 0x4501f9
call fcn.00402d7c
mov eax, dword [ebp - 0x18]
call fcn.004503dc
test al, al
jne 0x4502c9
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x10], 0
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x18]
mov dword [eax + 0xdc], 0x7d3
lea eax, [ebp - 0x298]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x290], eax
mov byte [ebp - 0x28c], 0xb
call sub.wsock32.dll_WSAGetLastError_1
mov dword [ebp - 0x288], eax
mov byte [ebp - 0x284], 0
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xdc]
sub eax, 0x7d0
jae 0x450271
call fcn.00402d84
cmp eax, 0x14
jbe 0x45027b
call fcn.00402d7c
mov ecx, dword [0x46ce28]
mov eax, dword [ecx + eax*4]
mov ecx, 1
call fcn.00408f84
mov edx, dword [ebp - 0x298]
lea eax, [ebp - 0x248]
mov ecx, 0xff
call fcn.00403d44
lea edx, [ebp - 0x248]
mov eax, dword [ebp - 0x18]
add eax, 0x11
mov cl, 0xc8
call fcn.00402a10
mov dword [ebp - 0x24], 0xfffffff9
mov eax, dword [ebp - 0x28]
push eax
call sub.wsock32.dll_closesocket_1
jmp 0x450310
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0xe4], 0
je 0x4502e8
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x10], 1
jne 0x4502e8
mov dl, 1
mov eax, dword [ebp - 0x18]
call fcn.0044f738
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [eax + 8], edx
xor eax, eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [eax + 0xdc], edx
jmp 0x450310
mov dword [ebp - 0x24], 0xffffffec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x450383
lea eax, [ebp - 0x298]
mov edx, 2
call fcn.00403b0c
lea eax, [ebp - 0x280]
call fcn.00403ae8
lea eax, [ebp - 0x274]
mov edx, 4
call fcn.00403b0c
lea eax, [ebp - 0x24c]
call fcn.00403ae8
lea eax, [ebp - 0x148]
call fcn.00403ae8
lea eax, [ebp - 0x40]
mov edx, 2
call fcn.00403b0c
lea eax, [ebp - 0x20]
call fcn.00403ae8
lea eax, [ebp + 0x14]
call fcn.00403ae8
ret