Function at 0x4028d0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create raw socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbb4
mov eax, dword [0x4110a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
cmp byte [ebx], 0
mov dword [ebp - 0xbb4], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0xbb0], eax
je 0x402fc6
cmp byte [eax], 0
je 0x402fc6
push 0x200
push 0
push 0x4265c0
call fcn.00407980
add esp, 0xc
push 0x200
lea ecx, [ebp - 0x608]
push 0
push ecx
call fcn.00407980
add esp, 0xc
push 0x200
lea edx, [ebp - 0x208]
push 0
push edx
call fcn.00407980
add esp, 0xc
push 0x200
lea eax, [ebp - 0x808]
push 0
push eax
call fcn.00407980
add esp, 0xc
push 0x200
lea ecx, [ebp - 0x408]
push 0
push ecx
call fcn.00407980
add esp, 0xc
push 0x200
lea edx, [ebp - 0xa08]
push 0
push edx
call fcn.00407980
add esp, 0xc
push 0x41010c
mov eax, ebx
call fcn.00403360
add esp, 4
test eax, eax
jg 0x4029da
mov ecx, ebx
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4029a3
lea edi, [ebp - 0x408]
sub ebx, ecx
mov esi, ecx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4029b5
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xbac], 0x50
jmp 0x402a82
push 0x41010c
mov eax, ebx
call fcn.00403360
add esp, 4
dec eax
push eax
push 1
mov edi, ebx
call fcn.00401aa0
add esp, 8
mov esi, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402a00
lea edi, [ebp - 0x408]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402a10
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 5
push 0x41010c
mov eax, ebx
rep movsb byte es:[edi], byte [esi]
call fcn.00403360
inc eax
add esp, 4
push eax
mov edi, ebx
call fcn.00401aa0
add esp, 8
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402a45
lea edi, [ebp - 0xa08]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402a57
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0xa08]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.004051db
add esp, 4
mov dword [ebp - 0xbac], eax
push 0x412114
call fcn.00401900
add esp, 4
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402a91
lea edi, [ebp - 0x208]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402aa1
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 0xbb4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402ac1
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402ad3
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x4120b0
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402af8
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
lea ebx, [ebx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402b10
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412188
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402b35
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402b47
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x4120f8
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402b70
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402b82
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x408]
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402ba0
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402bb2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412188
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402bd7
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402bf0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x4120bc
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402c15
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402c27
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412188
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402c50
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402c62
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x4120c8
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402c87
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402ca0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412188
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402cc5
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402cd7
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412100
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402d00
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402d12
mov ebx, dword [ebp - 0xbb0]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, ebx
rep movsb byte es:[edi], byte [esi]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402d33
push 4
sub eax, edx
push 0x411f24
push 0x413310
mov esi, eax
mov dword [0x413310], 0
call fcn.00404670
add esp, 0xc
push 0xa
push 0x413310
push esi
mov byte [0x413310], 0
call fcn.0040d2fa
mov eax, 0x413310
add esp, 0xc
mov ecx, eax
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402d80
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402d92
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412188
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402db7
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402dd0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412188
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402df5
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402e07
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, ebx
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402e21
lea edi, [ebp - 0x208]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402e33
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0xba8]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov edx, dword [ebp - 0xbac]
push edx
mov edi, eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0xa16], ax
mov eax, 2
lea esi, [ebp - 0x408]
mov word [ebp - 0xa18], ax
call fcn.00403470
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
push 0x10
lea ecx, [ebp - 0xa18]
push ecx
push edi
mov dword [ebp - 0xa14], eax
call dword [sym.imp.WS2_32.dll_connect]
lea eax, [ebp - 0x208]
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402ec0
push 0
sub eax, ecx
push eax
lea edx, [ebp - 0x208]
push edx
push edi
call dword [sym.imp.WS2_32.dll_send]
push 0
push 0x200
lea eax, [ebp - 0x608]
push eax
push edi
call dword [sym.imp.WS2_32.dll_recv]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x41211c
call fcn.00401900
add esp, 4
push eax
lea eax, [ebp - 0x608]
call fcn.00403360
lea ecx, [ebp - 0x608]
add esp, 4
add eax, 3
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x402f24
sub ecx, esi
push ecx
push eax
lea edi, [ebp - 0x608]
call fcn.00401aa0
add esp, 8
mov ecx, eax
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402f40
lea edi, [ebp - 0x808]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402f52
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x412120
rep movsb byte es:[edi], byte [esi]
call fcn.00401900
add esp, 4
push eax
lea eax, [ebp - 0x808]
call fcn.00403360
add esp, 4
dec eax
push eax
push 1
lea edi, [ebp - 0x808]
call fcn.00401aa0
add esp, 8
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402f98
mov edi, 0x4265c0
sub eax, ecx
mov esi, ecx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x402fb0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 0x4265c0
pop ebx
call fcn.00404660
mov esp, ebp
pop ebp
ret