Function at 0x41a7e0
Capabilities:
Get http content length
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42abe9
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x44c264]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edx, dword [esi + 0x64]
xor ebx, ebx
push ebx
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x10]
push ecx
push 0x20000005
push edx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x18], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jne 0x41a853
mov edi, dword [sym.imp.QQMusicCommon.dll_void___cdecl_qqmusic::WriteLog_unsigned_long_int__wchar_t_const__]
push 0x23a
push str..NetworkHttp_Download.cpp
push str.Assert_failed___File:_s__line:_d__operation:m_pEvents
push 4
call edi
add esp, 0x10
jmp 0x41a865
mov edx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push edx
push esi
call eax
mov edi, dword [sym.imp.QQMusicCommon.dll_void___cdecl_qqmusic::WriteLog_unsigned_long_int__wchar_t_const__]
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jne 0x41a884
push 0x241
push str..NetworkHttp_Download.cpp
push str.Assert_failed___File:_s__line:_d__operation:m_pEvents
push 4
call edi
add esp, 0x10
jmp 0x41a891
mov eax, dword [ebp - 0x10]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
push eax
push ebx
push esi
call edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.QQMusicCommon.dll_public:_void___thiscall_QM::CFile::constructor_void_]
mov eax, dword [esi + 0x28]
cmp dword [eax - 0xc], ebx
mov dword [ebp - 4], ebx
je 0x41a91e
push ebx
push ebx
push eax
lea ecx, [ebp - 0x20]
call dword [sym.imp.QQMusicCommon.dll_public:_bool___thiscall_QM::CFile::Open_wchar_t_const___bool__bool_]
test al, al
jne 0x41a8f4
push 0x1bf
push str..NetworkHttp_Download.cpp
push str.Assert_failed___File:_s__line:_d__operation:file.Open_m_strResultFile__false__false_
push 4
call edi
add esp, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.QQMusicCommon.dll_public:_void___thiscall_QM::CFile::destructor_void_]
mov eax, 6
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0x54]
cmp eax, ebx
jle 0x41a91e
push ebx
push eax
lea ecx, [ebp - 0x20]
call dword [sym.imp.QQMusicCommon.dll_public:_bool___thiscall_QM::CFile::Seek_long_int__unsigned_long_int_]
test al, al
jne 0x41a91e
push 0x1c1
push str..NetworkHttp_Download.cpp
push str.Assert_failed___File:_s__line:_d__operation:file.Seek_m_nStartPos__FILE_BEGIN_
jmp 0x41ab4c
push 0xa
mov ecx, esi
mov dword [ebp - 0x14], ebx
call dword [sym.imp.QQMusicCommon.dll_public:_bool___thiscall_CQMPThreadBase::QueryExitEvent_unsigned_long_int_]
test al, al
jne 0x41aa9b
jmp 0x41a940
lea ebx, [esi + 0x68]
mov ecx, ebx
mov dword [esi + 0x88], 0x10000
call dword [sym.imp.QQMusicCommon.dll_public:_void___thiscall_CQMPEvent::Reset_void_]
push esi
push 1
lea eax, [esi + 0x70]
push eax
mov eax, dword [esi + 0x64]
push eax
mov dword [esi + 0x6c], 0
call dword [sym.imp.WININET.dll_InternetReadFileExA]
test eax, eax
jne 0x41a9cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x41aac4
mov ecx, dword [esi + 0x48]
push 1
push ecx
mov ecx, ebx
call dword [sym.imp.QQMusicCommon.dll_public:_void____thiscall_CQMPEvent::Get_void_const]
push eax
mov ecx, esi
call dword [sym.imp.QQMusicCommon.dll_public:_void____thiscall_CQMPThreadBase::QueryEventByTime_void___unsigned_long_int__bool_]
mov edi, eax
test edi, edi
je 0x41aaee
cmp edi, dword [esi + 4]
je 0x41aa9b
mov ecx, ebx
call dword [sym.imp.QQMusicCommon.dll_public:_void____thiscall_CQMPEvent::Get_void_const]
cmp edi, eax
jne 0x41ab53
cmp dword [esi + 0x6c], 0
jne 0x41aad5
mov edi, dword [sym.imp.QQMusicCommon.dll_void___cdecl_qqmusic::WriteLog_unsigned_long_int__wchar_t_const__]
cmp dword [esi + 0x88], 0
je 0x41ab17
mov edx, dword [esi + 0x28]
cmp dword [edx - 0xc], 0
je 0x41aa15
lea ecx, [ebp - 0x20]
call dword [sym.imp.QQMusicCommon.dll_public:_bool___thiscall_QM::CFile::IsOpen_void_]
test al, al
je 0x41aa5a
mov ebx, dword [esi + 0x88]
mov ecx, dword [esi + 0x84]
mov eax, ebx
push eax
push ecx
lea ecx, [ebp - 0x20]
call dword [sym.imp.QQMusicCommon.dll_public:_unsigned_long_int___thiscall_QM::CFile::Write_unsigned_char_const___unsigned_long_int_]
cmp eax, ebx
jne 0x41ab3d
add dword [ebp - 0x14], ebx
jmp 0x41aa5a
lea edi, [esi + 0x2c]
mov ecx, edi
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
mov edx, dword [esi + 0x88]
mov ebx, eax
add edx, ebx
push edx
mov ecx, edi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::resize_unsigned_int_]
mov ecx, edi
call dword [sym.imp.MSVCP80.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
push ecx
add eax, ebx
push edx
push eax
call sub.MSVCR80.dll_memcpy
mov edi, dword [sym.imp.QQMusicCommon.dll_void___cdecl_qqmusic::WriteLog_unsigned_long_int__wchar_t_const__]
add esp, 0xc
mov ecx, dword [esi + 0x18]
test ecx, ecx
jne 0x41aa79
push 0x241
push str..NetworkHttp_Download.cpp
push str.Assert_failed___File:_s__line:_d__operation:m_pEvents
push 4
call edi
add esp, 0x10
jmp 0x41aa89
mov edx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
push edx
mov edx, dword [ebp - 0x14]
push edx
push esi
call eax
push 0xa
mov ecx, esi
call dword [sym.imp.QQMusicCommon.dll_public:_bool___thiscall_CQMPThreadBase::QueryExitEvent_unsigned_long_int_]
test al, al
je 0x41a940
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.QQMusicCommon.dll_public:_void___thiscall_QM::CFile::destructor_void_]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x1d2
push str..NetworkHttp_Download.cpp
push str.Assert_failed___File:_s__line:_d__operation:::GetLastError____ERROR_IO_PENDING
jmp 0x41ab4c
push 0x1e1
push str..NetworkHttp_Download.cpp
push str.Assert_failed___File:_s__line:_d__operation:m_dwStatusCallback__ERROR_SUCCESS
push 4
call dword [sym.imp.QQMusicCommon.dll_void___cdecl_qqmusic::WriteLog_unsigned_long_int__wchar_t_const__]
jmp 0x41ab50
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.QQMusicCommon.dll_public:_void___thiscall_QM::CFile::destructor_void_]
mov eax, 7
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.QQMusicCommon.dll_public:_void___thiscall_QM::CFile::destructor_void_]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x1ee
push str..NetworkHttp_Download.cpp
push str.Assert_failed___File:_s__line:_d__operation:file.Write__const_unsigned_char__m_InternetBuffer.lpvBuffer__m_InternetBuffer.dwBufferLength___m_InternetBuffer.dwBufferLength
push 4
call edi
add esp, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.QQMusicCommon.dll_public:_void___thiscall_QM::CFile::destructor_void_]
mov eax, 2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8