Function at 0x401a40
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
sub esp, 0x344
push ebx
push ebp
mov ebp, dword [esp + 0x350]
lea eax, [esp + 0x14c]
push ebp
push str._s
push eax
call fcn.004021d0
add esp, 0xc
lea ecx, [esp + 0xc]
lea edx, [esp + 0x14c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [esp + 8], ebx
jne 0x401a8e
xor al, al
pop ebp
pop ebx
add esp, 0x344
ret
mov al, byte [esp + 0xc]
push edi
test al, 0x10
push esi
je 0x401b69
mov al, byte [esp + 0x35c]
test al, al
je 0x401bb6
lea esi, [esp + 0x40]
mov eax, 0x4b05b4
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401ad8
test cl, cl
je 0x401ad4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401ad8
add eax, 2
add esi, 2
test cl, cl
jne 0x401ab4
xor eax, eax
jmp 0x401add
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401bb6
lea esi, [esp + 0x40]
mov eax, 0x4b05b0
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401b12
test cl, cl
je 0x401b0e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401b12
add eax, 2
add esi, 2
test cl, cl
jne 0x401aee
xor eax, eax
jmp 0x401b17
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401bb6
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 2]
push eax
call fcn.00402390
add esp, 4
lea ecx, [esp + 0x40]
mov esi, eax
push ecx
push ebp
push 0x4b05a8
push esi
call fcn.004021d0
add esp, 0x10
push 1
push esi
call fcn.00401a40
add esp, 8
jmp 0x401bad
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 2]
push eax
call fcn.00402390
add esp, 4
lea ecx, [esp + 0x40]
mov esi, eax
push ecx
push ebp
push 0x4b05a8
push esi
call fcn.004021d0
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push esi
call fcn.00402340
add esp, 4
lea edx, [esp + 0x14]
push edx
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_FindNextFileA]
call ebx
test eax, eax
je 0x401d0b
test byte [esp + 0x14], 0x10
je 0x401caa
mov al, byte [esp + 0x35c]
test al, al
je 0x401cf7
lea esi, [esp + 0x40]
mov eax, 0x4b05b4
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401c13
test cl, cl
je 0x401c0f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401c13
add eax, 2
add esi, 2
test cl, cl
jne 0x401bef
xor eax, eax
jmp 0x401c18
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401cf7
lea esi, [esp + 0x40]
mov eax, 0x4b05b0
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401c4d
test cl, cl
je 0x401c49
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401c4d
add eax, 2
add esi, 2
test cl, cl
jne 0x401c29
xor eax, eax
jmp 0x401c52
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401cf7
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 2]
push eax
call fcn.00402390
add esp, 4
lea ecx, [esp + 0x40]
mov esi, eax
push ecx
push ebp
push 0x4b05a8
push esi
call fcn.004021d0
mov edx, dword [esp + 0x36c]
add esp, 0x10
push edx
push esi
call fcn.00401a40
add esp, 8
jmp 0x401cee
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebp
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 2]
push eax
call fcn.00402390
add esp, 4
lea ecx, [esp + 0x40]
mov esi, eax
push ecx
push ebp
push 0x4b05a8
push esi
call fcn.004021d0
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push esi
call fcn.00402340
add esp, 4
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
push eax
call ebx
test eax, eax
jne 0x401bcc
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
push ebp
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x401d27
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
pop edi
pop ebp
mov al, 1
pop ebx
add esp, 0x344
ret