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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x264
mov eax, dword [0x4516e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, ecx
push 2
push 0x448e0c
mov ebx, dword [esi + 0x10]
mov dword [ebp - 0x25c], ebx
call fcn.0041c560
cmp dword [esi + 0x14], 8
jb 0x41aa27
mov eax, dword [esi]
jmp 0x41aa29
mov eax, esi
lea ecx, [ebp - 0x258]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
mov dword [ebp - 0x264], edi
cmp edi, 0xffffffff
je 0x41abfd
jmp 0x41aa50
cmp word [ebp - 0x22c], 0x2e
jne 0x41aa7e
mov ax, word [ebp - 0x22a]
test ax, ax
je 0x41abe0
cmp ax, 0x2e
jne 0x41aa7e
cmp word [ebp - 0x228], 0
je 0x41abe0
mov ecx, dword [esi + 0x10]
inc ebx
cmp ebx, ecx
ja 0x41aaa9
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], ebx
jb 0x41aa9c
mov eax, dword [esi]
xor ecx, ecx
mov word [eax + ebx*2], cx
jmp 0x41ab66
mov eax, esi
xor ecx, ecx
mov word [eax + ebx*2], cx
jmp 0x41ab66
or eax, 0xffffffff
sub ebx, ecx
sub eax, ecx
cmp eax, ebx
jbe 0x41ac4d
test ebx, ebx
je 0x41ab66
lea edx, [ecx + ebx]
mov dword [ebp - 0x260], edx
cmp edx, 0x7ffffffe
ja 0x41ac4d
mov eax, dword [esi + 0x14]
cmp eax, edx
jae 0x41ab07
push ecx
push edx
mov ecx, esi
call fcn.00404716
mov edx, dword [ebp - 0x260]
test edx, edx
je 0x41ab66
mov ecx, dword [esi + 0x10]
cmp ebx, 1
jne 0x41ab2f
cmp dword [esi + 0x14], 8
jb 0x41ab25
mov eax, dword [esi]
xor ebx, ebx
mov word [eax + ecx*2], bx
jmp 0x41ab51
test edx, edx
jne 0x41aaef
mov dword [esi + 0x10], edx
cmp eax, 8
jb 0x41ab1c
mov eax, dword [esi]
xor ecx, ecx
mov word [eax], cx
jmp 0x41ab66
mov eax, esi
xor ecx, ecx
mov word [eax], cx
jmp 0x41ab66
mov eax, esi
xor ebx, ebx
mov word [eax + ecx*2], bx
jmp 0x41ab51
cmp dword [esi + 0x14], 8
jb 0x41ab39
mov eax, dword [esi]
jmp 0x41ab3b
mov eax, esi
lea edi, [eax + ecx*2]
xor eax, eax
mov ecx, ebx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [ebp - 0x264]
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], edx
jb 0x41ab5e
mov eax, dword [esi]
jmp 0x41ab60
mov eax, esi
xor ecx, ecx
mov word [eax + edx*2], cx
cmp word [ebp - 0x22c], 0
jne 0x41ab74
xor ecx, ecx
jmp 0x41ab8f
lea ecx, [ebp - 0x22c]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ab80
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x22c]
mov ecx, esi
push eax
call fcn.0041c560
mov eax, dword [ebp - 0x258]
test al, 1
je 0x41abc1
push 0x80
mov ecx, esi
call fcn.004090be
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [ebp - 0x258]
mov ecx, esi
test al, 0x10
je 0x41abce
call fcn.0041a9f0
jmp 0x41abda
call fcn.004090be
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebx, dword [ebp - 0x25c]
lea eax, [ebp - 0x258]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x41aa50
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esi + 0x10]
cmp ebx, eax
ja 0x41ac21
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], ebx
jb 0x41ac17
mov eax, dword [esi]
xor ecx, ecx
mov word [eax + ebx*2], cx
jmp 0x41ac2d
mov eax, esi
xor ecx, ecx
mov word [eax + ebx*2], cx
jmp 0x41ac2d
push 0
sub ebx, eax
mov ecx, esi
push ebx
call fcn.004091c7
cmp dword [esi + 0x14], 8
jb 0x41ac35
mov esi, dword [esi]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041e635
mov esp, ebp
pop ebp
ret
push str.string_too_long
call fcn.0041da4c
int3