Function at 0x46e1d0
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 0x4ba01a
push eax
mov eax, 0x1060
mov dword fs:[0], esp
call fcn.004acd20
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.004abd40
add esp, 4
test al, al
jne 0x46e230
mov ecx, dword [esp + 0x1080]
push 0x4e45a4
call sub.MFC42.DLL_CString::operator
jmp 0x46e82e
push str.soft.8u.cn
call sub.WS2_32.dll_gethostbyname
mov edi, eax
cmp edi, ebx
jne 0x46e256
mov ecx, dword [esp + 0x1080]
push 0x4e456c
call sub.MFC42.DLL_CString::operator
jmp 0x46e82e
push ebx
push 1
push 2
call sub.WS2_32.dll_socket
mov esi, eax
or ebp, 0xffffffff
cmp esi, ebp
jne 0x46e291
mov ecx, dword [esp + 0x1080]
push 0x4e4540
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 0x46e988
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 0x46e2ee
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0x1080]
push 0x4e4510
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 0x46e988
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x640]
cmp ecx, ebx
je 0x46e301
call fcn.0041c3f0
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.00453770
lea eax, [esp + 0x14]
lea ecx, [esp + 0x20]
push eax
mov byte [esp + 0x107c], 3
call fcn.00453910
test eax, eax
jne 0x46e354
push 0x4e2eb8
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
call fcn.004537b0
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]
push eax
mov ecx, dword [eax - 8]
lea eax, [esp + 0x34]
push ecx
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 + 0x40]
add esp, 0x24
mov ecx, dword [eax - 8]
push ebx
push ecx
push eax
push esi
call sub.WS2_32.dll_send
cmp eax, ebp
jne 0x46e457
push esi
call sub.WS2_32.dll_closesocket
mov ecx, dword [esp + 0x1080]
push 0x4e4438
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.004537a0
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 0x46e988
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 0x46e4a2
mov edi, 1
mov cl, byte [esp + 0x70]
cmp cl, 0xa
je 0x46e4b3
cmp cl, 0xd
je 0x46e4be
inc ebp
jmp 0x46e4be
cmp ebp, ebx
jne 0x46e4bc
mov edi, 1
xor ebp, ebp
mov byte [esp + eax + 0x70], bl
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x3c]
call fcn.004ac20a
cmp edi, ebx
je 0x46e48b
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 0x46e529
lea edx, [esp + 0x70]
lea ecx, [esp + 0x2c]
push edx
mov byte [esp + edi + 0x74], bl
call fcn.004ac20a
cmp edi, ebx
jle 0x46e529
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 0x46e4fc
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]
push eax
lea ecx, [esp + 0x38]
push 0x4e2aa4
push ecx
call sub.MFC42.DLL_CString::Format_1
mov edx, dword [esp + 0x40]
add esp, 0x10
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 0x46e582
call fcn.0041c410
mov eax, dword [esp + 0x2c]
cmp dword [eax - 8], ebx
jne 0x46e5a1
mov ecx, dword [esp + 0x1080]
push 0x4e4404
call sub.MFC42.DLL_CString::operator
jmp 0x46e7a7
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.0046ea30
push 0x4e4400
call sub.MFC42.DLL_HashKey
xor edx, edx
div dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x46e6ec
mov esi, dword [eax + edx*4]
cmp esi, ebx
je 0x46e6ec
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
mov eax, dword [esi + 8]
push 0x4e4400
push eax
call edi
add esp, 8
test eax, eax
je 0x46e655
mov esi, dword [esi]
cmp esi, ebx
jne 0x46e638
jmp 0x46e6ec
cmp esi, ebx
je 0x46e6ec
add esi, 0xc
lea ecx, [esp + 0x28]
push esi
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x28]
push 0x4e43fc
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x46e6ec
push str.UpdateUrl
call sub.MFC42.DLL_HashKey
xor edx, edx
div dword [esp + 0x44]
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x46e6ec
mov esi, dword [eax + edx*4]
cmp esi, ebx
je 0x46e6ec
mov eax, dword [esi + 8]
push str.UpdateUrl
push eax
call edi
add esp, 8
test eax, eax
je 0x46e6ba
mov esi, dword [esi]
cmp esi, ebx
jne 0x46e6a0
jmp 0x46e6ec
cmp esi, ebx
je 0x46e6ec
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 0x46e849
mov ecx, dword [esp + 0x1080]
push 0x4e43c4
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 0x46e75b
mov ecx, dword [esp + 0x44]
xor edi, edi
cmp ecx, ebx
jbe 0x46e75b
mov esi, dword [eax + edi*4]
cmp esi, ebx
je 0x46e752
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 0x46e732
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
inc edi
cmp edi, ecx
jb 0x46e72b
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.004537a0
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 0x46e988
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 0x46e89b
mov eax, dword [esp + 0x44]
xor edi, edi
cmp eax, ebx
jbe 0x46e89b
mov ecx, dword [esp + 0x40]
mov esi, dword [ecx + edi*4]
cmp esi, ebx
je 0x46e892
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 0x46e876
mov eax, dword [esp + 0x44]
inc edi
cmp edi, eax
jb 0x46e86b
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.004537a0
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