Function at 0x46e410
Capabilities:
Connect socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Send http request
Send http request with host header
Set socket configuration

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4ba14a
push eax
mov eax, 0x1060
mov dword fs:[0], esp
call fcn.004ad2c0
push ebx
push ebp
mov dword [esp + 0x2c], ecx
push esi
push edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_2
lea eax, [esp + 0x10]
xor ebx, ebx
push eax
mov dword [esp + 0x107c], ebx
call fcn.004ac290
add esp, 4
test al, al
jne 0x46e470
mov ecx, dword [esp + 0x1080]
push 0x4e35e4
call sub.MFC42.DLL_CString::operator
jmp 0x46ea74
push str.soft.8u.cn
call sub.WS2_32.dll_gethostbyname
mov edi, eax
cmp edi, ebx
jne 0x46e496
mov ecx, dword [esp + 0x1080]
push 0x4e35ac
call sub.MFC42.DLL_CString::operator
jmp 0x46ea74
push ebx
push 1
push 2
call sub.WS2_32.dll_socket
mov esi, eax
or ebp, 0xffffffff
cmp esi, ebp
jne 0x46e4d1
mov ecx, dword [esp + 0x1080]
push 0x4e3580
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x10]
mov dword [esp + 0x1078], ebp
call sub.MFC42.DLL_CString::CString
xor al, al
jmp 0x46ebce
mov word [esp + 0x60], 2
mov ecx, dword [edi + 0xc]
push 0x50
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [esp + 0x68], eax
call sub.WS2_32.dll_htons
lea ecx, [esp + 0x60]
push 0x10
push ecx
push esi
mov word [esp + 0x6e], ax
call sub.WS2_32.dll_connect
cmp eax, ebp
jne 0x46e52e
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0x1080]
push 0x4e3550
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x10]
mov dword [esp + 0x1078], ebp
call sub.MFC42.DLL_CString::CString
xor al, al
jmp 0x46ebce
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x640]
cmp ecx, ebx
je 0x46e541
call fcn.0041bf70
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x18]
mov byte [esp + 0x1078], 1
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x20]
mov byte [esp + 0x1078], 2
call fcn.00453500
lea eax, [esp + 0x14]
lea ecx, [esp + 0x20]
push eax
mov byte [esp + 0x107c], 3
call fcn.004536a0
test eax, eax
jne 0x46e594
push 0x4e1ef8
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
call fcn.00453540
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x24]
mov byte [esp + 0x1078], 4
call sub.MFC42.DLL_CString::CString_2
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edx
push eax
push ecx
lea edx, [esp + 0x30]
push str.ver_shdid_scpuid_s
push edx
mov byte [esp + 0x108c], 5
call sub.MFC42.DLL_CString::Format_1
mov eax, dword [esp + 0x38]
add esp, 0x14
mov ecx, dword [eax - 8]
push eax
push ecx
lea eax, [esp + 0x24]
push str.POST__8uftp_chkupdt.asp_HTTP_1.0_r_nAccept:___r_nContent_Type:_application_x_www_form_urlencoded_r_nContent_Length:__d_r_nHost:_soft.8u.cn_r_n_r_n_s
push eax
call sub.MFC42.DLL_CString::Format_1
mov eax, dword [esp + 0x2c]
add esp, 0x10
mov ecx, dword [eax - 8]
push ebx
push ecx
push eax
push esi
call sub.WS2_32.dll_send
cmp eax, ebp
jne 0x46e69a
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0x1080]
push 0x4e3478
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x24]
mov byte [esp + 0x1078], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1078], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x1078], 2
call fcn.00453530
lea ecx, [esp + 0x18]
mov byte [esp + 0x1078], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x1078], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1078], ebp
call sub.MFC42.DLL_CString::CString
xor al, al
jmp 0x46ebce
lea ecx, [esp + 0x5c]
push 4
push ecx
push 0x1006
push 0xffff
push esi
mov dword [esp + 0x70], 0x6ddd0
call sub.WS2_32.dll_setsockopt
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_2
xor edi, edi
mov byte [esp + 0x1078], 6
xor ebp, ebp
push ebx
lea edx, [esp + 0x74]
push 1
push edx
push esi
call sub.WS2_32.dll_recv
cmp eax, ebx
jge 0x46e6e5
mov edi, 1
mov cl, byte [esp + 0x70]
cmp cl, 0xa
je 0x46e6f6
cmp cl, 0xd
je 0x46e701
inc ebp
jmp 0x46e701
cmp ebp, ebx
jne 0x46e6ff
mov edi, 1
xor ebp, ebp
mov byte [esp + eax + 0x70], bl
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x3c]
call fcn.004ac79a
cmp edi, ebx
je 0x46e6ce
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString_2
push ebx
lea ecx, [esp + 0x74]
push 0xfff
push ecx
push esi
mov byte [esp + 0x1088], 7
call sub.WS2_32.dll_recv
mov edi, eax
cmp edi, ebx
jle 0x46e76c
lea edx, [esp + 0x70]
lea ecx, [esp + 0x2c]
push edx
mov byte [esp + edi + 0x74], bl
call fcn.004ac79a
cmp edi, ebx
jle 0x46e76c
push ebx
lea eax, [esp + 0x74]
push 0xfff
push eax
push esi
call sub.WS2_32.dll_recv
mov edi, eax
cmp edi, ebx
jg 0x46e73f
push esi
call sub.WS2_32.dll_closesocket
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::CString_2
push ebx
mov byte [esp + 0x107c], 8
call dword [sym.imp.MSVCRT.dll_time]
add esp, 4
lea ecx, [esp + 0x30]
push eax
push 0x4e1ae0
push ecx
call sub.MFC42.DLL_CString::Format_1
mov edx, dword [esp + 0x3c]
add esp, 0xc
push edx
push str.LastUpdateTime
push str.8uftp
call dword [sym.imp.KERNEL32.dll_WriteProfileStringA]
mov ebp, dword [esp + 0x34]
mov ecx, dword [ebp + 0x640]
cmp ecx, ebx
je 0x46e7c8
call fcn.0041bf90
mov eax, dword [esp + 0x2c]
cmp dword [eax - 8], ebx
jne 0x46e7e7
mov ecx, dword [esp + 0x1080]
push 0x4e3444
call sub.MFC42.DLL_CString::operator
jmp 0x46e9ed
add ebp, 0x648
mov ecx, ebp
call sub.MFC42.DLL_CString::Empty
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x28]
mov byte [esp + 0x1078], 9
call sub.MFC42.DLL_CString::CString_2
mov dword [esp + 0x3c], vtable.CMap_class_CString__char_const___class_CString__class_CString__.0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], 0x11
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 0xa
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov byte [esp + 0x1080], 0xb
call fcn.0046ec70
push 0x4e3440
call sub.MFC42.DLL_HashKey
xor edx, edx
div dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x46e932
mov esi, dword [eax + edx*4]
cmp esi, ebx
je 0x46e932
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
mov eax, dword [esi + 8]
push 0x4e3440
push eax
call edi
add esp, 8
test eax, eax
je 0x46e89b
mov esi, dword [esi]
cmp esi, ebx
jne 0x46e87e
jmp 0x46e932
cmp esi, ebx
je 0x46e932
add esi, 0xc
lea ecx, [esp + 0x28]
push esi
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x28]
push 0x4e343c
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x46e932
push str.UpdateUrl
call sub.MFC42.DLL_HashKey
xor edx, edx
div dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x46e932
mov esi, dword [eax + edx*4]
cmp esi, ebx
je 0x46e932
mov eax, dword [esi + 8]
push str.UpdateUrl
push eax
call edi
add esp, 8
test eax, eax
je 0x46e900
mov esi, dword [esi]
cmp esi, ebx
jne 0x46e8e6
jmp 0x46e932
cmp esi, ebx
je 0x46e932
add esi, 0xc
lea ecx, [esp + 0x28]
push esi
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [esp + 0x34]
push ebx
push ebx
push 0x2b0f
mov eax, dword [edx + 0x20]
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [ebp]
cmp dword [ecx - 8], ebx
jne 0x46ea8f
mov ecx, dword [esp + 0x1080]
push 0x4e3404
call sub.MFC42.DLL_CString::operator
mov dword [esp + 0x3c], vtable.CMap_class_CString__char_const___class_CString__class_CString__.0
mov eax, dword [esp + 0x40]
mov byte [esp + 0x1078], 0xc
cmp eax, ebx
je 0x46e9a1
mov ecx, dword [esp + 0x44]
xor edi, edi
cmp ecx, ebx
jbe 0x46e9a1
mov esi, dword [eax + edi*4]
cmp esi, ebx
je 0x46e998
lea edx, [esi + 0xc]
push 1
push edx
call sub.MFC42.DLL_DestructElements
lea eax, [esi + 8]
push 1
push eax
call sub.MFC42.DLL_DestructElements
mov esi, dword [esi]
cmp esi, ebx
jne 0x46e978
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
inc edi
cmp edi, ecx
jb 0x46e971
push eax
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0x54]
add esp, 4
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
call sub.MFC42.DLL_CPlex::FreeDataChain
lea ecx, [esp + 0x28]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x3c], vtable.CObject.0
mov byte [esp + 0x1078], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x58]
mov byte [esp + 0x1078], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x1078], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1078], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x1078], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x1078], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1078], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x1078], 2
call fcn.00453530
lea ecx, [esp + 0x18]
mov byte [esp + 0x1078], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x1078], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1078], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor al, al
jmp 0x46ebce
mov dword [esp + 0x3c], vtable.CMap_class_CString__char_const___class_CString__class_CString__.0
mov eax, dword [esp + 0x40]
mov byte [esp + 0x1078], 0xd
cmp eax, ebx
je 0x46eae1
mov eax, dword [esp + 0x44]
xor edi, edi
cmp eax, ebx
jbe 0x46eae1
mov ecx, dword [esp + 0x40]
mov esi, dword [ecx + edi*4]
cmp esi, ebx
je 0x46ead8
lea edx, [esi + 0xc]
push 1
push edx
call sub.MFC42.DLL_DestructElements
lea eax, [esi + 8]
push 1
push eax
call sub.MFC42.DLL_DestructElements
mov esi, dword [esi]
cmp esi, ebx
jne 0x46eabc
mov eax, dword [esp + 0x44]
inc edi
cmp edi, eax
jb 0x46eab1
mov ecx, dword [esp + 0x40]
push ecx
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0x54]
add esp, 4
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
call sub.MFC42.DLL_CPlex::FreeDataChain
lea ecx, [esp + 0x28]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x3c], vtable.CObject.0
mov byte [esp + 0x1078], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x58]
mov byte [esp + 0x1078], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x1078], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2c]
mov byte [esp + 0x1078], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x1078], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x1078], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1078], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x1078], 2
call fcn.00453530
lea ecx, [esp + 0x18]
mov byte [esp + 0x1078], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x1078], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1078], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov al, 1
mov ecx, dword [esp + 0x1070]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x106c
ret 4