Function at 0x49f696
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x52de80]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x258]
push ebx
push esi
push eax
xor ebx, ebx
call fcn.00425b11
mov esi, dword [ebp - 0x258]
cmp dword [esi - 0xc], ebx
je 0x49f8eb
push 0x50c830
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x278]
push eax
call fcn.00442a58
add esp, 0xc
lea ecx, [ebp - 0x254]
push ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ecx, dword [ebp - 0x278]
add ecx, 0xfffffff0
mov dword [ebp - 0x25c], eax
call fcn.004209ab
cmp dword [ebp - 0x25c], 0xffffffff
jne 0x49f718
inc ebx
jmp 0x49f8e4
push edi
test byte [ebp - 0x254], 0x10
lea eax, [ebp - 0x228]
je 0x49f7c4
push 0x50c834
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x49f8b9
push 0x50c838
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x49f8b9
push 0x50c8cc
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x26c]
push eax
call fcn.00442a58
add esp, 0xc
push eax
lea eax, [ebp - 0x264]
push eax
call fcn.00442a58
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [eax]
call fcn.0049f696
mov ecx, dword [ebp - 0x264]
add esp, 0x18
add ecx, 0xfffffff0
mov edi, eax
call fcn.004209ab
mov ecx, dword [ebp - 0x26c]
add ecx, 0xfffffff0
call fcn.004209ab
test edi, edi
je 0x49f8d7
jmp 0x49f8b9
push eax
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x274]
push eax
call fcn.00442a58
add esp, 0xc
push 0x80
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, dword [ebp - 0x274]
lea ecx, [ecx - 0x10]
call fcn.004209ab
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.00442a58
add esp, 0xc
push dword [eax]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x268]
mov edi, eax
add ecx, 0xfffffff0
call fcn.004209ab
test edi, edi
jne 0x49f8b9
call fcn.00420e9a
push eax
lea ecx, [ebp - 0x260]
call fcn.00423ea0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [ebp - 0x228]
push eax
push esi
lea eax, [ebp - 0x260]
push str._s_s_d__x
push eax
call fcn.0042448a
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x270]
push eax
call fcn.00442a58
mov edi, dword [ebp - 0x260]
push edi
push dword [eax]
call fcn.004c0abc
mov ecx, dword [ebp - 0x270]
add esp, 0x28
add ecx, 0xfffffff0
mov ebx, eax
call fcn.004209ab
test ebx, ebx
jne 0x49f8af
push 4
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x49f8b1
xor ebx, ebx
lea ecx, [edi - 0x10]
call fcn.004209ab
lea eax, [ebp - 0x254]
push eax
push dword [ebp - 0x25c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x49f719
xor ebx, ebx
inc ebx
push dword [ebp - 0x25c]
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea ecx, [esi - 0x10]
call fcn.004209ab
mov ecx, dword [ebp - 4]
mov eax, ebx
pop esi
xor ecx, ebp
pop ebx
call fcn.004bc11d
mov esp, ebp
pop ebp
ret