Function at 0x40ceeb
Capabilities:
Delete file
Enumerate files on windows
Get file attributes
Move file
Set file attributes

Disassembly:
push 0x290
mov eax, 0x48e815
call fcn.00458f67
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x290]
push 0x250
xor ebx, ebx
push ebx
push eax
call fcn.0045b1d0
add esp, 0xc
mov ecx, esi
push 0x4b5994
call fcn.0040d1ca
test al, al
jne 0x40d1c2
push 0x4b5998
mov ecx, esi
call fcn.0040d1ca
test al, al
jne 0x40d1c2
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x40cf46
mov eax, dword [esi]
push 0x5c
push eax
call fcn.0045b45b
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x40d1c2
add edi, 2
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x40cf67
mov eax, dword [esi]
lea ecx, [ebp - 0x290]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x29c], eax
cmp eax, 0xffffffff
je 0x40d1c2
push esi
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
call fcn.00403c5b
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], ebx
jb 0x40cf9e
mov esi, dword [esi]
sub edi, esi
mov dword [ebp - 0x18], ebx
xor eax, eax
sar edi, 1
cmp dword [ebp - 0x30], edi
lea ecx, [ebp - 0x28]
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x40]
cmovb edi, dword [ebp - 0x30]
cmp dword [ebp - 0x2c], 8
push edi
cmovae eax, dword [ebp - 0x40]
push eax
mov dword [ebp - 0x14], 7
call fcn.00403c0d
mov byte [ebp - 0x294], bl
lea eax, [ebp - 0x28]
push dword [ebp - 0x294]
lea ecx, [ebp - 0x40]
push eax
call fcn.00403cdd
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40d035
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x294], ecx
cmp eax, 0x1000
jb 0x40d02c
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x294]
push eax
call fcn.00403184
mov eax, dword [ebp - 0x298]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x294]
push eax
push ecx
call fcn.00458ecf
pop ecx
pop ecx
mov bh, byte [ebp + 0xc]
mov bl, 1
mov edi, dword [ebp - 0x29c]
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x40]
and dword [ebp - 0x14], 0
lea ecx, [ebp - 0x28]
push eax
call fcn.00403c5b
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x28]
call fcn.004067dc
test byte [ebp - 0x290], 0x10
je 0x40d0bf
lea eax, [ebp - 0x264]
push 0x4b5994
push eax
call fcn.00461a3c
pop ecx
pop ecx
test eax, eax
je 0x40d103
lea eax, [ebp - 0x264]
push 0x4b5998
push eax
call fcn.00461a3c
pop ecx
pop ecx
test eax, eax
je 0x40d103
test bh, bh
je 0x40d103
lea eax, [ebp - 0x28]
push eax
call fcn.0040cdbf
movzx eax, al
pop ecx
test bl, bl
je 0x40d0bb
test eax, eax
je 0x40d0bb
mov bl, 1
jmp 0x40d103
xor bl, bl
jmp 0x40d103
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffe
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
push eax
cmovae ecx, dword [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
push 4
cmovae eax, dword [ebp - 0x28]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
neg eax
sbb al, al
and bl, al
lea eax, [ebp - 0x290]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov ecx, dword [ebp - 0x14]
mov esi, eax
mov byte [ebp - 4], 0
cmp ecx, 8
jb 0x40d167
mov eax, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov dword [ebp - 0x294], ecx
mov dword [ebp - 0x298], eax
cmp ecx, 0x1000
jb 0x40d15e
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x298]
push eax
call fcn.00403184
mov eax, dword [ebp - 0x298]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x294]
push ecx
push eax
call fcn.00458ecf
pop ecx
pop ecx
test esi, esi
jne 0x40d040
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x40d1be
mov ecx, dword [ebp - 0x40]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x298], ecx
cmp eax, 0x1000
jb 0x40d1b5
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x298]
push eax
call fcn.00403184
mov eax, dword [ebp - 0x294]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x298]
push eax
push ecx
call fcn.00458ecf
pop ecx
pop ecx
mov al, bl
jmp 0x40d1c4
xor al, al
call fcn.00458f11
ret