Function at 0x4696ef
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Get file attributes

Disassembly:
push 0x4f8
mov eax, 0x5b49f4
call fcn.0058f792
mov edi, ecx
mov dword [ebp - 0x504], edi
mov eax, dword [ebp + 0x10]
xor ecx, ecx
mov ebx, dword [ebp + 8]
push 7
mov dword [ebp - 0x4e4], eax
xor eax, eax
pop edx
mov dword [ebp - 0x500], ebx
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x23c], ecx
mov word [ebp - 0x24c], ax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x268], edx
mov dword [ebp - 0x26c], ecx
mov word [ebp - 0x27c], ax
mov esi, ecx
mov dword [ebp - 0x4ec], ecx
mov dword [ebp - 0x4d4], esi
mov dword [ebp - 0x4f0], esi
mov dword [ebp - 0x4e8], ecx
mov dword [ebp - 0x4fc], ecx
mov dword [ebp - 0x4f8], ecx
mov dword [ebp - 0x4f4], ecx
push 0x5d994c
push str.CShortcut::DeleteShortcutW
push 5
mov byte [ebp - 4], 3
mov dword [ebp - 0x4dc], 1
call fcn.00424dad
add esp, 0xc
cmp dword [ebp + 0x18], esi
jne 0x4697d6
test ebx, ebx
jne 0x4697d6
cmp dword [ebp - 0x4e4], esi
jne 0x4697d6
push str.pName_and_pTarget_are_NULL_on_not_DeadLinkOnly._n
mov ebx, str.CShortcut::DeleteShortcutW
push ebx
push 5
call fcn.00424dad
push 0x5d99ec
push ebx
push 5
call fcn.00424dad
add esp, 0x18
xor ebx, ebx
mov dword [ebp - 0x4dc], ebx
jmp 0x469eec
cmp dword [edi + 0x4c], 1
jne 0x4698e4
xor eax, eax
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], eax
mov word [ebp - 0x234], ax
push 0x17
pop ebx
push str.CShortcut::user_all._n
push str.CShortcut::DeleteShortcutW
push 5
mov byte [ebp - 4], 4
call fcn.00424dad
add edi, 4
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x469821
mov eax, dword [edi]
jmp 0x469823
mov eax, edi
push 0x5d98e8
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x469838
push 0x19
jmp 0x469874
cmp dword [edi + 0x14], 8
jb 0x469842
mov eax, dword [edi]
jmp 0x469844
mov eax, edi
push str.Programs
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x469894
cmp dword [edi + 0x14], 8
jb 0x46985f
mov eax, dword [edi]
jmp 0x469861
mov eax, edi
push str.Start_Menu
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x469877
push 0x16
pop ebx
jmp 0x469894
cmp dword [edi + 0x14], 8
jb 0x46987f
mov edi, dword [edi]
push str.Startup
push edi
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
push 0x18
pop eax
cmove ebx, eax
xor edi, edi
lea eax, [ebp - 0x234]
push edi
push ebx
push eax
push edi
call fcn.0044adc9
add esp, 0x10
test eax, eax
je 0x4698ca
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x4f0]
call fcn.00420c43
mov esi, dword [ebp - 0x4f0]
mov dword [ebp - 0x4d4], esi
push edi
push 1
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 3
call fcn.00404970
push 8
pop ebx
jmp 0x469de9
lea eax, [edi + 4]
push eax
lea ecx, [ebp - 0x234]
call fcn.00401bb9
push 8
pop ebx
cmp dword [ebp - 0x220], ebx
lea ecx, [ebp - 0x4f0]
push ecx
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 5
cmovae eax, dword [ebp - 0x234]
mov ecx, edi
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Folders
call fcn.00469f2c
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 1
lea ecx, [ebp - 0x234]
call fcn.00404970
mov esi, dword [ebp - 0x4f0]
jmp 0x469de3
cmp dword [esi + 0x14], ebx
jb 0x469949
mov edi, dword [esi]
jmp 0x46994b
mov edi, esi
xor eax, eax
cmp word [edi], ax
je 0x469959
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00404be0
mov edi, 0x5c4f0c
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00404a83
mov edi, dword [ebp - 0x504]
cmp dword [edi + 0x44], 0
je 0x469a72
lea ecx, [ebp - 0x234]
call fcn.0046d5d4
lea eax, [edi + 0x34]
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], ebx
jb 0x4699a8
mov eax, dword [eax]
push 0x5c
push eax
lea ecx, [ebp - 0x234]
call fcn.0046eb6a
xor eax, eax
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x4d8], eax
call fcn.0046d95f
test eax, eax
je 0x469a63
mov esi, dword [ebp - 0x4d8]
push esi
lea ecx, [ebp - 0x234]
call fcn.0046dbf8
push esi
lea ecx, [ebp - 0x234]
mov edi, eax
call fcn.0046dc88
inc eax
test edi, edi
je 0x469a49
push eax
push edi
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x469a49
xor eax, eax
cmp word [edi], ax
je 0x469a11
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00404a83
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x4fc]
call fcn.00420c43
mov edi, 0x5c4f0c
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00404a83
lea ecx, [ebp - 0x234]
inc esi
call fcn.0046d95f
cmp esi, eax
jb 0x4699d7
mov esi, dword [ebp - 0x4d4]
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 3
call fcn.0046d690
push 0xffffffffffffffff
xor edi, edi
lea eax, [ebp - 0x24c]
push edi
push eax
lea ecx, [ebp - 0x27c]
call fcn.00404b26
push str..lnk
call fcn.0058edd4
pop ecx
push eax
push str..lnk
lea ecx, [ebp - 0x24c]
call fcn.00404a83
cmp dword [ebp - 0x238], ebx
lea eax, [ebp - 0x24c]
cmovae eax, dword [ebp - 0x24c]
push eax
push str.ShortCut_Folder___1_ls__n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
add esp, 0x10
lea ecx, [ebp - 0x4cc]
cmp dword [ebp - 0x238], ebx
lea eax, [ebp - 0x24c]
cmovae eax, dword [ebp - 0x24c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x4d8], eax
cmp eax, 0xffffffff
jne 0x469b12
push str._____Not_found._n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
add esp, 0xc
jmp 0x469dde
xor eax, eax
mov dword [ebp - 0x4d0], edi
mov dword [ebp - 0x4e0], edi
mov dword [ebp - 0x250], 7
mov dword [ebp - 0x254], edi
mov word [ebp - 0x264], ax
mov edi, dword [ebp - 0x4d8]
mov esi, dword [ebp - 0x500]
mov byte [ebp - 4], 7
push 0xffffffffffffffff
xor eax, eax
lea ecx, [ebp - 0x264]
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.00404b26
cmp word [ebp - 0x4a0], 0
jne 0x469b6c
xor eax, eax
jmp 0x469b79
lea eax, [ebp - 0x4a0]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0x264]
call fcn.00404a83
cmp dword [ebp - 0x250], ebx
lea eax, [ebp - 0x264]
cmovae eax, dword [ebp - 0x264]
push eax
push str.FindFilePath___1_ls__n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
add esp, 0x10
test esi, esi
je 0x469bf3
push dword [ebp + 0xc]
push esi
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x469bf3
lea eax, [ebp - 0x4a0]
push esi
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x469bf3
push str.Specified_name_is_not_matched._n
push str.CShortcut::DeleteShortcutW
push 5
call fcn.00424dad
add esp, 0xc
jmp 0x469da7
xor eax, eax
push eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edi, eax
lea eax, [ebp - 0x4d0]
push eax
push 0x60ccb4
push 1
xor eax, eax
push eax
push 0x60cd84
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x469d67
mov eax, dword [ebp - 0x4d0]
lea edx, [ebp - 0x4e0]
push edx
push 0x60cd34
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
js 0x469d67
mov eax, dword [ebp - 0x4e0]
lea edx, [ebp - 0x264]
cmp dword [ebp - 0x250], ebx
push 0
cmovae edx, dword [ebp - 0x264]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
js 0x469d67
lea eax, [ebp - 0x4a0]
push eax
push str._1_ls__Loading._n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
mov eax, dword [ebp - 0x4d0]
lea edx, [ebp - 0x21c]
add esp, 0x10
mov ecx, dword [eax]
push 2
push 0
push 0x105
push edx
push eax
call dword [ecx + 0xc]
lea eax, [ebp - 0x21c]
push eax
push str.The_shell_link_object_is__1_ls_._n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
mov eax, dword [ebp - 0x4e4]
add esp, 0x10
test eax, eax
je 0x469d09
push dword [ebp + 0x14]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x469d09
push dword [ebp - 0x4e4]
lea eax, [ebp - 0x21c]
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x469d67
lea eax, [ebp - 0x21c]
push eax
push str.The_target___1_ls___is_matched._n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x21c]
push eax
push str.szTargetPath____1_ls___n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
add esp, 0x10
cmp dword [ebp + 0x18], 0
je 0x469e13
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x469e13
lea eax, [ebp - 0x4a0]
push eax
push str._1_ls__find_the_target_of_a_Shell_link._n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
add esp, 0x10
xor eax, eax
mov dword [ebp - 0x4dc], eax
mov ecx, dword [ebp - 0x4d0]
test ecx, ecx
je 0x469d7f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor eax, eax
mov dword [ebp - 0x4d0], eax
mov ecx, dword [ebp - 0x4e0]
test ecx, ecx
je 0x469d97
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xor eax, eax
mov dword [ebp - 0x4e0], eax
test edi, edi
js 0x469da1
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edi, dword [ebp - 0x4d8]
lea eax, [ebp - 0x4cc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x469b47
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
mov byte [ebp - 4], 3
push eax
push 1
lea ecx, [ebp - 0x264]
call fcn.00404970
mov esi, dword [ebp - 0x4d4]
push 0x18
pop eax
add esi, eax
mov dword [ebp - 0x4d4], esi
cmp esi, dword [ebp - 0x4ec]
jne 0x469940
mov esi, dword [ebp - 0x4f8]
cmp esi, dword [ebp - 0x4fc]
je 0x469ed6
add esi, 0xffffffe8
cmp dword [esi + 0x14], ebx
jb 0x469e55
mov eax, dword [esi]
jmp 0x469e57
cmp dword [ebp - 0x250], ebx
lea eax, [ebp - 0x264]
cmovae eax, dword [ebp - 0x264]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x469d5f
lea eax, [ebp - 0x4a0]
push eax
push str._1_ls__is_deleted._n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
add esp, 0x10
jmp 0x469d67
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x469ec2
cmp dword [esi + 0x14], ebx
jb 0x469e6c
mov eax, dword [esi]
jmp 0x469e6e
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x469e9b
cmp dword [esi + 0x14], ebx
jb 0x469e82
mov eax, dword [esi]
jmp 0x469e84
mov eax, esi
push eax
push str._1_ls__empty._removed._n
push str.CShortcut::DeleteShortcutW
push 4
call fcn.00424dad
add esp, 0x10
jmp 0x469ec2
cmp dword [esi + 0x14], ebx
jb 0x469ea4
mov edi, dword [esi]
jmp 0x469ea6
mov edi, esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str._1_ls__cannot_be_deleted.__0x_2_lx___n
push str.CShortcut::DeleteShortcutW
push 2
call fcn.00424dad
add esp, 0x14
push 0x18
pop eax
sub esi, eax
lea eax, [esi + 0x18]
cmp eax, dword [ebp - 0x4fc]
jne 0x469e0a
push 0x5d99ec
push str.CShortcut::DeleteShortcutW
push 5
call fcn.00424dad
add esp, 0xc
xor ebx, ebx
lea ecx, [ebp - 0x4fc]
call fcn.0041fac8
lea ecx, [ebp - 0x4f0]
call fcn.0041fac8
push ebx
push 1
lea ecx, [ebp - 0x27c]
call fcn.00404970
push ebx
push 1
lea ecx, [ebp - 0x24c]
call fcn.00404970
mov eax, dword [ebp - 0x4dc]
call fcn.0058f741
ret 0x14