Function at 0x5620f0
Capabilities:
Check if file exists
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
mov eax, dword [0x6eb874]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x418], ecx
push 0x208
push 0
lea eax, [ebp - 0x20c]
push eax
call fcn.0063a460
add esp, 0xc
push 0x208
push 0
lea ecx, [ebp - 0x414]
push ecx
call fcn.0063a460
add esp, 0xc
mov dword [ebp - 0x43c], 0x104
lea edx, [ebp - 0x414]
push edx
mov eax, dword [ebp - 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x424], eax
cmp dword [ebp - 0x424], 0
jbe 0x5621a6
cmp dword [ebp - 0x424], 0x104
jae 0x5621a6
push str.BirdWallpaperCache
lea ecx, [ebp - 0x414]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x414]
push edx
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push str.BirdWallpaper.exe
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x5621bc
jmp 0x5622a4
lea ecx, [ebp - 0x41c]
call fcn.00413220
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x428]
call fcn.004131e0
lea ecx, [ebp - 0x41c]
push ecx
lea edx, [ebp - 0x428]
push edx
call fcn.00427260
add esp, 8
lea ecx, [ebp - 0x428]
call fcn.00413870
lea ecx, [ebp - 0x41c]
call fcn.0040d3c0
push eax
mov ecx, dword [ebp - 0x418]
add ecx, 0x30
call fcn.0040d3c0
push eax
call fcn.004c0420
add esp, 8
test eax, eax
je 0x56222e
lea ecx, [ebp - 0x41c]
call fcn.00413870
jmp 0x5622a4
lea eax, [ebp - 0x20c]
push eax
call fcn.00603960
add esp, 4
test eax, eax
jne 0x56224e
lea ecx, [ebp - 0x41c]
call fcn.00413870
jmp 0x5622a4
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, dword [ebp - 0x418]
add ecx, 0x28
call fcn.00413a70
mov edx, dword [ebp - 0x418]
cmp dword [edx + 0x3c], 0
je 0x56228c
push 0x7d4
mov eax, dword [ebp - 0x418]
mov ecx, dword [eax + 0x3c]
mov edx, dword [ebp - 0x418]
mov eax, dword [ecx]
mov ecx, dword [edx + 0x3c]
mov edx, dword [eax]
call edx
lea ecx, [ebp - 0x41c]
call fcn.00413870
jmp 0x5623d3
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x5622c2
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x414]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
lea ecx, [ebp - 0x414]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x5622e7
jmp 0x5623d3
lea edx, [ebp - 0x20c]
push edx
mov ecx, dword [ebp - 0x418]
add ecx, 0x28
call fcn.00413a70
call fcn.00431970
mov ecx, eax
call fcn.00540040
mov dword [ebp - 0x42c], eax
cmp dword [ebp - 0x42c], 0
je 0x5623d3
movzx eax, byte [ebp - 0x41d]
push eax
mov ecx, dword [ebp - 0x42c]
push ecx
mov ecx, dword [ebp - 0x418]
add ecx, 0x14
call fcn.004315a0
mov ecx, dword [ebp - 0x418]
add ecx, 0x14
call fcn.00431280
mov dword [ebp - 0x430], eax
mov edx, dword [ebp - 0x418]
push edx
mov eax, dword [ebp - 0x430]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x430]
mov eax, dword [edx]
call eax
mov ecx, dword [ebp - 0x418]
add ecx, 0x14
call fcn.00431280
mov dword [ebp - 0x434], eax
mov ecx, dword [ebp - 0x418]
add ecx, 0x28
call fcn.0040d3c0
push eax
mov ecx, dword [ebp - 0x434]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x434]
mov eax, dword [edx + 0x28]
call eax
mov ecx, dword [ebp - 0x418]
add ecx, 0x14
call fcn.00431280
mov dword [ebp - 0x438], eax
mov ecx, dword [ebp - 0x418]
add ecx, 0x2c
call fcn.0040d3c0
push eax
push 0
mov ecx, dword [ebp - 0x438]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x438]
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006135ac
mov esp, ebp
pop ebp
ret