Function at 0x46dbf0
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 0x4b95aa
push eax
mov eax, 0x1060
mov dword fs:[0], esp
call fcn.004ac8c0
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.004ab960
add esp, 4
test al, al
jne 0x46dc50
mov ecx, dword [esp + 0x1080]
push 0x4e3578
call sub.MFC42.DLL_CString::operator
jmp 0x46e254
push str.soft.8u.cn
call sub.WS2_32.dll_gethostbyname
mov edi, eax
cmp edi, ebx
jne 0x46dc76
mov ecx, dword [esp + 0x1080]
push 0x4e3540
call sub.MFC42.DLL_CString::operator
jmp 0x46e254
push ebx
push 1
push 2
call sub.WS2_32.dll_socket
mov esi, eax
or ebp, 0xffffffff
cmp esi, ebp
jne 0x46dcb1
mov ecx, dword [esp + 0x1080]
push 0x4e3514
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 0x46e3ae
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 0x46dd0e
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0x1080]
push 0x4e34e4
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 0x46e3ae
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x640]
cmp ecx, ebx
je 0x46dd21
call fcn.0041bfd0
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.00453080
lea eax, [esp + 0x14]
lea ecx, [esp + 0x20]
push eax
mov byte [esp + 0x107c], 3
call fcn.00453220
test eax, eax
jne 0x46dd74
push 0x4e1e80
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
call fcn.004530c0
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 0x46de7a
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0x1080]
push 0x4e340c
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.004530b0
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 0x46e3ae
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 0x46dec5
mov edi, 1
mov cl, byte [esp + 0x70]
cmp cl, 0xa
je 0x46ded6
cmp cl, 0xd
je 0x46dee1
inc ebp
jmp 0x46dee1
cmp ebp, ebx
jne 0x46dedf
mov edi, 1
xor ebp, ebp
mov byte [esp + eax + 0x70], bl
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x3c]
call fcn.004abdba
cmp edi, ebx
je 0x46deae
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 0x46df4c
lea edx, [esp + 0x70]
lea ecx, [esp + 0x2c]
push edx
mov byte [esp + edi + 0x74], bl
call fcn.004abdba
cmp edi, ebx
jle 0x46df4c
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 0x46df1f
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 0x4e3408
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 0x46dfa8
call fcn.0041bff0
mov eax, dword [esp + 0x2c]
cmp dword [eax - 8], ebx
jne 0x46dfc7
mov ecx, dword [esp + 0x1080]
push 0x4e33d4
call sub.MFC42.DLL_CString::operator
jmp 0x46e1cd
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.0046e450
push 0x4e33d0
call sub.MFC42.DLL_HashKey
xor edx, edx
div dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x46e112
mov esi, dword [eax + edx*4]
cmp esi, ebx
je 0x46e112
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
mov eax, dword [esi + 8]
push 0x4e33d0
push eax
call edi
add esp, 8
test eax, eax
je 0x46e07b
mov esi, dword [esi]
cmp esi, ebx
jne 0x46e05e
jmp 0x46e112
cmp esi, ebx
je 0x46e112
add esi, 0xc
lea ecx, [esp + 0x28]
push esi
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x28]
push 0x4e33cc
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x46e112
push str.UpdateUrl
call sub.MFC42.DLL_HashKey
xor edx, edx
div dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x46e112
mov esi, dword [eax + edx*4]
cmp esi, ebx
je 0x46e112
mov eax, dword [esi + 8]
push str.UpdateUrl
push eax
call edi
add esp, 8
test eax, eax
je 0x46e0e0
mov esi, dword [esi]
cmp esi, ebx
jne 0x46e0c6
jmp 0x46e112
cmp esi, ebx
je 0x46e112
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 0x46e26f
mov ecx, dword [esp + 0x1080]
push 0x4e3394
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 0x46e181
mov ecx, dword [esp + 0x44]
xor edi, edi
cmp ecx, ebx
jbe 0x46e181
mov esi, dword [eax + edi*4]
cmp esi, ebx
je 0x46e178
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 0x46e158
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
inc edi
cmp edi, ecx
jb 0x46e151
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.004530b0
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 0x46e3ae
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 0x46e2c1
mov eax, dword [esp + 0x44]
xor edi, edi
cmp eax, ebx
jbe 0x46e2c1
mov ecx, dword [esp + 0x40]
mov esi, dword [ecx + edi*4]
cmp esi, ebx
je 0x46e2b8
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 0x46e29c
mov eax, dword [esp + 0x44]
inc edi
cmp edi, eax
jb 0x46e291
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.004530b0
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