Function at 0x100283e0
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 0xffffffffffffffff
push 0x1003f2bc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5c0
mov al, byte [esp + 0x17]
push ebx
push ebp
xor ebx, ebx
push esi
push edi
mov dword [esp + 0x28], ebx
mov byte [esp + 0x10], al
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
push 0x2561ffff
push 0x1b9bffff
mov dword [esp + 0x5e0], ebx
call fcn.10007700
mov ecx, dword [0x10047bd4]
mov word [0x10047bba], ax
push ecx
push 0x5bebffff
call fcn.100075f0
mov dl, byte [0x10047ba3]
add esp, 0x10
add dl, al
mov eax, dword [esp + 0x600]
cmp eax, ebx
mov byte [0x10047ba3], dl
je 0x10028464
mov dword [eax], ebx
lea edx, [esp + 0x40]
push edx
push 0x101
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov al, byte [0x10047ba9]
movsx ecx, byte [0x10047ba1]
dec al
mov byte [0x10047ba9], al
movsx eax, word [0x10047bbc]
push eax
push ecx
push 0x21d9ffff
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebp, dword [esp + 0x5f0]
mov byte [0x10047ba3], al
cmp ebp, ebx
jne 0x10028584
movsx edx, byte [0x10047ba7]
push edx
push 0xa50fffff
call fcn.100076b0
add word [0x10047bb0], ax
mov ecx, dword [0x10047bc8]
movsx eax, word [0x10047bac]
and eax, 0x6835ffff
add ecx, eax
mov dword [0x10047bc8], ecx
movsx ecx, byte [0x10047ba3]
push ecx
push 0xd54dffff
call fcn.100075f0
mov edx, dword [esp + 0x5f4]
mov word [0x10047baa], ax
add esp, 0x10
mov eax, dword [edx + 4]
cmp eax, ebx
jne 0x10028510
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov esi, eax
mov eax, dword [0x10047bdc]
push 0xcb1dffff
push eax
call fcn.100075f0
mov cl, byte [0x10047ba9]
push 0x2fbffff
test cl, cl
setne cl
push 0xbdcbffff
mov word [0x10047baa], ax
mov byte [0x10047ba8], cl
call fcn.100077d0
mov cl, byte [0x10047ba7]
add esp, 0x10
add cl, al
cmp esi, ebx
mov byte [0x10047ba7], cl
je 0x1002856f
mov edx, dword [esi + 0xc]
mov eax, dword [edx]
cmp eax, ebx
je 0x1002856f
mov ebp, dword [eax]
call dword [sym.imp.USER32.dll_GetCursor]
add word [0x10047bba], ax
cmp ebp, ebx
je 0x10028b49
movsx eax, byte [0x10047ba2]
push 0x9d93ffff
push eax
mov dword [0x10047bc4], 0x20d1ffff
call fcn.10007880
push 0x6723ffff
push 0xb14bffff
mov byte [0x10047ba8], al
call fcn.10007880
add word [0x10047bae], ax
add esp, 0x10
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
movsx ecx, word [0x10047bb6]
mov edi, eax
push 0x6f15ffff
push ecx
mov dword [esp + 0x28], edi
call fcn.10007700
add word [0x10047bb0], ax
mov edx, dword [0x10047bcc]
movsx eax, byte [0x10047ba5]
add word [0x10047bb8], 0xfffe
push edx
push eax
call fcn.10007830
add esp, 0x10
cmp edi, 0xffffffff
mov word [0x10047baa], ax
je 0x10028b49
push 0xbe21ffff
push 0x4b73ffff
call fcn.10007880
mov cl, byte [0x10047ba0]
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
add cl, al
mov eax, dword [esp + 0x5fc]
add esp, 8
cmp eax, 0xffffffff
mov byte [0x10047ba0], cl
je 0x10028660
lea ecx, [esp + 0x5f4]
push 4
push ecx
push 0x1005
push 0xffff
push edi
call esi
mov eax, dword [esp + 0x5f8]
inc word [0x10047bba]
cmp eax, 0xffffffff
je 0x1002868a
lea edx, [esp + 0x5f8]
push 4
push edx
push 0x1006
push 0xffff
push edi
call esi
movsx eax, word [0x10047bb8]
mov ecx, dword [0x10047bcc]
mov edx, dword [esp + 0x5e8]
shl eax, 1
or ecx, 0xf53fffff
push edx
mov byte [0x10047ba4], 0xff
mov dword [0x10047bd0], eax
mov word [esp + 0x34], 2
mov dword [0x10047be4], ecx
mov dword [esp + 0x38], ebp
call dword [sym.imp.WS2_32.dll_htons]
movsx ecx, word [0x10047bb8]
mov word [esp + 0x32], ax
mov eax, dword [0x10047bc0]
push eax
push ecx
call fcn.10007830
movsx edx, byte [0x10047ba4]
mov ecx, dword [0x10047bc4]
push 0x3cc7ffff
add ecx, eax
push edx
mov dword [0x10047bc4], ecx
call fcn.10007830
add esp, 0x10
mov word [0x10047bb4], ax
lea eax, [esp + 0x30]
push 0x10
push eax
push edi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x10028b29
mov ecx, dword [0x10047bc0]
push 0x6011ffff
push ecx
call fcn.10007880
mov ecx, dword [0x10047bd8]
push 0xc4dffff
add ecx, eax
push 0x991fffff
mov dword [0x10047bd8], ecx
call fcn.10007740
mov cl, byte [0x10047ba5]
add esp, 0x10
add cl, al
inc word [0x10047bba]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x28]
push edx
push eax
push 0x2003
push 0xffff
push edi
mov byte [0x10047ba5], cl
mov dword [esp + 0x40], 4
call dword [sym.imp.WS2_32.dll_getsockopt]
cmp eax, 0xffffffff
je 0x10028b29
mov esi, dword [esp + 0x5ec]
mov byte [0x10047ba2], 1
xor ebp, ebp
cmp dword [esi + 8], ebx
jbe 0x10028871
mov ebx, dword [sym.imp.WS2_32.dll_send]
movsx cx, byte [0x10047ba5]
mov eax, dword [0x10047bd4]
mov edi, dword [esp + 0x28]
and ecx, eax
add word [0x10047bb6], cx
mov eax, dword [esi + 8]
sub eax, ebp
cmp edi, eax
jbe 0x100287d8
mov edi, eax
mov edx, dword [0x10047bc8]
push 0x9197ffff
dec edx
push 0x43b9ffff
add word [0x10047bae], dx
call fcn.10007650
push 0x6d99ffff
push 0x869fffff
mov byte [0x10047ba3], al
call fcn.10007830
mov edx, dword [0x10047bc0]
add esp, 0x10
add edx, eax
mov dword [0x10047bc0], edx
mov eax, dword [esi + 4]
test eax, eax
jne 0x10028826
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0
add eax, ebp
push edi
push eax
mov eax, dword [esp + 0x2c]
push eax
call ebx
cmp eax, 0xffffffff
je 0x1002886b
movsx ecx, word [0x10047bae]
movsx edx, word [0x10047bb2]
push ecx
push edx
call fcn.10007880
mov edx, dword [0x10047bcc]
add ebp, edi
add edx, eax
add esp, 8
mov dword [0x10047bcc], edx
mov eax, dword [esi + 8]
cmp ebp, eax
jb 0x100287b3
mov edi, dword [esp + 0x20]
xor ebx, ebx
movsx eax, byte [0x10047ba8]
movsx ecx, word [0x10047bb8]
push eax
push ecx
call fcn.10007700
mov word [0x10047bb4], ax
mov eax, dword [esi + 8]
add esp, 8
cmp ebp, eax
jne 0x10028b29
mov edx, dword [0x10047be0]
push edx
push 0x6c3bffff
call fcn.100076b0
movsx ecx, byte [0x10047ba0]
mov word [0x10047bba], ax
mov eax, dword [0x10047bcc]
push eax
push ecx
call fcn.10007740
mov cl, byte [0x10047ba3]
movsx edx, word [0x10047bb0]
add cl, al
push edx
movsx eax, byte [0x10047ba2]
push eax
mov byte [0x10047ba3], cl
call fcn.10007650
add word [0x10047bb6], ax
mov cl, byte [0x10047bdc]
mov al, byte [0x10047ba7]
add esp, 0x18
sub al, cl
xor bl, bl
mov byte [0x10047ba7], al
movsx edx, byte [0x10047ba6]
mov ecx, dword [0x10047bdc]
mov eax, dword [0x10047bc8]
sub edx, ecx
push 0
add eax, edx
push 0x400
mov dword [0x10047bc8], eax
lea eax, [esp + 0x1d8]
push eax
push edi
call dword [sym.imp.WS2_32.dll_recv]
test bl, bl
mov esi, eax
jne 0x1002896a
mov dl, byte [0x10047ba9]
mov dword [0x10047be0], 0x6789fffe
dec dl
mov byte [0x10047ba9], dl
call dword [sym.imp.USER32.dll_GetFocus]
push 1
push edi
mov byte [0x10047ba5], al
mov bl, 1
call dword [sym.imp.WS2_32.dll_shutdown]
mov ecx, dword [0x10047be0]
mov edx, dword [0x10047bd4]
push ecx
push edx
call fcn.10007880
mov word [0x10047bb8], ax
add esp, 8
movsx ax, byte [0x10047ba3]
sub word [0x10047bae], ax
test esi, esi
jle 0x10028ae8
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x18]
sub edx, ecx
cmp edx, esi
ja 0x100289b5
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x10028a50
mov eax, dword [esp + 0x18]
lea ebp, [eax + esi]
cmp ebp, 0xfffffffd
jbe 0x100289cf
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x100289f8
mov al, byte [edx - 1]
test al, al
je 0x100289f8
cmp al, 0xff
je 0x100289f8
test ebp, ebp
jne 0x10028a13
dec al
push ebp
lea ecx, [esp + 0x14]
mov byte [edx - 1], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x10028a50
test ebp, ebp
jne 0x10028a0d
test edx, edx
je 0x10028a50
push ebp
lea ecx, [esp + 0x14]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
jmp 0x10028a50
cmp dword [esp + 0x1c], ebp
jae 0x10028a22
push ebp
lea ecx, [esp + 0x14]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, esi
lea esi, [esp + 0x1d0]
lea edi, [edx + eax]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebp
mov byte [eax + ebp], 0
mov edx, dword [0x10047bcc]
mov ecx, dword [esp + 0x5fc]
xor eax, eax
mov dword [0x10047bc0], 0x29fdfffe
test edx, edx
setne al
cmp ecx, 0xffffffff
mov word [0x10047bb4], ax
je 0x10028905
movsx eax, ax
push eax
push eax
call fcn.100075f0
movsx ecx, byte [0x10047ba8]
mov esi, dword [0x10047bdc]
mov edx, dword [0x10047bc0]
add ecx, esi
mov dword [0x10047be0], eax
mov eax, dword [esp + 0x20]
add edx, ecx
mov dword [0x10047bc0], edx
mov edx, dword [esp + 0x604]
add esp, 8
cmp eax, edx
mov word [0x10047bae], 1
jb 0x10028905
mov eax, dword [esp + 0x600]
test eax, eax
je 0x10028ad6
or dword [eax], 1
mov al, byte [0x10047bb0]
mov cl, byte [0x10047bae]
and al, cl
mov byte [0x10047ba4], al
mov ecx, dword [0x10047be4]
push ecx
push 0xdb1dffff
call fcn.10007700
mov ecx, dword [0x10047bc0]
mov dl, byte [0x10047ba6]
add esp, 8
add ecx, eax
mov dword [0x10047bc0], ecx
push edx
call dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
mov dword [0x10047bd0], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [0x10047ba7], al
xor ebx, ebx
push 0x135ffff
push 0xa1fffff
call fcn.10007740
add word [0x10047bb4], ax
add esp, 8
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov al, byte [0x10047ba9]
mov cl, byte [0x10047ba1]
sub cl, al
inc al
mov byte [0x10047ba1], cl
mov byte [0x10047ba9], al
call dword [sym.imp.WS2_32.dll_WSACleanup]
add word [0x10047bbc], 0xfffe
mov word [0x10047bac], 1
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov dl, byte [0x10047ba6]
mov ebp, dword [esp + 0x5e0]
add dl, al
mov al, byte [esp + 0x10]
mov byte [0x10047ba6], dl
mov byte [ebp], al
mov eax, dword [esp + 0x18]
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ebx, eax
mov esi, dword [ecx]
cmp esi, ebx
jae 0x10028bb9
mov ebx, esi
lea edx, [esp + 0x10]
cmp ebp, edx
jne 0x10028c26
test ebx, ebx
jbe 0x10028bcb
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xran_void_]
mov ecx, ebp
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x10028bde
mov esi, eax
test esi, esi
jbe 0x10028c15
mov ecx, dword [ebp + 4]
sub eax, esi
add ebx, ecx
push eax
lea edx, [esi + ebx]
push edx
push ebx
call dword [sym.imp.MSVCRT.dll_memmove]
mov ebx, dword [ebp + 8]
add esp, 0xc
sub ebx, esi
mov ecx, ebp
push 0
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x10028c15
push ebx
mov ecx, ebp
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
push 0
push 0
mov ecx, ebp
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::erase_unsigned_int__unsigned_int_]
jmp 0x10028cad
test ebx, ebx
jbe 0x10028c73
cmp ebx, eax
jne 0x10028c73
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x10028c3b
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
cmp byte [eax - 1], 0xfe
jae 0x10028c73
push 1
mov ecx, ebp
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x10028c58
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x10028cad
push 1
push ebx
mov ecx, ebp
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x10028cad
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x10028c90
mov esi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov edi, dword [ebp + 4]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 4]
mov dword [ebp + 8], ebx
mov byte [ecx + ebx], 0
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x10028cd1
mov al, byte [ecx - 1]
test al, al
je 0x10028cc7
cmp al, 0xff
je 0x10028cc7
dec al
mov byte [ecx - 1], al
jmp 0x10028cd1
dec ecx
push ecx
call fcn.1002cda0
add esp, 4
mov ecx, dword [esp + 0x5d0]
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x5cc
ret