Function at 0x416e08
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get common file path
Set current directory
Set file attributes

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffcb8
mov esi, 0x5c
mov edi, eax
mov ebp, edx
push esi
push edi
xor eax, eax
mov edi, ebp
or ecx, 0xffffffff
lea esi, [esp + 8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push esp
call fcn.004998dc
pop ecx
mov ebx, eax
push esi
lea eax, [esp + 4]
push eax
call fcn.004999d5
add esp, 8
cmp ebx, 4
jl 0x416e62
test eax, eax
jne 0x416e69
xor eax, eax
jmp 0x417065
test eax, eax
je 0x416e88
mov edx, esp
sub eax, edx
inc eax
cmp ebx, eax
je 0x416e88
push 0x4af19c
lea ecx, [esp + 4]
push ecx
call fcn.004998a0
add esp, 8
lea eax, [esp + 0x104]
push eax
push 0x104
call sub.KERNEL32.DLL_GetCurrentDirectoryA
push 0x4af19e
lea edx, [esp + 0x108]
push edx
call fcn.004998a0
add esp, 8
mov eax, esp
lea edx, [esp + 0x104]
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x416ef8
test cl, cl
je 0x416ed4
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x416ef8
add eax, 2
add edx, 2
test cl, cl
jne 0x416eb8
jne 0x416ef8
push 0x4af1a0
lea eax, [esp + 0x108]
push eax
call fcn.004998a0
add esp, 8
lea edx, [esp + 0x104]
push edx
call sub.KERNEL32.DLL_SetCurrentDirectoryA
push edi
xor eax, eax
lea edi, [esp + 4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [esp + 0x108]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
push 0x4af1a3
lea eax, [esp + 0x108]
push eax
call fcn.004998a0
add esp, 8
lea edx, [esp + 0x208]
push edx
lea ecx, [esp + 0x108]
push ecx
call sub.KERNEL32.DLL_FindFirstFileA
mov esi, eax
mov bl, 1
cmp esi, 0xffffffff
je 0x417043
mov eax, 1
movsx edx, byte [esp + 0x234]
cmp edx, 0x2e
je 0x417027
push esi
push edi
xor eax, eax
lea edi, [esp + 8]
or ecx, 0xffffffff
lea esi, [esp + 0x10c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
lea eax, [esp + 0x234]
push eax
lea edx, [esp + 0x108]
push edx
call fcn.004998a0
add esp, 8
test byte [esp + 0x208], 0x10
je 0x416ff5
push 0x4af1a7
lea ecx, [esp + 0x108]
push ecx
call fcn.004998a0
add esp, 8
test bl, bl
je 0x416fe8
lea edx, [esp + 0x104]
mov eax, edi
call fcn.00416e08
test eax, eax
jne 0x416fec
xor ecx, ecx
jmp 0x416ff1
mov ecx, 1
mov ebx, ecx
jmp 0x417027
push 0x80
lea eax, [esp + 0x108]
push eax
call sub.KERNEL32.DLL_SetFileAttributesA
test bl, bl
je 0x41701c
lea edx, [esp + 0x104]
push edx
call sub.KERNEL32.DLL_DeleteFileA
test eax, eax
jne 0x417020
xor ecx, ecx
jmp 0x417025
mov ecx, 1
mov ebx, ecx
lea eax, [esp + 0x208]
push eax
push esi
call sub.KERNEL32.DLL_FindNextFileA
test eax, eax
jne 0x416f5e
push esi
call sub.KERNEL32.DLL_FindClose
test bl, bl
je 0x417063
push 0x80
push ebp
call sub.KERNEL32.DLL_SetFileAttributesA
push ebp
call sub.KERNEL32.DLL_RemoveDirectoryA
test eax, eax
je 0x417063
mov eax, 1
jmp 0x417065
xor eax, eax
add esp, 0x348
pop ebp
pop edi
pop esi
pop ebx
ret