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

Disassembly:
push ebp
lea ebp, [esp - 0x1440]
mov eax, 0x1440
call fcn.0040cd50
push 0xffffffffffffffff
push 0x41ec7b
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x425e80]
xor eax, ebp
mov dword [ebp + 0x143c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x144c]
mov ecx, dword [ebp + 0x1450]
xor ebx, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 4], ebx
mov dword [ebp + 0x1b8], 0xf
mov dword [ebp + 0x1b4], ebx
mov byte [ebp + 0x1a4], bl
fldz
mov esi, dword [ebp + 0x1448]
fst qword [ebp - 0x48]
fst qword [ebp - 0x48]
xor edx, edx
fldz
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], ebx
fst dword [ebp - 0x28]
fst dword [ebp - 0x40]
mov eax, esi
mov byte [ebp + 0x11bc], dl
mov word [ebp - 0x20], dx
fstp dword [ebp - 0x20]
mov byte [ebp - 4], 1
lea edx, [eax + 1]
fst qword [ebp - 0x3c]
fstp qword [ebp - 0x34]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408b37
sub eax, edx
mov edi, eax
mov eax, dword [ebp - 0x24]
mov ecx, 0x872c9bcb
sub ecx, eax
add ecx, dword [ebp - 0x18]
mov dx, word [0x424a48]
dec word [0x424a48]
movsx eax, dx
mov edx, 0xb38d35cb
sub edx, eax
cmp ecx, edx
je 0x408b9b
fld dword [ebp - 0x28]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [ebp - 0x28]
fld dword [ebp - 0x20]
fsub dword [ebp - 0x28]
mov ax, word [0x424d9c]
movsx ecx, ax
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
faddp st(1)
fstp qword [ebp - 0x34]
fld dword [ebp - 0x20]
fadd st(1)
fstp dword [ebp - 0x20]
jmp 0x408b9d
fld1
cmp edi, 0x7f
jg 0x4093ff
xor eax, eax
cmp eax, edi
jg 0x408bdf
mov cl, byte [eax + esi]
mov byte [ebp + eax + 0x13bc], cl
cmp cl, 0x2f
jne 0x408bdc
mov byte [ebp + eax + 0x13bc], 0
mov ecx, eax
cmp ecx, edi
jg 0x408bdf
mov bl, byte [ecx + esi]
mov edx, ecx
sub edx, eax
mov byte [ebp + edx + 0x11bc], bl
inc ecx
xor ebx, ebx
jmp 0x408bc5
inc eax
jmp 0x408ba8
inc dword [ebp - 0x18]
dec dword [0x423de8]
fsubr qword [0x424a30]
fstp qword [0x424a30]
mov eax, dword [0x423de8]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
sub ecx, eax
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
mov dword [ebp - 0x1c], edx
fild dword [ebp - 0x1c]
fld qword [0x424a30]
fsubp st(2)
fsubrp st(1)
call fcn.0040b890
mov dword [ebp - 0x18], eax
lea eax, [ebp + 0x11bc]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408c28
mov edi, dword [ebp - 0x14]
mov ecx, edi
sub eax, edx
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x408c40
sub ecx, esi
add ecx, eax
cmp ecx, 0x1ff
jbe 0x408c74
cmp dword [ebp + 0x1b8], 0x10
jb 0x409401
mov eax, dword [ebp + 0x1a4]
push eax
call fcn.0040b424
add esp, 4
jmp 0x409401
mov eax, edi
mov edx, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408c78
lea edi, [ebp + 0x11bc]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x408c88
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 5
push 0x4231a8
rep movsb byte es:[edi], byte [esi]
call fcn.004016a0
add esp, 8
fld dword [0x423d3c]
mov esi, eax
fsub qword [0x41f908]
lea edx, [eax + 1]
fstp dword [0x423d3c]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408cc6
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x1a0]
call fcn.00408190
fld qword [0x423268]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
xor eax, eax
push esi
fsubp st(1)
fstp qword [0x423268]
mov dword [esi], eax
fldz
mov byte [esi + 4], al
fstp qword [ebp - 0x34]
mov dword [ebp - 0x14], ebx
fld qword [0x424d90]
fadd qword [0x41f3b8]
fstp qword [0x424d90]
call fcn.0040bdc5
lea eax, [ebp + 0x11bc]
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408d26
sub eax, edx
push eax
lea edx, [ebp + 0x11bc]
push edx
lea ecx, [ebp + 0x1a0]
call fcn.00408950
push 0x32
push 0x423cc8
call fcn.004016a0
add esp, 8
mov esi, eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408d56
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x1a0]
call fcn.00408950
fldz
push 0x32
fstp qword [ebp - 0x34]
push ebx
mov dword [ebp - 0x14], ebx
push esi
call fcn.0040be70
fld qword [0x424d90]
fadd qword [0x41f3b8]
push esi
fstp qword [0x424d90]
call fcn.0040bdc5
lea eax, [ebp + 0x13bc]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408da1
sub eax, edx
push eax
lea eax, [ebp + 0x13bc]
push eax
lea ecx, [ebp + 0x1a0]
call fcn.00408950
push 5
push 0x423184
call fcn.004016a0
add esp, 8
mov esi, eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408dd1
sub eax, edx
push eax
push esi
lea ecx, [ebp + 0x1a0]
call fcn.00408950
fldz
xor eax, eax
fstp qword [ebp - 0x34]
mov dword [esi], eax
mov byte [esi + 4], al
mov dword [ebp - 0x14], ebx
fld qword [0x424d90]
fadd qword [0x41f3b8]
push esi
fstp qword [0x424d90]
call fcn.0040bdc5
add esp, 4
lea ecx, [ebp]
push ecx
push 0x202
call sub.WS2_32.dll_WSAStartup
test eax, eax
je 0x408e2f
cmp dword [ebp + 0x1b8], 0x10
jmp 0x4093e6
mov eax, dword [0x4239d0]
sub eax, 0x32e265dd
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
push 6
mov edi, 1
push edi
fstp qword [ebp - 0x34]
add dword [0x4239d0], edi
push 2
call sub.WS2_32.dll_socket
mov esi, eax
mov dword [ebp - 0x1c], esi
cmp esi, 0xffffffff
jne 0x408e87
call sub.WS2_32.dll_WSACleanup
cmp dword [ebp + 0x1b8], 0x10
jb 0x409401
mov ecx, dword [ebp + 0x1a4]
push ecx
call fcn.0040b424
add esp, 4
jmp 0x409401
movzx edx, word [0x423258]
sub edx, 0x22f789a3
mov word [0x423258], dx
cmp dword [ebp + 0x1458], ebx
je 0x408edc
push 4
lea eax, [ebp + 0x1458]
push eax
push 0x1006
push 0xffff
push esi
call sub.WS2_32.dll_setsockopt
mov cx, word [0x423e1c]
movzx edx, word [0x4239e0]
movsx eax, cx
add eax, 0xb46ba9dd
imul edx, eax
mov word [0x4239e0], dx
lea eax, [ebp + 0x13bc]
push eax
call sub.WS2_32.dll_gethostbyname
add word [0x4233c8], di
mov dx, word [0x4233c8]
mov ecx, eax
movsx eax, dx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fsub qword [ebp - 0x48]
fsub qword [0x425d70]
fld qword [0x423d20]
fsub qword [0x41f900]
fcompp
fnstsw ax
fld qword [0x423d20]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x423d20]
fadd qword [0x425d70]
fstp qword [0x425d70]
test ah, 0x41
jp 0x408f73
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
fld dword [0x423d58]
fsubr qword [0x41f8f8]
fsub qword [0x41f8f0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x408f73
fld dword [0x423cc0]
fmul qword [0x41f8e8]
fstp dword [0x423cc0]
cmp ecx, ebx
jne 0x408f98
cmp dword [ebp + 0x1b8], 0x10
jb 0x409401
mov eax, dword [ebp + 0x1a4]
push eax
call fcn.0040b424
add esp, 4
jmp 0x409401
mov edx, 2
mov word [ebp + 0x190], dx
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
call sub.WS2_32.dll_inet_ntoa
push eax
call sub.WS2_32.dll_inet_addr
fld dword [0x423d3c]
fsub qword [0x41f8e0]
mov dword [ebp + 0x194], eax
push 0x50
fsub qword [0x41f8d8]
fstp qword [ebp - 0x48]
call sub.WS2_32.dll_htons
mov word [ebp + 0x192], ax
mov edi, 0x10
push edi
lea eax, [ebp + 0x190]
push eax
push esi
call sub.WS2_32.dll_connect
cmp eax, 0xffffffff
jne 0x409018
cmp dword [ebp + 0x1b8], edi
jb 0x409401
mov ecx, dword [ebp + 0x1a4]
push ecx
call fcn.0040b424
add esp, 4
jmp 0x409401
mov eax, dword [ebp + 0x1a4]
cmp dword [ebp + 0x1b8], edi
jae 0x40902c
lea eax, [ebp + 0x1a4]
mov edx, dword [ebp + 0x1b4]
push ebx
push edx
push eax
push esi
call sub.WS2_32.dll_send
cmp eax, dword [ebp + 0x1b4]
jae 0x409063
cmp dword [ebp + 0x1b8], edi
jb 0x409401
mov eax, dword [ebp + 0x1a4]
push eax
call fcn.0040b424
add esp, 4
jmp 0x409401
mov cx, word [0x423148]
inc word [0x423148]
movsx edx, cx
mov eax, 0x1436814
sub eax, edx
cmp eax, 0x869d122a
jl 0x4090bb
fld dword [0x423a30]
fsub qword [0x41f348]
fstp dword [0x423a30]
fld dword [0x423a30]
mov cx, word [str.2E:_]
movsx edx, cx
fstp dword [ebp - 0x24]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
fadd dword [ebp - 0x24]
call fcn.0040b890
mov word [str.2E:_], ax
mov ecx, dword [ebp - 0x2c]
push ebx
push 0x41f8d0
call fcn.00408190
mov ebx, dword [ebp - 0x2c]
or esi, 0xffffffff
mov dword [ebp - 0x24], esi
mov eax, dword [0x423180]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fld qword [ebp - 0x34]
fadd qword [0x41f8c8]
fsubr qword [0x41f8c0]
fsubp st(1)
call fcn.0040b890
mov edx, dword [ebp - 0x1c]
push 0
push 0x1000
lea ecx, [ebp + 0x1bc]
push ecx
push edx
mov dword [0x423180], eax
call sub.WS2_32.dll_recv
test eax, eax
jle 0x409352
push eax
lea eax, [ebp + 0x1bc]
push eax
mov ecx, ebx
call fcn.00408950
test esi, esi
jge 0x4092de
push 5
push 0x423184
call fcn.004016a0
add esp, 8
mov edi, eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x409142
sub eax, edx
push eax
push 0
push edi
mov ecx, ebx
call fcn.00404df0
dec word [0x423158]
mov cx, word [0x423158]
movzx edx, word [str.wuY_]
mov esi, eax
movsx eax, cx
lea eax, [edx + eax + 0xfbbfc4f]
push edi
push 5
mov word [str.wuY_], ax
call fcn.00401bf0
add esp, 8
test esi, esi
jl 0x4092de
fld qword [0x424a30]
mov eax, 0x7cd85a7c
fsub qword [0x41f348]
push ebx
add esi, 4
fstp qword [0x424a30]
mov cx, word [0x423d0c]
movsx edx, cx
sub eax, edx
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
fsub qword [0x424a30]
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x3c]
call fcn.00406410
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jge 0x4092b1
push 0xb
push 0x424de0
call fcn.004016a0
mov ecx, dword [ebp - 0x2c]
add esp, 8
mov edi, eax
push 0
push edi
call fcn.00406230
push edi
push 0xb
mov ebx, eax
call fcn.00401bf0
add esp, 8
test ebx, ebx
jge 0x40934f
inc word [0x423968]
fld qword [ebp - 0x34]
fld qword [ebp - 0x3c]
mov cx, word [0x423968]
movsx edx, cx
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
fsubp st(1)
fsub qword [0x41f8b8]
fcompp
fnstsw ax
test ah, 0x41
jp 0x409290
fld qword [0x4239e8]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [0x4239e8]
fsubr dword [ebp - 0x20]
fstp dword [ebp - 0x20]
fld qword [0x4239e8]
mov ax, word [0x42318c]
mov edx, dword [ebp - 0x18]
movsx ecx, ax
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
faddp st(1)
fild dword [ebp - 0x14]
fld dword [ebp - 0x20]
dec dword [ebp - 0x18]
fsubp st(2)
fucompp
fnstsw ax
test ah, 0x44
jp 0x4092b1
add dword [0x423098], 0xdf6f042f
jmp 0x4092b1
mov ax, word [0x424ddc]
movsx ecx, ax
add ecx, 0x5fe28fef
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
fadd dword [0x4239d4]
fstp dword [0x4239d4]
fld dword [0x425d7c]
mov edx, dword [0x423484]
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, 0x536872e1
sub eax, edx
add ecx, eax
mov dword [ebp - 0x14], ecx
fisub dword [ebp - 0x14]
fstp dword [0x425d7c]
inc dword [0x423484]
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jl 0x4092ee
mov eax, dword [ebx + 0x14]
sub eax, esi
cmp eax, ecx
jae 0x409352
cmp dword [ebp + 0x1458], 0
je 0x4090d2
cmp dword [ebx + 0x14], 0x4000
jae 0x409352
mov ax, word [0x423d18]
mov edx, dword [0x423d44]
movsx ecx, ax
mov dword [ebp - 0x14], ecx
sub edx, 0x4b0e53b7
fild dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
fadd qword [0x423a48]
fsubp st(1)
call fcn.0040b890
mov word [0x423d18], ax
fld qword [0x423a48]
fsub qword [0x41f348]
fstp qword [0x423a48]
jmp 0x4090d2
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
push edx
call sub.WS2_32.dll_closesocket
fld dword [0x41f8b0]
fstp dword [0x42325c]
call sub.WS2_32.dll_WSACleanup
test esi, esi
jl 0x40937a
push esi
push 0
mov ecx, ebx
call fcn.004061a0
mov dl, byte [ebp + 0x1454]
mov esi, 0x10
test dl, dl
je 0x4093d4
movzx eax, word [str._bEQ_]
imul eax, eax, 0xe5c33dfb
mov word [str._bEQ_], ax
xor eax, eax
mov edi, edi
cmp eax, dword [ebx + 0x14]
jae 0x4093d4
cmp dword [ebx + 0x18], esi
jb 0x4093af
mov ecx, dword [ebx + 4]
jmp 0x4093b2
lea ecx, [ebx + 4]
xor byte [ecx + eax], dl
mov cx, word [str._bEQ_]
movsx ecx, cx
add ecx, 0x619f9c83
mov dword [ebp - 0x14], ecx
inc eax
fild dword [ebp - 0x14]
fadd dword [ebp - 0x40]
fstp qword [ebp - 0x34]
jmp 0x4093a0
fld dword [ebp - 0x28]
cmp dword [ebp + 0x1b8], esi
fsub qword [0x41f8a8]
fstp dword [ebp - 0x28]
jb 0x409401
mov edx, dword [ebp + 0x1a4]
push edx
call fcn.0040b424
add esp, 4
jmp 0x409401
fstp st(0)
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x143c]
xor ecx, ebp
call fcn.0040be53
add ebp, 0x1440
mov esp, ebp
pop ebp
ret