Function at 0x4035f0
Capabilities:
Delete file
Enumerate files on windows
Enumerate files recursively
Set current directory

Disassembly:
push 0xffffffffffffffff
push 0x434657
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18c
mov al, byte [esp + 3]
push ebx
push ebp
push esi
mov ebx, ecx
xor ebp, ebp
push edi
push ebp
lea ecx, [esp + 0x38]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x24], ebp
mov byte [esp + 0x38], al
call fcn.00401d50
mov esi, dword [esp + 0x1ac]
mov dword [esp + 0x1a4], ebp
cmp esi, ebp
je 0x403887
mov cl, byte [esp + 0x13]
push ebp
mov byte [esp + 0x28], cl
lea ecx, [esp + 0x28]
call fcn.00401d50
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x2c]
call fcn.00402160
push 1
lea edx, [esp + 0x17]
push ebp
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x1b0], 1
mov byte [esp + 0x1f], 0x2a
call fcn.00403da0
mov edi, eax
push 1
lea eax, [esp + 0x17]
push ebp
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1f], 0x3f
call fcn.00403da0
cmp edi, ebp
jge 0x403722
cmp eax, ebp
jge 0x403722
push 1
lea ecx, [esp + 0x17]
push ebp
push ecx
lea ecx, [esp + 0x30]
mov byte [esp + 0x1f], 0x5c
call fcn.00403da0
cmp eax, ebp
jge 0x403707
add ebx, 4
push 0x4420e0
lea edx, [esp + 0x50]
push ebx
push edx
call fcn.00402aa0
add esp, 0xc
mov ecx, dword [0x4375d4]
mov byte [esp + 0x1a4], 4
push ecx
push ebp
push eax
lea ecx, [esp + 0x40]
call fcn.00401b50
push 1
lea ecx, [esp + 0x50]
mov byte [esp + 0x1a8], 1
call fcn.00401d50
mov edx, dword [0x4375d4]
lea eax, [esp + 0x24]
push edx
push ebp
push eax
lea ecx, [esp + 0x40]
call fcn.00401fc0
jmp 0x403872
mov eax, dword [ebx + 8]
cmp eax, ebp
jne 0x40372e
mov eax, 0x4375d0
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [esp + 0x5c]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x403774
push 1
lea ecx, [esp + 0x28]
mov byte [esp + 0x1a8], 0
call fcn.00401d50
push 1
lea ecx, [esp + 0x38]
mov dword [esp + 0x1a8], esi
call fcn.00401d50
xor eax, eax
jmp 0x4038e9
mov dl, byte [esp + 0x13]
push ebp
push ebp
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], dl
call fcn.00403e30
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
mov bl, byte [esp + 0x13]
mov ebp, dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov byte [esp + 0x1a4], 2
push 0
lea ecx, [esp + 0x50]
mov byte [esp + 0x50], bl
call fcn.00401d50
lea edi, [esp + 0x88]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x88]
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.00402160
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x48]
push edx
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1b0], 3
call fcn.00401da0
push 1
lea ecx, [esp + 0x50]
mov byte [esp + 0x1a8], 2
call fcn.00401d50
lea ecx, [esp + 0x5c]
push ecx
push esi
call ebp
test eax, eax
jne 0x4037a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
cmp esi, eax
je 0x403849
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x403835
mov eax, 0x4375d0
mov ecx, dword [esp + 0x48]
push eax
call fcn.004035f0
mov esi, dword [esi]
mov eax, dword [esp + 0x18]
cmp esi, eax
jne 0x403829
mov ecx, dword [eax]
push eax
lea edx, [esp + 0x48]
push ecx
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x1b0], 1
call fcn.00401e00
mov eax, dword [esp + 0x18]
push eax
call fcn.0042912a
add esp, 4
xor ebp, ebp
push 1
lea ecx, [esp + 0x28]
mov byte [esp + 0x1a8], 0
call fcn.00401d50
jmp 0x4038a3
mov ecx, dword [0x4375d4]
lea edx, [ebx + 0x14]
push ecx
push ebp
push edx
lea ecx, [esp + 0x40]
call fcn.00401b50
mov ecx, ebx
call fcn.004034e0
cmp dword [esp + 0x3c], ebp
je 0x4038c1
mov eax, dword [esp + 0x38]
cmp eax, ebp
jne 0x4038b6
mov eax, 0x4375d0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x38]
cmp ecx, ebp
je 0x4038e5
mov al, byte [ecx - 1]
test al, al
je 0x4038db
cmp al, 0xff
je 0x4038db
dec al
mov byte [ecx - 1], al
jmp 0x4038e5
dec ecx
push ecx
call fcn.0042912a
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x19c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x198
ret 4