Function at 0x4801fc
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x480205
mov eax, dword [ebp - 4]
add esp, 0xfffffe7c
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x2184], edx
mov dword [ebp - 0x2188], edx
mov dword [ebp - 0x2178], edx
mov dword [ebp - 0x217c], edx
mov dword [ebp - 0x2180], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x48061c
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp - 8]
cmp dword [eax + 0x48], 0
jne 0x4805f6
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x4805f6
mov word [ebp - 0x2174], 2
mov eax, dword [0x4949d4]
movzx eax, word [eax]
push eax
call sub.wsock32.dll_htons
mov word [ebp - 0x2172], ax
mov eax, dword [0x494b30]
mov eax, dword [eax]
push eax
call sub.wsock32.dll_inet_addr
mov esi, eax
mov dword [ebp - 0x2170], esi
inc esi
jne 0x4802ce
mov eax, dword [0x494b30]
mov eax, dword [eax]
push eax
call sub.wsock32.dll_gethostbyname
test eax, eax
je 0x4805f6
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x2170], eax
push 0x10
lea eax, [ebp - 0x2174]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_connect
push 0
push 0x2000
lea eax, [ebp - 0x2018]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_recv
inc eax
je 0x4805bb
push 0x480634
mov eax, dword [ebp - 8]
call fcn.00480690
push edx
push eax
lea eax, [ebp - 0x217c]
call fcn.00409e5c
push dword [ebp - 0x217c]
push 0x48064c
lea edx, [ebp - 0x2180]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x44]
call fcn.00409d70
push dword [ebp - 0x2180]
lea eax, [ebp - 0x2178]
mov edx, 4
call fcn.004058e0
mov edx, dword [ebp - 0x2178]
mov eax, dword [ebp - 0x10]
call fcn.00475ecc
push 0
push 0x2000
lea eax, [ebp - 0x2018]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_recv
inc eax
je 0x4805bb
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x480597
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x14]
mov esi, dword [eax]
call dword [esi + 0xc]
push 0x480658
push dword [ebp - 4]
push 0x48064c
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.004800dc
push edx
push eax
lea eax, [ebp - 0x2188]
call fcn.00409e5c
push dword [ebp - 0x2188]
lea eax, [ebp - 0x2184]
mov edx, 4
call fcn.004058e0
mov edx, dword [ebp - 0x2184]
mov eax, dword [ebp - 0x10]
call fcn.00475f68
push 0
push 0x2000
lea eax, [ebp - 0x2018]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_recv
inc eax
je 0x480597
mov eax, dword [ebp - 4]
call fcn.0040a26c
test al, al
je 0x480432
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.004800dc
cmp edx, 0
jne 0x480430
cmp eax, 0
ja 0x480462
jmp 0x480432
jg 0x480462
mov edx, 0x480668
mov eax, dword [ebp - 0x10]
call fcn.00475f68
push 0
push 0x2000
lea eax, [ebp - 0x2018]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_recv
inc eax
je 0x480597
jmp 0x48058b
xor eax, eax
push ebp
push 0x480523
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x2164]
call fcn.00403770
mov eax, dword [0x494bd4]
mov byte [eax], 0
mov edx, 1
lea eax, [ebp - 0x2164]
call fcn.00403e68
mov bl, 1
lea eax, [ebp - 0x2018]
xor ecx, ecx
mov edx, 0x2000
call fcn.00403af4
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 0x2018]
mov ecx, 0x2000
lea eax, [ebp - 0x2164]
call fcn.004038d8
cmp dword [ebp - 0xc], 0
jle 0x480503
push 0
mov eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x2018]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_send
inc eax
je 0x480503
push 0
push 0x2000
lea eax, [ebp - 0x2018]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_recv
inc eax
je 0x480503
cmp dword [ebp - 0xc], 0
jne 0x480498
test bl, bl
je 0x480517
lea eax, [ebp - 0x2164]
call fcn.00403918
call fcn.0040305c
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x480564
mov edx, 0x480678
mov eax, dword [ebp - 0x10]
call fcn.00475f68
push 0
push 0x2000
lea eax, [ebp - 0x2018]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_recv
inc eax
je 0x480597
inc dword [ebp - 0x14]
dec dword [ebp - 0x18]
jne 0x480395
mov edx, 0x480688
mov eax, dword [ebp - 0x10]
call fcn.00475f68
push 0
push 0x2000
lea eax, [ebp - 0x2018]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_recv
test bl, bl
je 0x4805cf
lea eax, [ebp - 0x2164]
call fcn.00403918
call fcn.0040305c
push 2
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_shutdown
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_closesocket
mov eax, dword [ebp - 8]
add eax, 0x40
call fcn.0040f944
mov eax, dword [ebp - 8]
call fcn.0041ff18
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x480623
lea eax, [ebp - 0x2188]
mov edx, 5
call fcn.00405554
lea eax, [ebp - 4]
call fcn.00405530
ret