Function at 0x40b616
Capabilities:
Enumerate files on windows
Set current directory

Disassembly:
mov eax, 0x417514
call fcn.0040ef50
sub esp, 0x5a4
push ebx
push esi
push edi
mov esi, ecx
push str.CMainFrame::DeleteShortcuts___n
mov dword [ebp - 0x1c], esi
call fcn.004024eb
pop ecx
push str.CMainFrame::DeleteShortcuts___call_SetCurrentDirectory___n
call fcn.004024eb
pop ecx
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x40b664
mov dword [esi + 0x70], 7
mov dword [esi + 0x74], 0x60
jmp 0x40b84f
push str.CMainFrame::DeleteShortcuts___call_FindFirstFile___n
call fcn.004024eb
pop ecx
lea eax, [ebp - 0x164]
push eax
push 0x41dad8
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x18], eax
jne 0x40b6a8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xa8], eax
mov dword [esi + 0x70], 7
mov dword [esi + 0x74], 0x61
jmp 0x40b84f
push 1
pop ebx
push str.CMainFrame::DeleteShortcuts___call_CoInitialize___n
mov dword [ebp - 0x14], ebx
call fcn.004024eb
pop ecx
xor edi, edi
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
push str.CMainFrame::DeleteShortcuts___call_CoCreateInstance___n
call fcn.004024eb
pop ecx
lea eax, [ebp - 0x10]
push eax
push 0x418378
push ebx
push edi
push 0x418288
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, edi
jge 0x40b711
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.CMainFrame::DeleteShortcuts___Error_8_n
mov dword [esi + 0xa8], eax
mov dword [esi + 0x70], 7
mov dword [esi + 0x74], 0x62
call fcn.004024eb
pop ecx
jmp 0x40b84f
push str.CMainFrame::DeleteShortcuts___call_QueryInterface___n
call fcn.004024eb
mov eax, dword [ebp - 0x10]
pop ecx
lea edx, [ebp - 0x20]
mov ecx, dword [eax]
push edx
push 0x418678
push eax
call dword [ecx]
cmp eax, edi
jge 0x40b739
mov dword [ebp - 0x14], edi
jmp 0x40b82a
lea ecx, [ebp + 0xc]
call fcn.004013e3
mov dword [ebp - 4], edi
mov esi, 0x104
test byte [ebp - 0x164], 0x10
jne 0x40b7f4
lea eax, [ebp - 0x138]
lea ecx, [ebp + 0xc]
push eax
call fcn.00401680
lea eax, [ebp - 0x5b0]
push esi
push eax
push 0xffffffffffffffff
lea ecx, [ebp + 0xc]
call fcn.00401e04
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push str.CMainFrame::DeleteShortcuts___call_ppf__Load___n
call fcn.004024eb
mov eax, dword [ebp - 0x20]
pop ecx
lea edx, [ebp - 0x5b0]
push ebx
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
cmp eax, edi
jl 0x40b7f4
push str.CMainFrame::DeleteShortcuts___call_psl__GetPath___n
call fcn.004024eb
mov eax, dword [ebp - 0x10]
pop ecx
lea edx, [ebp - 0x3a8]
push ebx
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0x268]
push esi
push edx
push eax
call dword [ecx + 0xc]
cmp eax, edi
jl 0x40b7f4
push dword [ebp + 8]
lea eax, [ebp - 0x268]
push eax
call fcn.00415e10
pop ecx
test eax, eax
pop ecx
jne 0x40b7f4
push ecx
lea eax, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.004013ef
mov ecx, dword [ebp - 0x1c]
call fcn.00405f83
lea eax, [ebp - 0x164]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
je 0x40b749
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00401563
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x14], edi
jne 0x40b853
mov dword [esi + 0x70], 7
mov dword [esi + 0x74], 0x63
xor eax, eax
jmp 0x40b860
push str.CMainFrame::DeleteShortcuts___Success_n
call fcn.004024eb
pop ecx
mov eax, ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 8