Function at 0x409345
Capabilities:
Delete directory
Delete file
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x66c]
sub esp, 0x6ec
mov eax, dword [0x478a78]
xor eax, ebp
mov dword [ebp + 0x668], eax
push esi
lea eax, [ebp - 0x28]
push eax
push 0x10
xor esi, esi
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x409670
xor eax, eax
push 0x206
mov word [ebp + 0x258], ax
lea eax, [ebp + 0x25a]
push esi
push eax
call fcn.0043d840
add esp, 0xc
lea eax, [ebp + 0x258]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x409670
push ebx
push edi
push str..lnk
push 0x461224
mov edi, 0x460520
push edi
lea eax, [ebp + 0x258]
push eax
lea ecx, [ebp - 0x48]
call fcn.004033f2
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp - 4]
push eax
call fcn.00403514
add esp, 0xc
xor ebx, ebx
push esi
inc ebx
push ebx
lea ecx, [ebp - 0x80]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 0x64]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 0x48]
call fcn.00402515
cmp dword [ebp + 0x14], 8
mov eax, dword [ebp]
jae 0x409423
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
push 0x206
mov word [ebp + 0x460], ax
lea eax, [ebp + 0x462]
push esi
push eax
call fcn.0043d840
add esp, 0xc
lea eax, [ebp - 0x2c]
push eax
push 2
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x409664
lea eax, [ebp + 0x460]
push eax
push dword [ebp - 0x2c]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x409664
push 0x461224
push edi
lea eax, [ebp + 0x460]
push eax
lea ecx, [ebp - 0x64]
call fcn.004033f2
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.00403514
add esp, 0xc
push esi
push ebx
lea ecx, [ebp - 0x48]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 0x64]
call fcn.00402515
push str..lnk
push 0x461224
push edi
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.00403514
add esp, 0xc
push esi
push ebx
lea ecx, [ebp - 0x48]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 0x64]
call fcn.00402515
cmp dword [ebp + 0x4c], 8
mov eax, dword [ebp + 0x38]
jae 0x40950d
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push str..lnk
push 0x461214
push edi
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00403514
add esp, 0xc
push 0xffffffffffffffff
push esi
push eax
lea ecx, [ebp + 0x34]
call fcn.00402de2
push esi
push ebx
lea ecx, [ebp - 0x48]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 0x64]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 0x80]
call fcn.00402515
cmp dword [ebp + 0x4c], 8
mov eax, dword [ebp + 0x38]
jae 0x40957f
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp + 0x1c]
jae 0x409592
lea eax, [ebp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea eax, [ebp - 0x24]
push eax
push 0xb
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x409650
xor eax, eax
push 0x206
mov word [ebp + 0x50], ax
lea eax, [ebp + 0x52]
push esi
push eax
call fcn.0043d840
add esp, 0xc
lea eax, [ebp + 0x50]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x409650
push str..lnk
push 0x461224
push edi
lea eax, [ebp + 0x50]
push eax
lea ecx, [ebp - 0x80]
call fcn.004033f2
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00403514
add esp, 0xc
push esi
push ebx
lea ecx, [ebp - 0x48]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 0x64]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 0x80]
call fcn.00402515
cmp dword [ebp - 8], 8
mov eax, dword [ebp - 0x1c]
jae 0x40963f
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
push ebx
lea ecx, [ebp - 0x20]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp + 0x34]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp + 0x18]
call fcn.00402515
push esi
push ebx
lea ecx, [ebp - 4]
call fcn.00402515
pop edi
pop ebx
mov ecx, dword [ebp + 0x668]
xor ecx, ebp
pop esi
call fcn.0043dae6
add ebp, 0x66c
leave
ret