Function at 0x40169e
Capabilities:
Create raw socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x41b004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xc], 0x10
lea edi, [ebp - 0x1c]
mov dword [ebp - 8], 0x1f4
stosd dword es:[edi], eax
or esi, 0xffffffff
push 1
push 0
push 0
stosd dword es:[edi], eax
push 1
push 3
push 2
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x2c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
pop eax
push eax
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov ebx, eax
mov dword [ebp - 0x34], ebx
cmp ebx, esi
je 0x401895
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
lea eax, [ebp - 8]
push 4
push eax
push 0x1006
push 0xffff
push ebx
call edi
cmp eax, esi
je 0x40188e
push 4
lea eax, [ebp - 8]
push eax
push 0x1005
push 0xffff
push ebx
call edi
cmp eax, esi
je 0x40188e
push 2
pop eax
mov edi, 0x42dae8
mov word [ebp - 0x1c], ax
push edi
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x18], eax
cmp eax, esi
jne 0x40177a
push edi
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov edi, eax
test edi, edi
je 0x40188e
movsx eax, word [edi + 0xa]
push eax
mov eax, dword [edi + 0xc]
push dword [eax]
lea eax, [ebp - 0x18]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ax, word [edi + 8]
add esp, 0xc
mov word [ebp - 0x1c], ax
push 0x200
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
je 0x40188e
push 0x200
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x40187e
push 0x1fe
lea eax, [edi + 2]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov word [edi], 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov word [edi + 4], ax
xor eax, eax
push 0x40
mov word [edi + 6], ax
lea eax, [edi + 0xc]
push 0x45
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor eax, eax
mov word [edi + 2], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
push 0x26
pop ebx
mov dword [edi + 8], eax
mov ecx, edi
xor eax, eax
xor edx, edx
push 2
mov word [edi + 6], ax
pop esi
movzx eax, word [ecx]
add ecx, esi
add edx, eax
sub ebx, 1
jne 0x40180e
mov ecx, edx
movzx eax, dx
shr ecx, 0x10
add ecx, eax
mov eax, ecx
shr eax, 0x10
add eax, ecx
not eax
push 0x10
mov word [edi + 2], ax
lea eax, [ebp - 0x1c]
push eax
push ebx
mov ebx, dword [ebp - 0x34]
push 0x4c
push edi
push ebx
call dword [sym.imp.WS2_32.dll_sendto]
or esi, 0xffffffff
cmp eax, esi
je 0x40186c
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0
push 0x200
push dword [ebp - 0x30]
push ebx
call dword [sym.imp.WS2_32.dll_recvfrom]
xor ecx, ecx
cmp eax, esi
cmovne esi, ecx
push dword [ebp - 0x30]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041079d
leave
ret