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

Disassembly:
sub esp, 0x144
push ebx
mov ebx, dword [esp + 0x14c]
push ebp
mov ebp, 1
test ebx, ebx
jne 0x401453
pop ebp
xor eax, eax
pop ebx
add esp, 0x144
ret
push esi
push edi
mov ecx, 0x50
xor eax, eax
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
mov edi, str..
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x14]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x401686
cmp dword [esp + 0x14], 0x10
je 0x401522
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
xor ebp, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea esi, [esp + 0x40]
mov edi, esi
push 1
lea edx, [ecx + ebx - 3]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00401cd0
push 0x5c
push ebx
call fcn.00402ef8
mov byte [eax], 0
mov edi, str..
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4015d6
mov edi, 0x40a0e0
lea esi, [esp + 0x40]
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x401553
test al, al
je 0x40154f
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x401553
add esi, 2
add edi, 2
test al, al
jne 0x40152b
xor eax, eax
jmp 0x401558
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4015d6
mov edi, 0x40a0dc
lea esi, [esp + 0x40]
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x40158d
test al, al
je 0x401589
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x40158d
add esi, 2
add edi, 2
test al, al
jne 0x401565
xor eax, eax
jmp 0x401592
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4015d6
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x40]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, esi
push ebx
lea edx, [ecx + ebx - 3]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00401430
add esp, 4
test eax, eax
jne 0x4015d6
xor ebp, ebp
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4014a3
test ebp, ebp
je 0x401686
push 0x5c
push ebx
call fcn.00402ef8
add esp, 8
mov byte [eax], 0
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0x80
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
je 0x40162b
push 0
push ebx
jmp 0x401654
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
lea ecx, [esp + 0x14]
push 0
push ecx
push 0x400
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, dword [esp + 0x10]
push 1
push edx
call fcn.00401cd0
mov edi, str..
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5c
push ebx
call fcn.00402ef8
push 0x5c
push ebx
mov byte [eax], 0
call fcn.00402ef8
mov byte [eax], 0
mov edi, str..
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret