Function at 0x44aa0c
Capabilities:
Create raw socket
Get socket status
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffd4c
mov edi, eax
xor ebx, ebx
lea eax, [esp + 0x10]
push eax
push 0x201
call sub.wsock32.dll_WSAStartup
test eax, eax
jne 0x44ac8b
push 1
push 3
push 2
call sub.wsock32.dll_socket
mov esi, eax
cmp esi, 0xffffffff
je 0x44ac8b
mov dword [esp + 4], 0x1e
push 4
lea eax, [esp + 8]
push eax
push 7
push 0
push esi
call sub.wsock32.dll_setsockopt
cmp eax, 0xffffffff
jne 0x44aa76
push 4
lea eax, [esp + 8]
push eax
push 4
push 0
push esi
call sub.wsock32.dll_setsockopt
inc eax
je 0x44ac8b
lea eax, [esp + 0x1a0]
mov edx, 0x10
call fcn.00403dc4
mov eax, edi
call sub.rtl250.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
mov ebp, eax
push ebp
call sub.wsock32.dll_inet_addr
mov dword [esp + 4], eax
cmp dword [esp + 4], 0xffffffff
je 0x44aabf
mov eax, dword [esp + 4]
mov dword [esp + 0x1a4], eax
mov word [esp + 0x1a0], 2
jmp 0x44aae1
push ebp
call sub.wsock32.dll_gethostbyname
test eax, eax
je 0x44aae1
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x1a4], eax
mov word [esp + 0x1a0], 2
cmp dword [esp + 0x1a4], 0
je 0x44ac8b
mov eax, 0x20
call sub.rtl250.bpl__System__GetMem_qqri
mov dword [esp], eax
mov eax, 0x414
call sub.rtl250.bpl__System__GetMem_qqri
mov edi, eax
mov edx, 0x414
mov eax, edi
call fcn.00403dc4
cmp word [0x53eef8], 0xffff
jne 0x44ab2a
mov word [0x53eef8], 0
jmp 0x44ab31
inc word [0x53eef8]
mov ebp, dword [esp]
mov byte [ebp], 8
mov byte [ebp + 1], 0
mov word [ebp + 2], 0
call sub.kernel32.dll_GetCurrentProcessId
mov word [ebp + 4], ax
movzx eax, word [0x53eef8]
mov word [ebp + 6], ax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov dword [ebp + eax*4 + 8], 0xdeadbeef
inc dword [esp + 4]
cmp dword [esp + 4], 6
jne 0x44ab5c
xor eax, eax
mov dword [esp + 4], 1
mov edx, dword [esp]
mov ecx, dword [esp + 4]
movzx edx, word [edx + ecx*2 - 2]
add eax, edx
inc dword [esp + 4]
cmp dword [esp + 4], 0x11
jne 0x44ab7d
mov edx, eax
shr edx, 0x10
movzx eax, ax
add edx, eax
mov eax, edx
movzx eax, ax
mov edx, 0xffff
sub edx, eax
mov eax, edx
mov word [ebp + 2], ax
push 0x10
lea eax, [esp + 0x1a4]
push eax
push 0
push 0x20
mov eax, dword [esp + 0x10]
push eax
push esi
call sub.wsock32.dll_sendto
inc eax
je 0x44ac7c
mov dword [esp + 0x1b0], 1
mov dword [esp + 0x1b4], esi
mov dword [esp + 8], 1
xor eax, eax
mov dword [esp + 0xc], eax
lea eax, [esp + 8]
push eax
push 0
push 0
lea eax, [esp + 0x1bc]
push eax
push 0
call sub.wsock32.dll_select
test eax, eax
jle 0x44ac7c
push 0
push 0
push 0
push 0x414
push edi
push esi
call sub.wsock32.dll_recvfrom
mov dword [esp + 4], eax
cmp dword [esp + 4], 0xffffffff
je 0x44ac7c
movzx eax, byte [edi]
and al, 0xf
movzx eax, al
add eax, eax
add eax, eax
add eax, 0x20
cmp eax, dword [esp + 4]
jg 0x44ac7c
movzx eax, byte [edi]
and al, 0xf
movzx eax, al
mov ebp, eax
add ebp, ebp
add ebp, ebp
add ebp, edi
cmp byte [ebp], 0
jne 0x44abd2
call sub.kernel32.dll_GetCurrentProcessId
cmp ax, word [ebp + 4]
jne 0x44abd2
movzx eax, word [ebp + 6]
cmp ax, word [0x53eef8]
jne 0x44abd2
mov bl, 1
mov eax, edi
call sub.rtl250.bpl__System__FreeMem_qqrpv
mov eax, dword [esp]
call sub.rtl250.bpl__System__FreeMem_qqrpv
call sub.wsock32.dll_WSACleanup
mov eax, ebx
add esp, 0x2b4
pop ebp
pop edi
pop esi
pop ebx
ret