Function at 0x496d58
Capabilities:
Check if file exists
Delete file

Disassembly:
push 0x30c
mov eax, 0x4e6406
call fcn.004beaa5
lea eax, [ebp - 0x294]
mov ebx, ecx
push eax
mov ecx, str.Kernel32.dll
call fcn.004099e0
xor edi, edi
lea ecx, [ebp - 0x294]
mov dword [ebp - 4], edi
call fcn.004927aa
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x294]
mov esi, eax
call fcn.00416ce0
cmp esi, edi
je 0x496dbc
push str.SetDllDirectoryW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, edi
je 0x496dbc
push 0x4ef7d8
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, 0x4f5ae4
lea eax, [ebp - 0x2e0]
call fcn.004036c0
push eax
mov edx, 0x4f09a0
lea eax, [ebp - 0x2fc]
mov dword [ebp - 4], 1
call fcn.004036c0
push eax
mov edx, 0x4f7314
lea eax, [ebp - 0x318]
mov byte [ebp - 4], 2
call fcn.004036c0
push eax
sub esp, 0x1c
mov byte [ebp - 4], 3
mov edx, ebx
mov eax, esp
mov dword [ebp - 0x298], esp
call fcn.004036c0
lea ebx, [ebp - 0x288]
call fcn.0049ead6
lea esi, [ebp - 0x318]
call fcn.00416cb0
lea esi, [ebp - 0x2fc]
call fcn.00416cb0
lea esi, [ebp - 0x2e0]
mov byte [ebp - 4], 7
call fcn.00416cb0
mov edx, str.operator
lea eax, [ebp - 0x2c4]
mov dword [ebp - 0x28c], edi
call fcn.004036c0
lea eax, [ebp - 0x28c]
push eax
lea eax, [ebp - 0x2c4]
push eax
mov eax, ebx
push eax
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 8
call fcn.00497d5d
lea esi, [ebp - 0x2c4]
mov byte [ebp - 4], 7
call fcn.00416cb0
call fcn.00492549
mov cl, byte [ebp - 0x28c]
mov byte [eax], cl
mov dword [ebp - 0x290], edi
call fcn.00492549
mov dword [eax + 0xc], 0xc22
mov edx, str.supplyid
lea eax, [ebp - 0x2c4]
call fcn.004036c0
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x2c4]
push eax
mov eax, ebx
push eax
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 9
call fcn.00497d5d
lea esi, [ebp - 0x2c4]
mov byte [ebp - 4], 7
call fcn.00416cb0
call fcn.00492549
mov ebx, dword [ebp - 0x290]
mov dword [eax + 4], ebx
call fcn.00492572
mov esi, eax
cmp esi, edi
je 0x49723d
push 0x208
lea eax, [ebp - 0x21e]
push edi
mov dword [esi + 8], ebx
push eax
mov word [ebp - 0x220], di
call fcn.004be320
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp - 0x220]
push str.QQPCDownloader_PropData__d
push eax
call fcn.004b8a64
lea eax, [ebp - 0x220]
add esp, 0xc
push eax
call fcn.00495016
mov ebx, eax
cmp ebx, edi
pop ecx
je 0x496f99
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x496f99
cmp dword [ebp - 0x28c], 2
jne 0x496f6f
call fcn.004968ce
push edi
push edi
push 0x80fa
jmp 0x496f88
cmp dword [ebp - 0x28c], 3
jne 0x49723d
call fcn.004968ce
push edi
push edi
push 0x80fb
push ebx
call dword [sym.imp.USER32.dll_PostMessageW]
call fcn.00496930
jmp 0x49723d
mov eax, dword [ebp - 0x28c]
xor ebx, ebx
inc ebx
cmp eax, ebx
jne 0x496fd3
call fcn.004968ce
mov edi, esi
call fcn.00495afa
test eax, eax
je 0x49723d
call fcn.0048fc82
test eax, eax
je 0x496fc8
call fcn.004967e0
push 0
mov ecx, esi
call fcn.00496a0a
jmp 0x497003
cmp eax, 2
jne 0x49700d
mov edi, esi
call fcn.00495afa
call fcn.004968ce
call fcn.00492549
mov ecx, esi
mov byte [eax + 2], bl
call fcn.004950dc
call fcn.00492549
mov cl, byte [esi + 0xc]
mov byte [eax + 1], cl
call fcn.00496930
call fcn.00495bc7
jmp 0x49723d
cmp eax, 3
jne 0x497206
call fcn.004968ce
mov eax, dword [0x5159f0]
mov dword [ebp - 0x290], eax
call fcn.00492549
mov byte [eax + 2], 4
call fcn.00492549
mov cl, byte [ebp - 0x290]
mov byte [eax + 1], cl
push ebx
lea edx, [ebp - 0x290]
mov ecx, str.ProductID
call fcn.0048f902
test eax, eax
pop ecx
je 0x4970c1
cmp dword [ebp - 0x290], edi
jne 0x49707c
call fcn.00492549
mov esi, 0x515a40
push esi
mov byte [eax + 3], 0xe
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [0x515a68], 0xe
jmp 0x4970ba
call fcn.00492549
mov cl, byte [ebp - 0x290]
push edi
push edi
push 0x5155d8
mov byte [eax + 1], cl
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
cmp eax, ebx
jne 0x4970c1
call fcn.00492549
mov esi, 0x515a40
push esi
mov byte [eax + 3], 0x11
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [0x515a68], 0x11
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push ebx
lea edx, [ebp - 0x29c]
mov ecx, str.NeedRecord
call fcn.0048f902
test eax, eax
pop ecx
je 0x49710f
cmp dword [ebp - 0x29c], ebx
jne 0x49710f
cmp dword [ebp - 0x290], edi
je 0x49710f
lea eax, [ebp - 0x2a8]
push eax
call fcn.004940ba
push dword [ebp - 0x290]
lea ecx, [ebp - 0x2a8]
call fcn.00494339
lea esi, [ebp - 0x2a8]
call fcn.004941bf
call fcn.0048fc82
test eax, eax
je 0x49711d
call fcn.004967e0
lea eax, [ebp - 0x28c]
push eax
mov ecx, 0x4ef7d8
call fcn.004099e0
lea ecx, [ebp - 0x298]
mov byte [ebp - 4], 0xa
call fcn.0048fcec
mov byte [ebp - 4], 0xb
mov ecx, dword [eax]
mov esi, dword [ebp - 0x28c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x497186
cmp dword [esi + 0xc], edi
jl 0x497177
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x497177
call fcn.004012d0
mov edi, eax
mov eax, esi
call fcn.004010d0
add edi, 0x10
mov dword [ebp - 0x28c], edi
jmp 0x497186
mov ebx, dword [ecx - 0xc]
push ecx
lea eax, [ebp - 0x28c]
call fcn.00401450
lea ecx, [ebp - 0x298]
mov byte [ebp - 4], 0xa
call fcn.00416ce0
lea eax, [ebp - 0x28c]
call fcn.00492622
mov edx, str.Download_
lea edi, [ebp - 0x28c]
call fcn.00413750
mov edx, dword [ebp - 0x28c]
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x294], esp
call fcn.004036c0
call fcn.0048fe0b
add esp, 0x1c
mov edx, str.QQPCDownload.exe
call fcn.00413750
push dword [ebp - 0x28c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4971f4
push dword [ebp - 0x28c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.00496930
lea ecx, [ebp - 0x28c]
call fcn.00416ce0
jmp 0x49723d
cmp eax, 4
jne 0x49723d
call fcn.004968ce
mov edi, esi
call fcn.00495afa
call fcn.0048fc82
test eax, eax
je 0x497225
call fcn.004967e0
push ebx
mov ecx, esi
call fcn.00496a0a
call fcn.00495bc7
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x288]
call fcn.0049ebd6
xor eax, eax
call fcn.004beb28
ret