Function at 0x43f550
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
push edi
xor esi, esi
cmp dword [ebp + 0xc], esi
mov edi, ecx
mov dword [ebp - 4], edi
jne 0x43f5d0
mov dword [ebp + 0xc], 0x4e1ad0
mov dword [ebp - 0x14], str.F:_svn_codeQPUpd_v137SourceUtilDataReport.cpp
mov dword [ebp - 0x10], str.CDataReport::OnDownloadComplete
mov dword [ebp - 0x18], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x40], 0x94
mov dword [ebp - 0x3c], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x44], 3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x30], esi
call dword [sym.imp.MSVCR80.dll__time64]
lea ecx, [ebp + 0xc]
push ecx
push 0x4dd0ec
lea edx, [ebp - 0x48]
push str.QPUPDATE
push edx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
call sym.QQProtectUpd.exe_void___cdecl_TXLog_DoTXLogVW_struct_tagLogObj___wchar_t_const___wchar_t_const___char__
add esp, 0x14
add edi, 0x10
mov dword [ebp - 8], esi
mov esi, dword [edi + 4]
cmp esi, dword [edi + 8]
jbe 0x43f5e4
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ebx, edi
mov eax, dword [edi + 8]
cmp dword [edi + 4], eax
mov dword [ebp + 0xc], eax
jbe 0x43f5f7
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
test ebx, ebx
je 0x43f5ff
cmp ebx, edi
je 0x43f605
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp esi, dword [ebp + 0xc]
je 0x43f65c
test ebx, ebx
jne 0x43f614
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp esi, dword [ebx + 8]
jb 0x43f61f
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [ebp + 8]
cmp dword [esi], eax
jne 0x43f64c
mov eax, dword [edi + 8]
lea ecx, [esi + 4]
sub eax, ecx
sar eax, 2
test eax, eax
jle 0x43f646
add eax, eax
add eax, eax
push eax
push ecx
push eax
push esi
call dword [sym.imp.MSVCR80.dll_memmove_s]
add esp, 0x10
add dword [edi + 8], 0xfffffffc
jmp 0x43f5e6
cmp esi, dword [ebx + 8]
jb 0x43f657
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
add esi, 4
jmp 0x43f5e6
mov ebx, dword [ebp - 4]
cmp dword [ebx + 0xc], 0
je 0x43f67d
mov eax, dword [edi + 4]
test eax, eax
je 0x43f676
mov ecx, dword [edi + 8]
sub ecx, eax
sar ecx, 2
jne 0x43f67d
mov esi, 1
jmp 0x43f680
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 8]
test eax, eax
je 0x43f694
mov edx, dword [eax + 4]
lea ecx, [eax + 4]
mov eax, dword [edx + 0xc]
push 1
call eax
xor eax, eax
cmp esi, eax
je 0x43f70e
mov dword [ebp + 8], 0x4e1a6c
mov dword [ebp - 0x14], str.F:_svn_codeQPUpd_v137SourceUtilDataReport.cpp
mov dword [ebp - 0x10], str.CDataReport::OnDownloadComplete
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x40], 0xb2
mov dword [ebp - 0x3c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x44], 3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [ebp - 0x28]
xor esi, esi
push ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], esi
call dword [sym.imp.MSVCR80.dll__time64]
lea edx, [ebp + 8]
push edx
push 0x4dd0ec
lea eax, [ebp - 0x48]
push str.QPUPDATE
push eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
call sym.QQProtectUpd.exe_void___cdecl_TXLog_DoTXLogVW_struct_tagLogObj___wchar_t_const___wchar_t_const___char__
add esp, 0x14
mov ecx, ebx
call fcn.0043ef70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8