Function at 0x48041c
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 0x480425
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 0x48083c
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp - 8]
cmp dword [eax + 0x48], 0
jne 0x480816
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x480816
mov word [ebp - 0x2174], 2
mov eax, dword [0x4959d8]
movzx eax, word [eax]
push eax
call sub.wsock32.dll_htons
mov word [ebp - 0x2172], ax
mov eax, dword [0x495b34]
mov eax, dword [eax]
push eax
call sub.wsock32.dll_inet_addr
mov esi, eax
mov dword [ebp - 0x2170], esi
inc esi
jne 0x4804ee
mov eax, dword [0x495b34]
mov eax, dword [eax]
push eax
call sub.wsock32.dll_gethostbyname
test eax, eax
je 0x480816
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 0x4807db
push 0x480854
mov eax, dword [ebp - 8]
call fcn.004808b0
push edx
push eax
lea eax, [ebp - 0x217c]
call fcn.00409e64
push dword [ebp - 0x217c]
push 0x48086c
lea edx, [ebp - 0x2180]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x44]
call fcn.00409d78
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.00476028
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 0x4807db
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x4807b7
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 0x480878
push dword [ebp - 4]
push 0x48086c
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.004802fc
push edx
push eax
lea eax, [ebp - 0x2188]
call fcn.00409e64
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.004760c4
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 0x4807b7
mov eax, dword [ebp - 4]
call fcn.0040a274
test al, al
je 0x480652
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.004802fc
cmp edx, 0
jne 0x480650
cmp eax, 0
ja 0x480682
jmp 0x480652
jg 0x480682
mov edx, 0x480888
mov eax, dword [ebp - 0x10]
call fcn.004760c4
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 0x4807b7
jmp 0x4807ab
xor eax, eax
push ebp
push 0x480743
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x2164]
call fcn.00403770
mov eax, dword [0x495bd8]
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 0x480723
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 0x480723
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 0x480723
cmp dword [ebp - 0xc], 0
jne 0x4806b8
test bl, bl
je 0x480737
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 0x480784
mov edx, 0x480898
mov eax, dword [ebp - 0x10]
call fcn.004760c4
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 0x4807b7
inc dword [ebp - 0x14]
dec dword [ebp - 0x18]
jne 0x4805b5
mov edx, 0x4808a8
mov eax, dword [ebp - 0x10]
call fcn.004760c4
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 0x4807ef
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.0040f94c
mov eax, dword [ebp - 8]
call fcn.0041ff34
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x480843
lea eax, [ebp - 0x2188]
mov edx, 5
call fcn.00405554
lea eax, [ebp - 4]
call fcn.00405530
ret