Function at 0x40e856
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14dc
push 0xa
push 0xd244153
push 0x575f455a
push 0x494c4149
push 0x54494e49
push 0x5f4f545f
push 0x454c4241
push 0x4e555f52
push 0x4f525245
push 0x24202445
push 0x4d495424
mov dword [ebp - 0x1c], esp
push 0
push 0xa0d2454
push 0x454b434f
push 0x535f4554
push 0x41455243
push 0x5f4f545f
push 0x454c4241
push 0x4e555f52
push 0x4f525245
push 0x24202445
push 0x4d495424
mov dword [ebp - 0x18], esp
push 0
push 0xa0d2452
push 0x45565245
push 0x535f4548
push 0x545f4f54
push 0x5f544345
push 0x4e4e4f43
push 0x5f4f545f
push 0x454c4241
push 0x4e555f52
push 0x4f525245
push 0x24202445
push 0x4d495424
mov dword [ebp - 0x14], esp
push 0xa
push 0xd0a0d73
push 0x25203a74
push 0x736f480a
push 0xd302e31
push 0x2f505454
push 0x48207325
push 0x20544547
mov dword [ebp - 0x10], esp
push 0
push 0
push 0
push 0x50000002
mov dword [ebp - 0xc], esp
xor eax, eax
pushal
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov dword [ebp - 0x14c8], 0
mov dword [ebp - 0x14c4], 0
lea eax, [ebp - 0x14b8]
push 0x190
push 0
push eax
call dword [sym.imp.ntdll.dll_memset]
add esp, 0xc
lea eax, [ebp - 0x14b8]
push eax
push 0x202
call dword [sym.imp.ws2_32.dll_WSAStartup]
cmp eax, 0
je 0x40e9a5
push dword [ebp - 0x1c]
call dword [ebx + 0x30]
mov dword [esp + 0x1c], 0xffffffff
jmp 0x40ed27
push 0
push 1
push 2
call dword [sym.imp.ws2_32.dll_socket]
cmp eax, 0xffffffff
jne 0x40e9c9
push dword [ebp - 0x18]
call dword [ebx + 0x30]
mov dword [esp + 0x1c], 0xffffffff
jmp 0x40ed27
mov dword [ebp - 0x14dc], eax
push dword [ebp + 8]
call dword [sym.imp.ws2_32.dll_gethostbyname]
cmp eax, 0
jne 0x40e9f0
push dword [ebp - 0x14]
call dword [ebx + 0x30]
mov dword [esp + 0x1c], 0xffffffff
jmp 0x40ed27
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 4], eax
push 0x10
push ecx
push dword [ebp - 0x14dc]
call dword [sym.imp.ws2_32.dll_connect]
cmp eax, 0
je 0x40ea24
push dword [ebp - 0x14]
call dword [ebx + 0x30]
mov dword [esp + 0x1c], 0xffffffff
jmp 0x40ed27
lea eax, [ebp - 0x1328]
push dword [ebp + 8]
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push eax
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x1328]
push eax
call dword [sym.imp.kernel32.dll_lstrlenA]
lea ecx, [ebp - 0x1328]
push 0
push eax
push ecx
push dword [ebp - 0x14dc]
call dword [sym.imp.ws2_32.dll_send]
cmp eax, 0xffffffff
jne 0x40ea78
push dword [ebp - 0x14]
call dword [ebx + 0x30]
mov dword [esp + 0x1c], 0xffffffff
jmp 0x40ed27
mov dword [ebp - 0x14d8], 0
mov dword [ebp - 0x14d4], 0
lea eax, [ebp - 0x1224]
mov dword [ebp - 0x14d0], eax
push 0
push 0x1000
push eax
push dword [ebp - 0x14dc]
call dword [sym.imp.ws2_32.dll_recv]
cmp eax, 0
jbe 0x40ed16
mov dword [ebp - 0x14cc], eax
cmp dword [ebp - 0x14c4], 0
jne 0x40eca4
push 0x4b4f20
push 0x30303220
push 0x312e312f
push 0x50545448
mov dword [ebp - 8], esp
xor ecx, ecx
mov edx, dword [ebp - 0x14d0]
cmp ecx, 0xf
jae 0x40eaf7
mov al, byte [esp + ecx]
cmp byte [edx + ecx], al
jne 0x40eaf7
inc ecx
jmp 0x40eae7
add esp, 0x10
cmp ecx, 0xf
je 0x40eb0c
mov dword [esp + 0x1c], 0xffffffff
jmp 0x40eca2
mov dword [ebp - 0x14c4], 1
pushal
push 0x3a6874
push 0x676e654c
push 0x2d746e65
push 0x746e6f43
mov dword [ebp - 4], esp
xor ebx, ebx
mov dword [ebp - 0x14c0], ebx
lea esi, [ebp - 0x1224]
cmp ebx, 0x1000
jae 0x40ebf9
cmp byte [esi + ebx], 0xd
jne 0x40ebf3
cmp byte [esi + ebx + 1], 0xa
jne 0x40ebf3
mov eax, dword [ebp - 0x14c0]
mov ecx, ebx
sub ecx, eax
lea eax, [eax + esi]
lea edx, [ebp - 0x224]
mov byte [edx + ecx], 0
push ecx
push eax
push edx
call dword [sym.imp.ntdll.dll_memcpy]
add esp, 0xc
lea eax, [ebp - 0x224]
lea ecx, [ebp - 0x120]
mov byte [ecx + 0xf], 0
push 0xf
push eax
push ecx
call dword [sym.imp.ntdll.dll_memcpy]
add esp, 0xc
lea eax, [ebp - 0x120]
push esp
push eax
call dword [sym.imp.kernel32.dll_lstrcmpiA]
cmp eax, 0
jne 0x40ebdc
lea eax, [ebp - 0x215]
xor edx, edx
cmp byte [eax], 0
je 0x40ebd6
movzx ecx, byte [eax]
cmp ecx, 0x30
jb 0x40ebd3
cmp ecx, 0x39
ja 0x40ebd3
sub ecx, 0x30
imul edx, edx, 0xa
lea edx, [edx + ecx]
inc eax
jmp 0x40ebb8
mov dword [ebp - 0x14d8], edx
lea eax, [ebx + 2]
mov dword [ebp - 0x14c0], eax
cmp byte [esi + ebx + 2], 0xd
jne 0x40ebf3
cmp byte [esi + ebx + 3], 0xa
je 0x40ebf9
inc ebx
jmp 0x40eb3c
add esp, 0x10
cmp dword [ebp - 0x14d8], 0
je 0x40ec3a
push dword [ebp - 0x14d8]
push 0x40
call dword [sym.imp.kernel32.dll_GlobalAlloc]
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp - 0x14cc]
sub eax, ebx
sub eax, 4
mov dword [ebp - 0x14bc], eax
lea ecx, [esi + ebx + 4]
push eax
push ecx
push dword [edx]
call dword [sym.imp.ntdll.dll_memcpy]
add esp, 0xc
popal
cmp dword [ebp - 0x14d8], 0
je 0x40eca2
mov eax, dword [ebp - 0x14d8]
shl eax, 4
and eax, 0xffff0000
push eax
push 0
push 0x401
push dword [ebx + 0x8ec]
call dword [sym.imp.user32.dll_SendMessageA]
push 0
push 0
push 0x402
push dword [ebx + 0x8ec]
call dword [sym.imp.user32.dll_SendMessageA]
push 0
push 1
push 0x404
push dword [ebx + 0x8ec]
call dword [sym.imp.user32.dll_SendMessageA]
mov eax, dword [ebp - 0x14bc]
cmp eax, dword [ebp - 0x14d8]
jl 0x40ea8c
jmp 0x40ed16
mov eax, dword [ebp - 0x14bc]
add eax, dword [ebp - 0x14cc]
mov ecx, eax
sub ecx, dword [ebp - 0x14d4]
shr ecx, 0xc
cmp ecx, 0
je 0x40ecdb
mov dword [ebp - 0x14d4], eax
push 0
push 1
push 0x405
push dword [ebx + 0x8ec]
call dword [sym.imp.user32.dll_SendMessageA]
mov eax, dword [ebp - 0x14cc]
lea ecx, [ebp - 0x1224]
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
add edx, dword [ebp - 0x14bc]
add dword [ebp - 0x14bc], eax
push eax
push ecx
push edx
call dword [sym.imp.ntdll.dll_memcpy]
add esp, 0xc
mov eax, dword [ebp - 0x14bc]
cmp eax, dword [ebp - 0x14d8]
jl 0x40ea8c
cmp dword [ebp - 0x14d8], 0
jne 0x40ed27
mov dword [esp + 0x1c], 0xffffffff
cmp dword [esp + 0x1c], 0
je 0x40ed40
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0
je 0x40ed3e
push dword [eax]
call dword [sym.imp.kernel32.dll_GlobalFree]
jmp 0x40ed4b
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x14d8]
mov dword [eax], ecx
popal
add esp, 0x10
add esp, 0x20
add esp, 0x34
add esp, 0x2c
add esp, 0x2c
leave
ret 0x10