Function at 0x667b8
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x56
push 0
push 0
dec ecx
jne 0x667c0
push ebx
push esi
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
call fcn.00014684
xor eax, eax
push ebp
push WTSEnumerateSessionsA
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
inc dword [eax - 4]
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.0001bae0
lea eax, [ebp - 0x25c]
xor ecx, ecx
mov edx, 0x250
call fcn.000129f0
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x260]
mov ecx, 0x66c04
mov edx, dword [ebp - 0xc]
call fcn.00014330
mov eax, dword [ebp - 0x260]
call fcn.000142b4
push eax
call sub.kernel32.dll_FindFirstFileW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x66a79
test byte [ebp - 0x25c], 0x10
jne 0x66960
mov eax, dword [ebp + 8]
cmp byte [eax + 8], 0
jne 0x6689f
lea eax, [ebp - 0x26c]
lea edx, [ebp - 0x230]
mov ecx, 0x104
call fcn.00014224
mov eax, dword [ebp - 0x26c]
lea edx, [ebp - 0x268]
call fcn.0001bdd8
mov eax, dword [ebp - 0x268]
lea edx, [ebp - 0x264]
call fcn.0001c800
mov eax, dword [ebp - 0x264]
mov edx, 0x66c10
call fcn.000143dc
je 0x66a64
lea eax, [ebp - 0x270]
lea edx, [ebp - 0x230]
mov ecx, 0x104
call fcn.00014224
mov ecx, dword [ebp - 0x270]
lea eax, [ebp - 8]
mov edx, dword [ebp - 0xc]
call fcn.00014330
push 0
mov eax, dword [ebp - 8]
call fcn.000142b4
mov esi, eax
push esi
call sub.kernel32.dll_SetFileAttributesW
push esi
call sub.kernel32.dll_DeleteFileW
test eax, eax
jne 0x66a64
call sub.kernel32.dll_GetLastError_1
mov esi, eax
mov eax, dword [ebp + 8]
inc dword [eax - 8]
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0x32
ja ImageList_BeginDrag
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x66a64
lea eax, [ebp - 0x278]
mov ecx, dword [ebp - 8]
mov edx, 0x66c20
call fcn.00014330
mov edx, dword [ebp - 0x278]
lea ecx, [ebp - 0x274]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.000382b0
lea edx, [ebp - 0x280]
mov eax, esi
call fcn.00018f2c
mov edx, dword [ebp - 0x280]
lea ecx, [ebp - 0x27c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.00038234
jmp 0x66a64
lea eax, [ebp - 8]
lea edx, [ebp - 0x230]
mov ecx, 0x104
call fcn.00014224
mov eax, dword [ebp - 8]
mov edx, 0x66c40
call fcn.000143dc
je 0x66a64
mov eax, dword [ebp - 8]
mov edx, 0x66c48
call fcn.000143dc
je ImageList_Add
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0x3e8
jae ImageList_GetImageCount
lea eax, [ebp - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
call fcn.00014330
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 8]
call fcn.000667b8
pop ecx
mov eax, dword [ebp - 8]
call fcn.000142b4
push eax
call sub.kernel32.dll_RemoveDirectoryW
test eax, eax
jne ImageList_Create
call sub.kernel32.dll_GetLastError_1
mov esi, eax
cmp esi, 2
je 0x66a64
mov eax, dword [ebp + 8]
inc dword [eax - 8]
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0x32
ja 0x66a4c
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x66a4c
lea eax, [ebp - 0x288]
mov ecx, dword [ebp - 8]
mov edx, 0x66c54
call fcn.00014330
mov edx, dword [ebp - 0x288]
lea ecx, [ebp - 0x284]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.000382b0
lea edx, [ebp - 0x290]
mov eax, esi
call fcn.00018f2c
mov edx, dword [ebp - 0x290]
lea ecx, [ebp - 0x28c]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.00038234
push 0x10
mov eax, dword [ebp - 8]
call fcn.000142b4
mov esi, eax
push esi
call sub.kernel32.dll_SetFileAttributesW
push esi
call sub.kernel32.dll_RemoveDirectoryW
lea eax, [ebp - 0x25c]
push eax
push ebx
call sub.kernel32.dll_FindNextFileW
test eax, eax
jne ImageList_Read
cmp ebx, 0xffffffff
je 0x66a84
push ebx
call sub.kernel32.dll_FindClose_1
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.000140c0
lea edx, [ebp - 0x298]
mov eax, dword [ebp - 8]
call fcn.0001bae0
mov eax, dword [ebp - 0x298]
lea edx, [ebp - 0x294]
call fcn.0001c800
mov eax, dword [ebp - 0x294]
push eax
lea edx, [ebp - 0x2a0]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
call fcn.0001bae0
mov eax, dword [ebp - 0x2a0]
lea edx, [ebp - 0x29c]
call fcn.0001c800
mov edx, dword [ebp - 0x29c]
pop eax
call fcn.000143dc
jne 0x66af2
mov eax, dword [ebp + 8]
cmp byte [eax - 0x11], 0
je 0x66b76
mov eax, dword [ebp - 8]
call fcn.000142b4
push eax
call sub.kernel32.dll_RemoveDirectoryW
test eax, eax
jne 0x66b76
call sub.kernel32.dll_GetLastError_1
mov esi, eax
mov eax, dword [ebp + 8]
inc dword [eax - 8]
cmp esi, 2
je 0x66b76
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0x32
ja 0x66b76
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x66b76
lea eax, [ebp - 0x2a8]
mov ecx, dword [ebp - 8]
mov edx, 0x66c54
call fcn.00014330
mov edx, dword [ebp - 0x2a8]
lea ecx, [ebp - 0x2a4]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.000382b0
lea edx, [ebp - 0x2b0]
mov eax, esi
call fcn.00018f2c
mov edx, dword [ebp - 0x2b0]
lea ecx, [ebp - 0x2ac]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
call fcn.00038234
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x66bf8
lea eax, [ebp - 0x2b0]
mov edx, 2
call fcn.00013a78
lea eax, [ebp - 0x2a8]
mov edx, 6
call fcn.0001409c
lea eax, [ebp - 0x290]
mov edx, 2
call fcn.00013a78
lea eax, [ebp - 0x288]
mov edx, 2
call fcn.0001409c
lea eax, [ebp - 0x280]
mov edx, 2
call fcn.00013a78
lea eax, [ebp - 0x278]
mov edx, 7
call fcn.0001409c
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.0001409c
ret