Function at 0x557ef8
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd84
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x27c], edx
mov dword [ebp - 0x278], edx
mov dword [ebp - 0x274], edx
mov dword [ebp - 0x26c], edx
mov dword [ebp - 0x270], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00406b44
xor eax, eax
push ebp
push 0x55816d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 4]
call fcn.00406e88
lea eax, [ebp - 0x270]
mov edx, dword [ebp - 0xc]
call fcn.004076b8
mov eax, dword [ebp - 0x270]
lea ecx, [ebp - 0x26c]
mov edx, 1
call fcn.00450848
mov eax, dword [ebp - 0x26c]
mov edx, 0x558180
call fcn.0040751c
je 0x557f94
lea eax, [ebp - 0xc]
mov edx, 0x558190
call fcn.004077c0
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00406e88
lea eax, [ebp - 0xc]
mov edx, 0x5581a0
call fcn.004077c0
lea eax, [ebp - 0x268]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004075c4
push eax
call sub.kernel32.dll_FindFirstFileW_1
mov esi, eax
cmp esi, 0xffffffff
je 0x558132
mov bl, 1
jmp 0x558116
test byte [ebp - 0x268], 0x10
jne 0x55807f
lea eax, [ebp - 0x274]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.00407668
mov ecx, dword [ebp - 0x274]
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.00407818
mov eax, dword [ebp - 8]
call fcn.004075c4
push eax
call sub.kernel32.dll_DeleteFileW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
jne 0x558103
call sub.kernel32.dll_GetLastError_1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
call fcn.004075c4
push eax
call sub.kernel32.dll_GetFileAttributesW
mov edi, eax
cmp edi, 0xffffffff
je 0x558071
test edi, 0x400
je 0x558071
test edi, 0x10
je 0x558071
mov eax, dword [ebp - 8]
call fcn.004075c4
push eax
call sub.kernel32.dll_RemoveDirectoryW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x11], al
jmp 0x558103
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_SetLastError
jmp 0x558103
lea eax, [ebp - 0x278]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.00407668
mov edx, dword [ebp - 0x278]
lea eax, [ebp - 8]
mov ecx, 0x5581b4
call fcn.00407818
mov eax, dword [ebp - 8]
mov edx, 0x5581c4
call fcn.00407950
je 0x558103
mov eax, dword [ebp - 8]
mov edx, 0x5581d8
call fcn.00407950
je 0x558103
lea eax, [ebp - 0x27c]
lea edx, [ebp - 0x23c]
mov ecx, 0x104
call fcn.00407668
mov ecx, dword [ebp - 0x27c]
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x10]
call fcn.00407818
mov eax, dword [ebp - 8]
call fcn.00557ef8
mov eax, dword [ebp - 8]
call fcn.004075c4
push eax
call sub.kernel32.dll_RemoveDirectoryW
lea eax, [ebp - 0x268]
push eax
push esi
call sub.kernel32.dll_FindNextFileW
cmp eax, 1
sbb ebx, ebx
inc ebx
test bl, bl
jne 0x557fd3
push esi
call sub.kernel32.dll_FindClose_1
mov eax, dword [ebp - 4]
call fcn.004075c4
push eax
call sub.kernel32.dll_RemoveDirectoryW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x558174
lea eax, [ebp - 0x27c]
mov edx, 3
call fcn.00406ac0
lea eax, [ebp - 0x270]
mov edx, 2
call fcn.00406b20
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00406ac0
ret