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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41466c
mov eax, dword fs:[0]
push eax
sub esp, 0x8cc
mov eax, dword [0x41c214]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movzx eax, byte [0x41c524]
test eax, eax
je 0x409c0d
mov al, 1
jmp 0x409f52
cmp dword [ebp + 8], 0
jne 0x409c1a
xor al, al
jmp 0x409f52
push 0x104
lea ecx, [ebp - 0x220]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x420]
push edx
push str.dump
lea eax, [ebp - 0x620]
push eax
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x220]
push edx
call fcn.00403d90
add esp, 0x14
mov al, byte [ebp + 0x10]
mov byte [0x41c525], al
mov byte [ebp - 0x8b9], 0
cmp dword [ebp + 8], 0
je 0x409c96
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
add esp, 4
test eax, eax
je 0x409c96
mov edx, dword [ebp + 8]
push edx
push 0x41c528
call fcn.00404400
add esp, 8
test eax, eax
jne 0x409c96
mov byte [ebp - 0x8b9], 1
movzx eax, byte [ebp - 0x8b9]
test eax, eax
je 0x409f41
push 0x41c528
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x409ce2
push 0
push 0x41c528
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x409ccf
mov byte [ebp - 0x8ba], 1
jmp 0x409cd6
mov byte [ebp - 0x8ba], 0
mov cl, byte [ebp - 0x8ba]
mov byte [ebp - 0x8b9], cl
movzx edx, byte [ebp - 0x8b9]
test edx, edx
je 0x409f41
lea ecx, [ebp - 0x8d0]
call fcn.00404b30
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x638]
call fcn.00404ad0
mov byte [ebp - 4], 1
mov eax, 2
imul ecx, eax, 0
movzx edx, word [ecx + 0x41c528]
test edx, edx
je 0x409d45
push 0x41c528
lea ecx, [ebp - 0x638]
call fcn.00405e00
push 0x415a98
lea ecx, [ebp - 0x638]
call fcn.00405e00
push str.dump
lea ecx, [ebp - 0x638]
call fcn.00405e00
push 0x41601c
lea ecx, [ebp - 0x638]
call fcn.00405e00
mov dword [ebp - 0x8b8], 0
push 0x24c
push 0
lea eax, [ebp - 0x8b4]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x8b8]
push ecx
lea ecx, [ebp - 0x638]
call fcn.00410200
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x8c0], eax
cmp dword [ebp - 0x8c0], 0xffffffff
je 0x409f10
lea edx, [ebp - 0x88c]
push edx
lea ecx, [ebp - 0x668]
call fcn.00404a90
mov byte [ebp - 4], 2
lea eax, [ebp - 0x668]
push eax
lea ecx, [ebp - 0x8d8]
push ecx
lea ecx, [ebp - 0x8d0]
call fcn.004110a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x668]
call fcn.00405390
lea edx, [ebp - 0x8b8]
push edx
mov eax, dword [ebp - 0x8c0]
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x409db1
lea ecx, [ebp - 0x8d0]
call fcn.00411480
cmp eax, dword [ebp + 0xc]
jbe 0x409ef9
lea ecx, [ebp - 0x8c4]
push ecx
lea ecx, [ebp - 0x8d0]
call fcn.00410140
lea edx, [ebp - 0x8c8]
push edx
lea ecx, [ebp - 0x8d0]
call fcn.00410610
mov eax, dword [ebp + 0xc]
neg eax
push eax
lea ecx, [ebp - 0x8c8]
push ecx
call fcn.00403e50
add esp, 8
jmp 0x409e61
lea ecx, [ebp - 0x8c4]
call fcn.00405af0
lea edx, [ebp - 0x8c8]
push edx
lea ecx, [ebp - 0x8c4]
call fcn.004058f0
movzx eax, al
test eax, eax
je 0x409ef9
lea ecx, [ebp - 0x650]
call fcn.00404ad0
mov byte [ebp - 4], 3
mov ecx, 2
imul edx, ecx, 0
movzx eax, word [edx + 0x41c528]
test eax, eax
je 0x409ebc
push 0x41c528
lea ecx, [ebp - 0x650]
call fcn.00405e00
push 0x415a98
lea ecx, [ebp - 0x650]
call fcn.00405e00
lea ecx, [ebp - 0x8c4]
call fcn.00405a70
push eax
lea ecx, [ebp - 0x650]
call fcn.00405de0
lea ecx, [ebp - 0x650]
call fcn.00410200
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x650]
call fcn.00405390
jmp 0x409e56
mov ecx, dword [ebp - 0x8c0]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x8c0], 0
push 0x409790
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov dword [0x41c730], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x638]
call fcn.00405390
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8d0]
call fcn.004053e0
mov dl, byte [ebp - 0x8b9]
mov byte [0x41c524], dl
mov al, byte [0x41c524]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004134d5
mov esp, ebp
pop ebp
ret