Function at 0x44cf0f
Capabilities:
Check if file exists
Get common file path
Get program files directory
Get startup folder

Disassembly:
push 0x480
mov eax, 0x5c2b72
call fcn.00542a1f
mov ecx, dword [ebp + 8]
mov edi, 0x104
mov eax, dword [ebp + 0xc]
mov esi, 0x636a30
push edi
push esi
push ecx
mov dword [0x637048], ecx
mov dword [0x62c77c], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push esi
push edi
mov esi, 0x636c38
push esi
call fcn.00567229
add esp, 0xc
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov esi, 0x636e40
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor ebx, ebx
test eax, eax
je 0x44cfab
push 0x208
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.00548bf0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push str.12au_x
lea eax, [ebp - 0x420]
push edi
push eax
call fcn.0040bb95
lea eax, [ebp - 0x420]
push eax
push edi
push esi
call fcn.00567315
add esp, 0x1c
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 0x636828
push ebx
push ebx
push 0x1a
push ebx
call edi
mov esi, 0x636620
push esi
push ebx
push ebx
push 0x1c
push ebx
call edi
mov ebx, str.TencentQQBrowser
push ebx
push esi
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
call esi
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00548bf0
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
push eax
push 0x26
push eax
call edi
push ebx
lea eax, [ebp - 0x218]
push eax
call esi
lea eax, [ebp - 0x218]
push eax
call fcn.0044dd2c
pop ecx
xor eax, eax
mov ebx, 0x636418
inc eax
push ebx
mov dword [0x62c778], eax
xor eax, eax
push eax
push eax
push 0x1a
push eax
call edi
push str.TencentQQBrowserDownloader
push ebx
call esi
xor ebx, ebx
mov dword [ebp - 0x454], 7
xor eax, eax
mov dword [ebp - 0x468], ebx
mov dword [ebp - 0x458], ebx
mov word [ebp - 0x468], ax
push 0x20019
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x48c]
push str.SoftwareTencentQQBrowser
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - method.Util::RegKey.virtual_0], vtable.Util::RegKey.0
mov dword [ebp - 0x488], ebx
mov dword [ebp - 0x484], ebx
call fcn.0045a318
mov byte [ebp - 4], 1
push 8
pop esi
cmp dword [ebp - 0x488], ebx
je 0x44d0fb
lea eax, [ebp - 0x468]
push eax
push str.InstallDir
lea ecx, [ebp - 0x48c]
call fcn.0045a4b5
mov edi, 0x104
test al, al
je 0x44d100
cmp dword [ebp - 0x454], esi
lea eax, [ebp - 0x468]
cmovae eax, dword [ebp - 0x468]
push eax
push edi
push 0x636210
call fcn.00567229
cmp dword [ebp - 0x454], esi
lea eax, [ebp - 0x468]
cmovae eax, dword [ebp - 0x468]
push eax
call fcn.0044dd2c
add esp, 0x10
mov dword [0x62c778], ebx
jmp 0x44d100
mov edi, 0x104
xor eax, eax
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 2
call fcn.00449031
test al, al
je 0x44d314
cmp dword [ebp - 0x424], esi
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
push eax
push edi
push 0x635e00
call fcn.00567229
add esp, 0xc
mov dword [ebp - 0x450], ebx
lea eax, [ebp - 0x468]
mov dword [ebp - 0x440], ebx
lea ecx, [ebp - 0x450]
mov dword [ebp - 0x43c], ebx
push eax
call fcn.00408766
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x440]
test edx, edx
jne 0x44d1b4
cmp dword [ebp - 0x424], esi
lea eax, [ebp - 0x438]
push dword [ebp - 0x428]
cmovae eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x450]
push eax
call fcn.00407f20
jmp 0x44d275
mov ecx, dword [ebp - 0x428]
test ecx, ecx
je 0x44d275
cmp dword [ebp - 0x43c], esi
lea eax, [ebp - 0x450]
push 0x5c
cmovae eax, dword [ebp - 0x450]
mov dword [ebp - 0x47c], 0x2f
movzx eax, word [eax + edx*2 - 2]
pop edx
mov dword [ebp - 0x480], edx
cmp word [ebp - 0x47c], ax
je 0x44d211
cmp dx, ax
je 0x44d211
push 0x5fb114
lea ecx, [ebp - 0x450]
call fcn.00409b6d
mov ecx, dword [ebp - 0x428]
cmp dword [ebp - 0x424], esi
lea eax, [ebp - 0x438]
mov edx, ebx
cmovae eax, dword [ebp - 0x438]
movzx eax, word [eax]
cmp word [ebp - 0x47c], ax
je 0x44d23b
cmp word [ebp - 0x480], ax
jne 0x44d23e
xor edx, edx
inc edx
cmp dword [ebp - 0x424], esi
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
lea ecx, [eax + ecx*2]
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
lea eax, [eax + edx*2]
sub ecx, eax
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x450]
call fcn.00409b94
cmp dword [ebp - 0x43c], esi
lea eax, [ebp - 0x450]
cmovae eax, dword [ebp - 0x450]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x44d2a9
cmp dword [ebp - 0x43c], esi
lea eax, [ebp - 0x450]
cmovae eax, dword [ebp - 0x450]
push eax
jmp 0x44d2ae
push 0x636210
push edi
push 0x636008
call fcn.00567229
mov byte [ebp - 4], 2
add esp, 0xc
mov eax, dword [ebp - 0x43c]
cmp eax, esi
jb 0x44d314
mov ecx, dword [ebp - 0x450]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x480], ecx
cmp eax, 0x1000
jb 0x44d30b
lea eax, [ebp - 0x47c]
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.00403fef
mov eax, dword [ebp - 0x47c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x480]
push eax
push ecx
call fcn.00541c01
pop ecx
pop ecx
cmp dword [0x62c77c], 0
jne 0x44d3a6
call fcn.004549ad
call fcn.004b51eb
test al, al
je 0x44d34d
call fcn.004549ad
call fcn.004b52d9
mov ecx, dword [0x6337cc]
test al, al
push 1
pop eax
cmovne ecx, eax
mov dword [0x6337cc], ecx
xor eax, eax
lea edi, [ebp - 0x478]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0x478]
imul ecx, eax, 0x64
movzx eax, word [ebp - 0x476]
add ecx, eax
movzx eax, word [ebp - 0x472]
imul esi, ecx, 0x64
add esi, eax
call fcn.004549ad
call fcn.004b54d6
mov ecx, dword [0x6337cc]
cmp esi, eax
push 1
pop eax
cmove ecx, eax
push 8
mov dword [0x6337cc], ecx
pop esi
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, eax
call fcn.004b5eaf
mov eax, dword [ebp - 0x424]
cmp eax, esi
jb 0x44d40c
mov ecx, dword [ebp - 0x438]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], ecx
cmp eax, 0x1000
jb 0x44d403
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x47c]
push eax
call fcn.00403fef
mov eax, dword [ebp - 0x480]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x47c]
push eax
push ecx
call fcn.00541c01
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
mov dword [ebp - method.Util::RegKey.virtual_0], vtable.Util::RegKey.0
cmp dword [ebp - 0x484], eax
je 0x44d449
push dword [ebp - 0x484]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x484], ebx
cmp dword [ebp - 0x488], 0
je 0x44d464
push dword [ebp - 0x488]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x488], ebx
mov eax, dword [ebp - 0x454]
cmp eax, esi
jb 0x44d4b8
mov ecx, dword [ebp - 0x468]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], ecx
cmp eax, 0x1000
jb 0x44d4af
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x47c]
push eax
call fcn.00403fef
mov eax, dword [ebp - 0x480]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x47c]
push eax
push ecx
call fcn.00541c01
pop ecx
pop ecx
call fcn.005429ce
ret