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

Disassembly:
push 0x480
mov eax, 0x5d68d1
call fcn.0056d43d
mov ecx, dword [ebp + 8]
mov edi, 0x104
mov eax, dword [ebp + 0xc]
mov esi, 0x6497c0
push edi
push esi
push ecx
mov dword [0x649dd8], ecx
mov dword [0x63f624], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push esi
push edi
mov esi, 0x6499c8
push esi
call fcn.00591c49
add esp, 0xc
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov esi, 0x649bd0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor ebx, ebx
test eax, eax
je 0x44b3b0
push 0x208
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.00573610
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.0040b93c
lea eax, [ebp - 0x420]
push eax
push edi
push esi
call fcn.00591d35
add esp, 0x1c
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 0x6495b8
push ebx
push ebx
push 0x1a
push ebx
call edi
mov esi, 0x6493b0
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.00573610
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.0044c131
pop ecx
xor eax, eax
mov ebx, 0x6491a8
inc eax
push ebx
mov dword [0x63f620], 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.0045a06f
mov byte [ebp - 4], 1
push 8
pop esi
cmp dword [ebp - 0x488], ebx
je 0x44b500
lea eax, [ebp - 0x468]
push eax
push str.InstallDir
lea ecx, [ebp - 0x48c]
call fcn.0045a20c
mov edi, 0x104
test al, al
je 0x44b505
cmp dword [ebp - 0x454], esi
lea eax, [ebp - 0x468]
cmovae eax, dword [ebp - 0x468]
push eax
push edi
push 0x648fa0
call fcn.00591c49
cmp dword [ebp - 0x454], esi
lea eax, [ebp - 0x468]
cmovae eax, dword [ebp - 0x468]
push eax
call fcn.0044c131
add esp, 0x10
mov dword [0x63f620], ebx
jmp 0x44b505
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.004538df
test al, al
je 0x44b719
cmp dword [ebp - 0x424], esi
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
push eax
push edi
push 0x648b90
call fcn.00591c49
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.0040850d
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x440]
test edx, edx
jne 0x44b5b9
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.00407cc7
jmp 0x44b67a
mov ecx, dword [ebp - 0x428]
test ecx, ecx
je 0x44b67a
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 0x44b616
cmp dx, ax
je 0x44b616
push 0x60db0c
lea ecx, [ebp - 0x450]
call fcn.00409914
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 0x44b640
cmp word [ebp - 0x480], ax
jne 0x44b643
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.0040993b
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 0x44b6ae
cmp dword [ebp - 0x43c], esi
lea eax, [ebp - 0x450]
cmovae eax, dword [ebp - 0x450]
push eax
jmp 0x44b6b3
push 0x648fa0
push edi
push 0x648d98
call fcn.00591c49
mov byte [ebp - 4], 2
add esp, 0xc
mov eax, dword [ebp - 0x43c]
cmp eax, esi
jb 0x44b719
mov ecx, dword [ebp - 0x450]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x480], ecx
cmp eax, 0x1000
jb 0x44b710
lea eax, [ebp - 0x47c]
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.00403daf
mov eax, dword [ebp - 0x47c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x480]
push eax
push ecx
call fcn.0056c61e
pop ecx
pop ecx
cmp dword [0x63f624], 0
jne 0x44b7ab
call fcn.00452da0
call fcn.004b4ef2
test al, al
je 0x44b752
call fcn.00452da0
call fcn.004b4fe0
mov ecx, dword [0x64655c]
test al, al
push 1
pop eax
cmovne ecx, eax
mov dword [0x64655c], 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.00452da0
call fcn.004b51dd
mov ecx, dword [0x64655c]
cmp esi, eax
push 1
pop eax
cmove ecx, eax
push 8
mov dword [0x64655c], ecx
pop esi
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, eax
call fcn.004b5ba4
mov eax, dword [ebp - 0x424]
cmp eax, esi
jb 0x44b811
mov ecx, dword [ebp - 0x438]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], ecx
cmp eax, 0x1000
jb 0x44b808
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x47c]
push eax
call fcn.00403daf
mov eax, dword [ebp - 0x480]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x47c]
push eax
push ecx
call fcn.0056c61e
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 0x44b84e
push dword [ebp - 0x484]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x484], ebx
cmp dword [ebp - 0x488], 0
je 0x44b869
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 0x44b8bd
mov ecx, dword [ebp - 0x468]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], ecx
cmp eax, 0x1000
jb 0x44b8b4
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x47c]
push eax
call fcn.00403daf
mov eax, dword [ebp - 0x480]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x47c]
push eax
push ecx
call fcn.0056c61e
pop ecx
pop ecx
call fcn.0056d3ec
ret