Function at 0x40bbc0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get socket status
Initialize winsock library
Resolve dns
Send data
Send data on socket
Send http request
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4f4
mov eax, dword [0x563a68]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x1ac], 1
cmp dword [0x58d244], 0
je 0x40bbfb
cmp dword [0x58d248], 0
je 0x40bbfb
mov dword [ebp - 0x4e8], 1
jmp 0x40bc05
mov dword [ebp - 0x4e8], 0
mov eax, dword [ebp - 0x4e8]
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0
je 0x40bc28
mov ecx, dword [0x58d248]
mov dword [ebp - 0x4ec], ecx
jmp 0x40bc34
mov edx, dword [0x578a54]
mov dword [ebp - 0x4ec], edx
mov eax, dword [ebp - 0x4ec]
mov dword [ebp - 4], eax
cmp dword [ebp + 0x20], 0
je 0x40bc4c
mov ecx, dword [ebp + 0x20]
mov dword [ecx], 0xffffffff
lea edx, [ebp - 0x198]
push edx
push 0x202
call dword [sym.imp.WSOCK32.dll_WSAStartup]
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 0
je 0x40bc77
mov eax, 0xfffffff2
jmp 0x40c0b1
cmp dword [ebp - 0x1c0], 0
je 0x40bc8d
mov eax, dword [0x58d244]
mov dword [ebp - 0x4f0], eax
jmp 0x40bcba
cmp dword [0x58d240], 0
je 0x40bca4
mov ecx, dword [0x58d240]
mov dword [ebp - 0x4f4], ecx
jmp 0x40bcae
mov dword [ebp - 0x4f4], str.adonis
mov edx, dword [ebp - 0x4f4]
mov dword [ebp - 0x4f0], edx
mov eax, dword [ebp - 0x4f0]
push eax
call dword [sym.imp.WSOCK32.dll_gethostbyname]
mov dword [ebp - 0x1c4], eax
cmp dword [ebp - 0x1c4], 0
je 0x40bd34
push 0x10
push 0
lea ecx, [ebp - 0x1a8]
push ecx
call fcn.004054d0
add esp, 0xc
mov edx, dword [ebp - 0x1c4]
movsx eax, word [edx + 0xa]
push eax
mov ecx, dword [ebp - 0x1c4]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx]
push eax
lea ecx, [ebp - 0x1a4]
push ecx
call fcn.00408210
add esp, 0xc
mov edx, dword [ebp - 0x1c4]
mov ax, word [edx + 8]
mov word [ebp - 0x1a8], ax
mov cx, word [ebp - 4]
push ecx
call dword [sym.imp.WSOCK32.dll_htons]
mov word [ebp - 0x1a6], ax
jmp 0x40bd3c
or eax, 0xffffffff
jmp 0x40c0b1
push str.CHECK
mov edx, dword [ebp + 8]
push edx
call fcn.004043e0
add esp, 8
test eax, eax
jne 0x40becf
push 0
push 1
push 2
call dword [sym.imp.WSOCK32.dll_socket]
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jge 0x40bd7a
mov eax, 0xfffffffe
jmp 0x40c0b1
lea eax, [ebp - 0x1ac]
push eax
push 0x8004667e
mov ecx, dword [ebp - 0x1c8]
push ecx
call dword [sym.imp.WSOCK32.dll_ioctlsocket]
test eax, eax
jge 0x40bdb4
mov edx, dword [ebp - 0x1c8]
push edx
call dword [sym.imp.WSOCK32.dll_closesocket]
call dword [sym.imp.WSOCK32.dll_WSACleanup]
mov eax, 0xfffffffe
jmp 0x40c0b1
push 0x10
lea eax, [ebp - 0x1a8]
push eax
mov ecx, dword [ebp - 0x1c8]
push ecx
call dword [sym.imp.WSOCK32.dll_connect]
test eax, eax
jge 0x40beb5
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4e4], 0
jmp 0x40bdf7
mov edx, dword [ebp - 0x4e4]
add edx, 1
mov dword [ebp - 0x4e4], edx
mov eax, dword [ebp - 0x4e4]
cmp eax, dword [ebp - 0x4e0]
jae 0x40be1e
mov ecx, dword [ebp - 0x4e4]
mov edx, dword [ebp + ecx*4 - 0x4dc]
cmp edx, dword [ebp - 0x1c8]
jne 0x40be1c
jmp 0x40be1e
jmp 0x40bde8
mov eax, dword [ebp - 0x4e4]
cmp eax, dword [ebp - 0x4e0]
jne 0x40be57
cmp dword [ebp - 0x4e0], 0x40
jae 0x40be57
mov ecx, dword [ebp - 0x4e4]
mov edx, dword [ebp - 0x1c8]
mov dword [ebp + ecx*4 - 0x4dc], edx
mov eax, dword [ebp - 0x4e0]
add eax, 1
mov dword [ebp - 0x4e0], eax
xor ecx, ecx
jne 0x40bddc
mov dword [ebp - 0x1d0], 2
mov dword [ebp - 0x1cc], 0
lea edx, [ebp - 0x1d0]
push edx
push 0
lea eax, [ebp - 0x4e0]
push eax
push 0
push 0x40
call dword [sym.imp.WSOCK32.dll_select]
mov dword [ebp - 0x1b0], eax
cmp dword [ebp - 0x1b0], 1
je 0x40beb5
mov ecx, dword [ebp - 0x1c8]
push ecx
call dword [sym.imp.WSOCK32.dll_closesocket]
call dword [sym.imp.WSOCK32.dll_WSACleanup]
mov eax, 0xfffffff1
jmp 0x40c0b1
mov edx, dword [ebp - 0x1c8]
push edx
call dword [sym.imp.WSOCK32.dll_closesocket]
call dword [sym.imp.WSOCK32.dll_WSACleanup]
xor eax, eax
jmp 0x40c0b1
push 0
push 1
push 2
call dword [sym.imp.WSOCK32.dll_socket]
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0
jge 0x40bef4
mov eax, 0xfffffffe
jmp 0x40c0b1
push 0
push 0
push 8
push 0xffff
mov eax, dword [ebp - 0x1b4]
push eax
call dword [sym.imp.WSOCK32.dll_setsockopt]
push 0x10
lea ecx, [ebp - 0x1a8]
push ecx
mov edx, dword [ebp - 0x1b4]
push edx
call dword [sym.imp.WSOCK32.dll_connect]
test eax, eax
jge 0x40bf35
mov dword [ebp - 0x1bc], 0xfffffffd
jmp 0x40c098
cmp dword [ebp + 0x20], 0
je 0x40bf46
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x1b4]
mov dword [eax], ecx
cmp dword [ebp - 0x1c0], 0
je 0x40bf84
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [str.adlib_3___Date:_1998_09_23_06:19:15___]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [0x578a54]
push edx
mov eax, dword [0x58d240]
push eax
mov ecx, dword [ebp + 8]
push ecx
push str._s_http:___.128s:_d__.256s_HTTP_1.0_r_nUser_Agent:__s_r_n_s_r_n
lea edx, [ebp - 0x3d8]
push edx
call fcn.004633a8
add esp, 0x20
jmp 0x40bfab
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [str.adlib_3___Date:_1998_09_23_06:19:15___]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
push str._s___.256s_HTTP_1.0_r_nUser_Agent:__s_r_n_s_r_n
lea ecx, [ebp - 0x3d8]
push ecx
call fcn.004633a8
add esp, 0x18
lea edx, [ebp - 0x3d8]
push edx
call fcn.004035e0
add esp, 4
mov dword [ebp - 0x1d4], eax
push 0
mov eax, dword [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x3d8]
push ecx
mov edx, dword [ebp - 0x1b4]
push edx
call dword [sym.imp.WSOCK32.dll_send]
cmp eax, dword [ebp - 0x1d4]
je 0x40bff4
mov dword [ebp - 0x1bc], 0xfffffffc
jmp 0x40c098
cmp dword [ebp + 0x1c], 0
je 0x40c028
cmp dword [ebp + 0x18], 0
je 0x40c028
push 0
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp - 0x1b4]
push edx
call dword [sym.imp.WSOCK32.dll_send]
cmp eax, dword [ebp + 0x1c]
je 0x40c028
mov dword [ebp - 0x1bc], 0xfffffffb
jmp 0x40c098
push 0x1ff
lea eax, [ebp - 0x3d8]
push eax
mov ecx, dword [ebp - 0x1b4]
push ecx
call fcn.0040c0c0
add esp, 0xc
mov dword [ebp - 0x1bc], eax
cmp dword [ebp - 0x1bc], 0
jg 0x40c05e
mov dword [ebp - 0x1bc], 0xfffffffa
jmp 0x40c098
lea edx, [ebp - 0x1bc]
push edx
push str.HTTP_1._d__03d
lea eax, [ebp - 0x3d8]
push eax
call fcn.00464070
add esp, 0xc
cmp eax, 1
je 0x40c08a
mov dword [ebp - 0x1bc], 0xfffffff9
jmp 0x40c098
cmp dword [ebp + 0x14], 1
jne 0x40c098
mov eax, dword [ebp - 0x1bc]
jmp 0x40c0b1
mov ecx, dword [ebp - 0x1b4]
push ecx
call dword [sym.imp.WSOCK32.dll_closesocket]
call dword [sym.imp.WSOCK32.dll_WSACleanup]
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0040526d
mov esp, ebp
pop ebp
ret