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

Disassembly:
push ebp
lea ebp, [esp - 0x1d4]
sub esp, 0x254
mov eax, dword [0x46a470]
xor eax, ebp
mov dword [ebp + 0x1d0], eax
push ebx
mov ebx, dword [ebp + 0x1dc]
push edi
mov edi, 0x103
push edi
lea eax, [ebp + 0xcd]
push 0
push eax
mov dword [ebp - 0x7c], ebx
mov byte [ebp + 0xcc], 0
call fcn.00429d40
and dword [ebp - 0x80], 0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 0x10
jne 0x41d8fa
push 0x80
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
neg eax
sbb eax, eax
neg eax
jmp 0x41daac
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
call esi
test eax, eax
je 0x41da85
push ebx
call esi
cmp eax, 0xff
jbe 0x41d923
push 0x6f
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x41da85
push edi
lea eax, [ebp + 0xcc]
push ebx
push eax
call fcn.0042ae70
lea eax, [ebp + 0xcc]
push 0x5c
push eax
call fcn.004313e0
mov dword [ebp - 0x78], eax
add esp, 0x14
lea eax, [ebp + 0xcc]
push eax
call esi
lea eax, [ebp + eax + 0xcc]
cmp dword [ebp - 0x78], eax
je 0x41d96d
lea eax, [ebp + 0xcc]
push 0x45d730
push eax
call fcn.0040f056
pop ecx
pop ecx
lea eax, [ebp + 0xcc]
push 0x45e9f8
push eax
call fcn.0040f056
pop ecx
pop ecx
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x78], eax
cmp eax, 0xffffffff
jne 0x41d9a1
jmp 0x41da85
mov ebx, dword [ebp - 0x7c]
push edi
lea eax, [ebp + 0xcc]
push ebx
push eax
call fcn.0042ae70
add esp, 0xc
lea eax, [ebp - 0x48]
push eax
call esi
mov ebx, eax
lea eax, [ebp + 0xcc]
push eax
call esi
add ebx, eax
cmp ebx, edi
ja 0x41d9ed
lea eax, [ebp + 0xcc]
push 0x45d730
push eax
call fcn.0040f056
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0xcc]
push eax
call fcn.0040f056
add esp, 0x10
test byte [ebp - 0x74], 0x10
je 0x41da23
cmp byte [ebp - 0x48], 0x2e
je 0x41da4b
cmp dword [ebp + 0x1e0], 0
je 0x41da4b
push dword [ebp + 0x1e4]
lea eax, [ebp + 0xcc]
push dword [ebp + 0x1e0]
push eax
call fcn.0041d889
add esp, 0xc
test eax, eax
je 0x41da85
jmp 0x41da4b
push 0x80
lea eax, [ebp + 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
cmp dword [ebp + 0x1e4], 0
jne 0x41da4b
lea eax, [ebp + 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x41da6e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x41da89
mov dword [ebp - 0x80], 1
cmp dword [ebp - 0x80], 0
je 0x41d99e
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
jne 0x41da94
xor eax, eax
jmp 0x41daab
push dword [ebp - 0x78]
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x41da85
push 0x80
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
pop esi
mov ecx, dword [ebp + 0x1d0]
pop edi
xor ecx, ebp
pop ebx
call fcn.00429649
add ebp, 0x1d4
leave
ret