Function at 0x546630
Capabilities:
Check if file exists
Delete file
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x633ca6
mov eax, dword fs:[0]
push eax
mov eax, 0x1104
call fcn.005b5230
mov eax, dword [0x6b278c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1110], ecx
mov dword [ebp - 4], 2
lea eax, [ebp - 0x480]
push eax
call fcn.00412530
mov ecx, eax
call fcn.0040acd0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x238]
push ecx
call fcn.00412530
mov ecx, eax
call fcn.0040ac90
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x480]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x5466c4
lea ecx, [ebp - 0x480]
call fcn.0040e5d0
push eax
call fcn.00432f80
add esp, 4
xor edx, edx
mov word [ebp - 0xa9c], dx
push 0x206
push 0
lea eax, [ebp - 0xa9a]
push eax
call fcn.005b4de0
add esp, 0xc
push 0
call fcn.00546ce0
add esp, 4
push eax
push 0x655918
lea ecx, [ebp - 0xa9c]
push ecx
call fcn.005b50ec
add esp, 0xc
lea edx, [ebp - 0x238]
push edx
lea ecx, [ebp - 0x464]
call fcn.0040e4f0
mov byte [ebp - 4], 5
push 0x655928
lea ecx, [ebp - 0x464]
call fcn.0040e5b0
lea ecx, [ebp - 0x464]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x546750
lea ecx, [ebp - 0x464]
call fcn.0040e5d0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push str.ct.ico
lea ecx, [ebp - 0x110c]
call fcn.0040e4b0
mov byte [ebp - 4], 6
lea eax, [ebp - 0x110c]
push eax
lea ecx, [ebp - 0x238]
push ecx
lea edx, [ebp + 8]
push edx
lea ecx, [ebp - 0xec9]
call fcn.00474a20
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x110c]
call fcn.0040e530
lea ecx, [ebp - 0x464]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x5467ff
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x464]
call fcn.0040e530
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x238]
call fcn.0040e530
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x480]
call fcn.0040e530
mov byte [ebp - 4], 1
lea ecx, [ebp + 8]
call fcn.0040e530
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x24]
call fcn.0040e530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x40]
call fcn.0040e530
jmp 0x546cc0
push 0
call fcn.00546ce0
add esp, 4
push eax
push str._d.ico
lea eax, [ebp - 0xa9c]
push eax
call fcn.005b50ec
add esp, 0xc
lea ecx, [ebp - 0x480]
push ecx
lea ecx, [ebp - 0xec8]
call fcn.0040e4f0
mov byte [ebp - 4], 7
lea edx, [ebp - 0xa9c]
push edx
lea ecx, [ebp - 0xec8]
call fcn.0040e5b0
lea ecx, [ebp - 0xec8]
call fcn.0040e5d0
push eax
lea ecx, [ebp - 0x464]
call fcn.0040e5d0
push eax
call fcn.004390d0
add esp, 8
lea ecx, [ebp - 0xec8]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x5468e4
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xec8]
call fcn.0040e530
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x464]
call fcn.0040e530
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x238]
call fcn.0040e530
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x480]
call fcn.0040e530
mov byte [ebp - 4], 1
lea ecx, [ebp + 8]
call fcn.0040e530
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x24]
call fcn.0040e530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x40]
call fcn.0040e530
jmp 0x546cc0
mov dword [ebp - 0x448], 0
xor eax, eax
mov word [ebp - 0x894], ax
push 0x206
push 0
lea ecx, [ebp - 0x892]
push ecx
call fcn.005b4de0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x444], dx
push 0x206
push 0
lea eax, [ebp - 0x442]
push eax
call fcn.005b4de0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0xeac], cx
push 0x206
push 0
lea edx, [ebp - 0xeaa]
push edx
call fcn.005b4de0
add esp, 0xc
xor eax, eax
mov word [ebp - 0xca4], ax
push 0x206
push 0
lea ecx, [ebp - 0xca2]
push ecx
call fcn.005b4de0
add esp, 0xc
lea ecx, [ebp + 0x24]
call fcn.0040e5d0
push eax
lea ecx, [ebp - 0x480]
call fcn.0040e5d0
push eax
push str._s_s.url
lea edx, [ebp - 0xca4]
push edx
call fcn.005b50ec
add esp, 0x10
lea eax, [ebp - 0xca4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x5469b1
lea ecx, [ebp - 0xca4]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor edx, edx
mov word [ebp - 0x10d4], dx
push 0x206
push 0
lea eax, [ebp - 0x10d2]
push eax
call fcn.005b4de0
add esp, 0xc
push 0
push 0x26
lea ecx, [ebp - 0x10d4]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x655990
lea edx, [ebp - 0x10d4]
push edx
call fcn.005b4d90
add esp, 8
lea eax, [ebp - 0xca4]
push eax
lea ecx, [ebp + 0x40]
call fcn.0040e5d0
push eax
push 0x6559d0
push 0x65596c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0xca4]
push ecx
lea ecx, [ebp - 0x464]
call fcn.0040e5d0
push eax
push str.IconFile
push 0x6559ec
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea edx, [ebp - 0xca4]
push edx
push 0x655a10
push 0x655a14
push 0x655a24
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea eax, [ebp - 0xca4]
push eax
push 0x655a48
push 0x655a4c
push 0x655a5c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0xca4]
push ecx
push 0x655a80
push 0x655a84
push str.InternetShortcut
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
xor edx, edx
mov word [ebp - 0x21c], dx
push 0x206
push 0
lea eax, [ebp - 0x21a]
push eax
call fcn.005b4de0
add esp, 0xc
push 0
push 0x24
lea ecx, [ebp - 0x21c]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x546ad8
push 0x655abc
lea edx, [ebp - 0x21c]
push edx
call fcn.005b4d90
add esp, 8
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x546b76
lea ecx, [ebp - 0x21c]
push ecx
push str.szExplorer_Failed__s____
call fcn.004560b0
add esp, 8
lea edx, [ebp - 0xca4]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xec8]
call fcn.0040e530
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x464]
call fcn.0040e530
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x238]
call fcn.0040e530
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x480]
call fcn.0040e530
mov byte [ebp - 4], 1
lea ecx, [ebp + 8]
call fcn.0040e530
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x24]
call fcn.0040e530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x40]
call fcn.0040e530
jmp 0x546cc0
xor eax, eax
mov word [ebp - 0x68c], ax
push 0x206
push 0
lea ecx, [ebp - 0x68a]
push ecx
call fcn.005b4de0
add esp, 0xc
push 0
push 0x19
lea edx, [ebp - 0x68c]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x546c5d
lea eax, [ebp - 0x68c]
push eax
lea ecx, [ebp - 0x10f0]
call fcn.0040e4b0
mov byte [ebp - 4], 8
push 0x655b0c
lea ecx, [ebp - 0x10f0]
call fcn.0040e5b0
lea ecx, [ebp + 0x24]
push ecx
lea ecx, [ebp - 0x10f0]
call fcn.0040e590
push 0x655b10
lea ecx, [ebp - 0x10f0]
call fcn.0040e5b0
lea ecx, [ebp - 0x10f0]
call fcn.0040e5d0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x546c1d
lea ecx, [ebp - 0x10f0]
call fcn.0040e5d0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x464]
call fcn.0040e5d0
push eax
push 0
lea edx, [ebp - 0xca4]
push edx
lea ecx, [ebp - 0x10f0]
call fcn.0040e5d0
push eax
call fcn.0043d1e0
add esp, 0x20
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x10f0]
call fcn.0040e530
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xec8]
call fcn.0040e530
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x464]
call fcn.0040e530
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x238]
call fcn.0040e530
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x480]
call fcn.0040e530
mov byte [ebp - 4], 1
lea ecx, [ebp + 8]
call fcn.0040e530
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x24]
call fcn.0040e530
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x40]
call fcn.0040e530
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b4b30
mov esp, ebp
pop ebp
ret 0x54