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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4ba58f
push eax
mov eax, dword [0x1404b1c]
mov ecx, 0x1e
cdq
idiv ecx
mov dword fs:[0], esp
sub esp, 0x3c4
push ebx
push ebp
push esi
push edi
test edx, edx
je 0x4aa72c
lea ecx, [esp + 0x10]
call sub.MFC42u.DLL_CString::CString_1
mov edx, dword [0x1404b1c]
lea eax, [esp + 0x10]
push edx
push str.Try_to_ping_server:__d__return_
push eax
mov dword [esp + 0x3e8], 0
call sub.MFC42u.DLL_CString::Format
add esp, 0xc
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.ping_server
call sub.MFC42u.DLL_CString::CString_4
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
mov byte [esp + 0x3ec], 1
call sub.MFC42u.DLL_CString::CString_3
mov byte [esp + 0x3e8], 0
call fcn.00421fb0
mov eax, dword [0x1404b1c]
add esp, 0xc
inc eax
mov dword [esp + 0x3dc], 0xffffffff
mov dword [0x1404b1c], eax
lea ecx, [esp + 0x10]
jmp 0x4aabf2
mov eax, dword [0x1404b1c]
push str.imonitorcode.cfg
inc eax
push 0x52fad4
mov dword [0x1404b1c], eax
lea eax, [esp + 0x18]
push eax
call sub.MFC42u.DLL_operator_4
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.MSVCRT.dll__waccess]
add esp, 8
lea ecx, [esp + 0x10]
mov esi, eax
call sub.MFC42u.DLL_CString::CString
test esi, esi
je 0x4aa7af
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ping_server
call sub.MFC42u.DLL_CString::CString_4
push ecx
mov dword [esp + 0x3e8], 2
mov ecx, esp
mov dword [esp + 0x30], esp
push str.No_activate_code__return.
call sub.MFC42u.DLL_CString::CString_4
mov dword [esp + 0x3e8], 0xffffffff
call fcn.00421fb0
add esp, 0xc
jmp 0x4aabf7
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.imonitorcode.cfg
push 0x52fad4
push ecx
call sub.MFC42u.DLL_operator_4
lea edx, [esp + 0x18]
push edx
call fcn.00427c70
add esp, 8
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3dc], 3
mov eax, dword [eax - 8]
cmp eax, 0xa
jl 0x4aab7b
push 0x40
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::Find
or ebx, 0xffffffff
cmp eax, ebx
je 0x4aab7e
push 0x2e
lea ecx, [esp + 0x18]
call sub.MFC42u.DLL_CString::Find
cmp eax, ebx
je 0x4aab7e
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
push str.PING
push edx
call sub.MFC42u.DLL_operator_3
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x3e0], 6
call sub.MFC42u.DLL_CString::operator_2
lea ecx, [esp + 0x10]
mov byte [esp + 0x3dc], 3
call sub.MFC42u.DLL_CString::CString
lea eax, [esp + 0x244]
push eax
push 0x101
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x4aabe7
push str.transencrypt_srv1.space
lea ecx, [esp + 0x24]
call sub.MFC42u.DLL_CString::CString_2
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ping_server
mov byte [esp + 0x3e8], 7
call sub.MFC42u.DLL_CString::CString_4
push ecx
lea edx, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
mov byte [esp + 0x3ec], 8
call sub.MFC42u.DLL_CString::CString_3
mov byte [esp + 0x3e8], 7
call fcn.00421fb0
add esp, 0xc
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ebp, eax
cmp ebp, ebx
jne 0x4aa8de
mov byte [esp + 0x3dc], 3
lea ecx, [esp + 0x20]
jmp 0x4aabe2
mov eax, dword [esp + 0x20]
push eax
call fcn.00428bd0
mov edi, dword [sym.imp.WS2_32.dll_inet_addr]
add esp, 4
mov esi, eax
push esi
call edi
cmp eax, ebx
mov ebx, dword [sym.imp.WS2_32.dll_gethostbyname]
push esi
jne 0x4aa905
call ebx
jmp 0x4aa91a
call edi
push 2
lea ecx, [esp + 0x30]
push 4
push ecx
mov dword [esp + 0x38], eax
call dword [sym.imp.WS2_32.dll_gethostbyaddr]
mov edi, eax
test edi, edi
jne 0x4aa925
push esi
call ebx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
call fcn.00428c40
add esp, 4
test edi, edi
je 0x4aab50
mov edx, dword [edi + 0xc]
push 0x64cd
mov eax, dword [edx]
mov ecx, dword [eax]
mov word [esp + 0x38], 2
mov dword [esp + 0x3c], ecx
call dword [sym.imp.WS2_32.dll_htons]
lea edx, [esp + 0x34]
push 0x10
push edx
push ebp
mov word [esp + 0x42], ax
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
jne 0x4aab50
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
lea eax, [esp + 0x28]
push 4
push eax
push 0x1006
push 0xffff
push ebp
mov dword [esp + 0x3c], 0x1388
call esi
lea ecx, [esp + 0x28]
push 4
push ecx
push 0x1005
push 0xffff
push ebp
call esi
mov edx, dword [esp + 0x14]
push edx
call fcn.00428bd0
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
push ecx
push esi
push ebp
call dword [sym.imp.WS2_32.dll_send]
push esi
call fcn.00428c40
add esp, 4
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x44]
rep stosd dword es:[edi], eax
push eax
lea eax, [esp + 0x48]
push 0x200
push eax
push ebp
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x4aab50
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC42u.DLL_CString::CString_4
mov edx, dword [esp + 0x18]
mov byte [esp + 0x3dc], 9
cmp dword [edx - 8], 4
jle 0x4aaaf4
lea eax, [esp + 0x10]
push 2
push eax
lea ecx, [esp + 0x20]
call sub.MFC42u.DLL_CString::Left
mov ecx, dword [eax]
mov esi, dword [sym.imp.MSVCRT.dll_wcscmp]
push 0x4e206c
push ecx
call esi
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
sete bl
call sub.MFC42u.DLL_CString::CString
test bl, bl
je 0x4aaaf4
lea edx, [esp + 0x10]
push 2
push edx
lea ecx, [esp + 0x20]
call sub.MFC42u.DLL_CString::Right
mov eax, dword [eax]
push 0x4e206c
push eax
call esi
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
sete bl
call sub.MFC42u.DLL_CString::CString
test bl, bl
je 0x4aaaf4
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x30]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x18]
add eax, 0xfffffffc
push eax
push 2
push edx
call sub.MFC42u.DLL_CString::Mid
push eax
mov ecx, 0x1404c18
mov byte [esp + 0x3e0], 0xa
call sub.MFC42u.DLL_CString::operator_2
lea ecx, [esp + 0x30]
mov byte [esp + 0x3dc], 9
call sub.MFC42u.DLL_CString::CString
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.__ping_server_result:_update_server_IP
call sub.MFC42u.DLL_CString::CString_4
push ecx
mov byte [esp + 0x3e8], 0xb
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x1404c18
jmp 0x4aab2a
lea eax, [esp + 0x18]
mov ecx, 0x1404b14
push eax
call sub.MFC42u.DLL_CString::operator_2
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.__ping_server_result:_update_server_IP
call sub.MFC42u.DLL_CString::CString_4
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x30], esp
mov byte [esp + 0x3e8], 0xc
push edx
call sub.MFC42u.DLL_CString::CString_3
mov byte [esp + 0x3e8], 9
call fcn.00421fb0
add esp, 0xc
lea ecx, [esp + 0x18]
mov byte [esp + 0x3dc], 7
call sub.MFC42u.DLL_CString::CString
push ebp
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea ecx, [esp + 0x20]
mov byte [esp + 0x3dc], 3
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x3dc], 0xffffffff
jmp 0x4aabee
or ebx, 0xffffffff
push str.Invalid_activate_code__return.
lea ecx, [esp + 0x14]
call sub.MFC42u.DLL_CString::CString_4
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.ping_server
mov byte [esp + 0x3e8], 4
call sub.MFC42u.DLL_CString::CString_4
push ecx
lea ecx, [esp + 0x20]
mov eax, esp
mov dword [esp + 0x30], esp
lea edx, [esp + 0x1c]
push ecx
push edx
push eax
mov byte [esp + 0x3f4], 5
call sub.MFC42u.DLL_operator
mov byte [esp + 0x3e8], 4
call fcn.00421fb0
add esp, 0xc
mov byte [esp + 0x3dc], 3
lea ecx, [esp + 0x10]
call sub.MFC42u.DLL_CString::CString
mov dword [esp + 0x3dc], ebx
lea ecx, [esp + 0x14]
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0x3d4]
pop edi
pop esi
pop ebp
xor eax, eax
mov dword fs:[0], ecx
pop ebx
add esp, 0x3d0
ret