Function at 0x4028b0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create thread
Create udp socket
Resolve dns
Set socket configuration
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
push esi
push edi
mov dword [ebp - 4], 0
call fcn.00401a30
mov dword [ebp - 0x10], 0
push 1
push 0
push 0
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0xffffffff
je 0x402b7d
mov dword [ebp - 0x428], 0x7d00
push 4
lea eax, [ebp - 0x428]
push eax
push 0x1006
push 0xffff
mov ecx, dword [ebp - 0x424]
push ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea edx, [ebp - 0x428]
push edx
push 0x1005
push 0xffff
mov eax, dword [ebp - 0x424]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
mov word [ebp - 0x20], 2
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x402b61
mov edx, dword [ebp - 0x10]
movsx ecx, word [edx + 0xa]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0xc]
mov esi, dword [edx]
lea edi, [ebp - 0x1c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x19
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x1e], ax
lea ecx, [ebp - 0xc]
push ecx
push 0
mov edx, dword [ebp - 0x424]
push edx
push 0x402ba0
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov dword [ebp - 8], eax
push 0x10
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x424]
push ecx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x402b45
cmp dword [ebp - 8], 0
je 0x4029dd
push 0
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov ecx, 1
test ecx, ecx
je 0x402b43
mov edx, dword [ebp + 8]
push edx
call sub.MSVCRT.dll_rand
push eax
push str.HELO__x._s_r_n
push 0x400
lea eax, [ebp - 0x420]
push eax
call sub.MSVCRT.dll__snprintf
add esp, 0x14
lea ecx, [ebp - 0x420]
push ecx
mov edx, dword [ebp - 0x424]
push edx
call fcn.00402700
add esp, 8
test eax, eax
jne 0x402a2c
jmp 0x402b43
lea eax, [ebp - 0x420]
push eax
mov ecx, dword [ebp - 0x424]
push ecx
call fcn.004027e0
add esp, 8
test eax, eax
je 0x402b43
push 0x5b
lea edx, [ebp - 0x420]
push edx
call sub.MSVCRT.dll_strchr
add esp, 8
test eax, eax
je 0x402b43
push 0x5d
lea eax, [ebp - 0x420]
push eax
call sub.MSVCRT.dll_strchr
add esp, 8
test eax, eax
je 0x402b43
lea ecx, [ebp - 0x438]
push ecx
lea edx, [ebp - 0x434]
push edx
lea eax, [ebp - 0x430]
push eax
lea ecx, [ebp - 0x42c]
push ecx
push str._d._d._d._d
push 0x5b
lea edx, [ebp - 0x420]
push edx
call sub.MSVCRT.dll_strchr
add esp, 8
add eax, 1
push eax
call sub.MSVCRT.dll_sscanf
add esp, 0x18
cmp dword [ebp - 0x42c], 0
jne 0x402ade
cmp dword [ebp - 0x430], 0
jne 0x402ade
cmp dword [ebp - 0x434], 0
jne 0x402ade
cmp dword [ebp - 0x438], 0
je 0x402b43
cmp dword [ebp - 0x42c], 0x100
jge 0x402b43
cmp dword [ebp - 0x430], 0x100
jge 0x402b43
cmp dword [ebp - 0x434], 0x100
jge 0x402b43
cmp dword [ebp - 0x438], 0x100
jge 0x402b43
mov eax, dword [ebp - 0x438]
push eax
mov ecx, dword [ebp - 0x434]
push ecx
mov edx, dword [ebp - 0x430]
push edx
mov eax, dword [ebp - 0x42c]
push eax
push str._d._d._d._d
push 0x409d3c
call sub.MSVCRT.dll_sprintf
add esp, 0x18
mov dword [ebp - 4], 1
jmp 0x402b61
cmp dword [ebp - 8], 0
je 0x402b61
push 0
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push 2
mov eax, dword [ebp - 0x424]
push eax
call dword [sym.imp.WS2_32.dll_shutdown]
mov ecx, dword [ebp - 0x424]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
cmp dword [ebp - 4], 0
je 0x402b8a
mov eax, 0x409d3c
jmp 0x402b8c
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret