Function at 0x41c960
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45e2c0
push 0x448a88
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x89c
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov edi, edx
mov eax, ecx
mov dword [ebp - 0x28], eax
test eax, eax
je 0x41ca5d
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
lea esi, [ebx - 2]
cmp esi, 0x102
ja 0x41ca5d
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + ebx*2 - 2]
cmp eax, 0x5c
je 0x41c9c2
cmp eax, 0x2f
jne 0x41c9c3
dec ebx
xor eax, eax
mov word [ebp - 0x498], ax
push 0x21a
push eax
lea eax, [ebp - 0x496]
push eax
call fcn.00434de0
add esp, 0xc
lea esi, [ebx + ebx]
mov dword [ebp - 0x24], esi
push esi
mov ebx, dword [ebp - 0x28]
push ebx
lea eax, [ebp - 0x498]
push eax
call fcn.00434e70
add esp, 0xc
lea ecx, [ebp - 0x498]
add ecx, 0xfffffffe
add ecx, esi
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x41ca06
mov eax, dword [str..]
mov dword [ecx], eax
mov eax, dword [0x458564]
mov dword [ecx + 4], eax
mov ax, word [0x458568]
mov word [ecx + 8], ax
mov esi, 1
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 4], 0
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x498]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x1c], eax
cmp eax, 0xffffffff
jne 0x41ca70
mov dword [ebp - 4], eax
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x45549c
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x41cb3d
push 0x4554a0
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x41cb3d
xor eax, eax
mov word [ebp - 0x8a8], ax
push 0x40e
push eax
lea eax, [ebp - 0x8a6]
push eax
call fcn.00434de0
add esp, 0xc
push dword [ebp - 0x24]
push ebx
lea eax, [ebp - 0x8a8]
push eax
call fcn.00434e70
add esp, 0xc
lea eax, [ebp - 0x24c]
push eax
push 0x45856c
mov eax, dword [ebp - 0x24]
lea eax, [ebp + eax - 0x8a8]
push eax
call fcn.0041c1a0
add esp, 0xc
mov eax, dword [ebp - 0x278]
test al, 0x10
je 0x41cb0d
mov edx, edi
lea ecx, [ebp - 0x8a8]
call fcn.0041c960
jmp 0x41cb38
test edi, edi
je 0x41cb16
cmp edi, 1
jne 0x41cb3d
test al, 1
je 0x41cb2b
and eax, 0xfffffffe
push eax
lea eax, [ebp - 0x8a8]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x8a8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, eax
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x41ca70
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x1c], 0xffffffff
test edi, edi
je 0x41cb6e
cmp edi, 2
jne 0x41cbc1
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffe
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov esi, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret