Function at 0x446284
Capabilities:
Check if file exists
Enumerate files on windows
Get common file path
Get startup folder

Disassembly:
push 0x6bc
mov eax, 0x5d20c7
call fcn.0056df1d
mov ebx, dword [ebp + 8]
xor esi, esi
mov edi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x450], esi
mov dword [ebp - 0x440], esi
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
push str.TencentQQMisc
lea ecx, [ebp - 0x450]
mov dword [ebp - 4], esi
call fcn.004089a4
push 0x410
lea eax, [ebp - 0x420]
xorps xmm0, xmm0
push esi
push eax
movlpd qword [ebp - 0x6c8], xmm0
call fcn.005713c0
add esp, 0xc
lea eax, [ebp - 0x420]
push eax
push esi
push esi
push 0x1a
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xor eax, eax
mov dword [ebp - 0x438], esi
mov word [ebp - 0x438], ax
lea ecx, [ebp - 0x438]
lea eax, [ebp - 0x420]
mov dword [ebp - 0x428], esi
push eax
mov dword [ebp - 0x424], 7
call fcn.004089a4
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x428]
test edx, edx
jne 0x446369
cmp dword [ebp - 0x43c], 8
lea eax, [ebp - 0x450]
push dword [ebp - 0x440]
cmovae eax, dword [ebp - 0x450]
lea ecx, [ebp - 0x438]
push eax
call fcn.00407684
jmp 0x44642d
mov ecx, dword [ebp - 0x440]
test ecx, ecx
je 0x44642d
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
push 0x5c
cmovae eax, dword [ebp - 0x438]
mov dword [ebp - 0x6bc], 0x2f
movzx eax, word [eax + edx*2 - 2]
pop edx
mov dword [ebp - 0x6c0], edx
cmp word [ebp - 0x6bc], ax
je 0x4463c7
cmp dx, ax
je 0x4463c7
push 0x6058cc
lea ecx, [ebp - 0x438]
call fcn.004092d1
mov ecx, dword [ebp - 0x440]
cmp dword [ebp - 0x43c], 8
lea eax, [ebp - 0x450]
mov edx, esi
cmovae eax, dword [ebp - 0x450]
movzx eax, word [eax]
cmp word [ebp - 0x6bc], ax
je 0x4463f2
cmp word [ebp - 0x6c0], ax
jne 0x4463f5
xor edx, edx
inc edx
cmp dword [ebp - 0x43c], 8
lea eax, [ebp - 0x450]
cmovae eax, dword [ebp - 0x450]
lea ecx, [eax + ecx*2]
lea eax, [ebp - 0x450]
cmovae eax, dword [ebp - 0x450]
lea eax, [eax + edx*2]
sub ecx, eax
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x438]
call fcn.004092f8
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4466a3
push str..
lea ecx, [ebp - 0x438]
call fcn.004092d1
push 0x250
lea eax, [ebp - 0x6b8]
push esi
push eax
call fcn.005713c0
add esp, 0xc
lea ecx, [ebp - 0x6b8]
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov esi, eax
test esi, esi
je 0x4466a1
mov ecx, 0x6088ac
lea eax, [ebp - 0x68c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4464d2
test dx, dx
je 0x4464ce
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4464d2
add eax, 4
add ecx, 4
test dx, dx
jne 0x4464ac
xor eax, eax
jmp 0x4464d7
sbb eax, eax
or eax, 1
test eax, eax
je 0x446675
mov ecx, 0x6088b0
lea eax, [ebp - 0x68c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x446510
test dx, dx
je 0x44650c
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x446510
add eax, 4
add ecx, 4
test dx, dx
jne 0x4464ea
xor eax, eax
jmp 0x446515
sbb eax, eax
or eax, 1
test eax, eax
je 0x446675
and dword [ebp - 0x468], 0
lea ecx, [ebp - 0x468]
and dword [ebp - 0x458], 0
xor eax, eax
mov word [ebp - 0x468], ax
lea eax, [ebp - 0x68c]
push eax
mov dword [ebp - 0x454], 7
call fcn.004089a4
sub esp, 0x18
mov byte [ebp - 4], 2
mov ecx, esp
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x468]
push eax
call fcn.00407eca
call fcn.004461d5
add esp, 0x18
test al, al
je 0x446604
lea eax, [ebp - 0x6c8]
push eax
lea eax, [ebp - 0x6a4]
push eax
call dword [sym.imp.KERNEL32.DLL_CompareFileTime]
cmp eax, 1
jne 0x4465d6
mov eax, dword [ebp - 0x6a4]
mov ecx, dword [ebp - 0x6a0]
mov dword [ebp - 0x6c8], eax
lea eax, [ebp - 0x468]
mov dword [ebp - 0x6c4], ecx
cmp edi, eax
je 0x4465d6
cmp dword [ebp - 0x454], 8
mov ecx, edi
push dword [ebp - 0x458]
cmovae eax, dword [ebp - 0x468]
push eax
call fcn.00407684
cmp dword [ebp - 0x454], 8
lea eax, [ebp - 0x468]
push dword [ebp - 0x458]
cmovae eax, dword [ebp - 0x468]
mov ecx, ebx
push eax
call fcn.004092f8
push 0x60a104
mov ecx, ebx
call fcn.004092d1
push 0x250
lea eax, [ebp - 0x6b8]
push 0
push eax
call fcn.005713c0
mov byte [ebp - 4], 1
add esp, 0xc
mov eax, dword [ebp - 0x454]
cmp eax, 8
jb 0x44668b
mov ecx, dword [ebp - 0x468]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x6bc], eax
mov dword [ebp - 0x6c0], ecx
cmp eax, 0x1000
jb 0x44666a
lea eax, [ebp - 0x6bc]
push eax
lea eax, [ebp - 0x6c0]
push eax
call fcn.0040379f
mov eax, dword [ebp - 0x6bc]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x6c0]
push eax
push ecx
call fcn.0056d0c8
pop ecx
pop ecx
jmp 0x44668b
push 0x250
lea eax, [ebp - 0x6b8]
push 0
push eax
call fcn.005713c0
add esp, 0xc
lea eax, [ebp - 0x6b8]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x4464a1
xor esi, esi
mov eax, dword [ebp - 0x424]
cmp eax, 8
jb 0x4466f8
mov ecx, dword [ebp - 0x438]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x6c0], eax
mov dword [ebp - 0x6bc], ecx
cmp eax, 0x1000
jb 0x4466ef
lea eax, [ebp - 0x6c0]
push eax
lea eax, [ebp - 0x6bc]
push eax
call fcn.0040379f
mov eax, dword [ebp - 0x6c0]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x6bc]
push eax
push ecx
call fcn.0056d0c8
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x428], esi
mov word [ebp - 0x438], ax
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x424], 7
cmp eax, 8
jb 0x446766
mov ecx, dword [ebp - 0x450]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x6c0], eax
mov dword [ebp - 0x6bc], ecx
cmp eax, 0x1000
jb 0x44675d
lea eax, [ebp - 0x6c0]
push eax
lea eax, [ebp - 0x6bc]
push eax
call fcn.0040379f
mov eax, dword [ebp - 0x6c0]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x6bc]
push eax
push ecx
call fcn.0056d0c8
pop ecx
pop ecx
call fcn.0056decc
ret