Function at 0x405d90
Capabilities:
Create directory
Enumerate files on windows
Enumerate files recursively
Get file attributes
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x42dfb6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc80
push ebx
push ebp
push esi
mov ebp, ecx
push edi
xor ebx, ebx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xa8a]
mov word [esp + 0xa88], bx
rep stosd dword es:[edi], eax
mov esi, dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea ecx, [esp + 0xa88]
stosw word es:[edi], ax
mov eax, dword [esp + 0xca0]
push eax
push ecx
call esi
lea edx, [esp + 0xa88]
mov ecx, ebp
push edx
call fcn.00406100
test eax, eax
je 0x4060a0
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x882]
mov word [esp + 0x880], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esp + 0xca4]
lea ecx, [esp + 0x880]
push eax
push ecx
call esi
lea edx, [esp + 0x880]
mov ecx, ebp
push edx
call fcn.00406100
test eax, eax
jne 0x405e6f
lea eax, [esp + 0x880]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x4060a0
mov ecx, dword [esp + 0xca0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea edx, [esp + 0x880]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x472]
mov word [esp + 0x470], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x470]
push 0x104
push eax
push str..
mov ecx, ebp
call fcn.00406180
mov esi, dword [sym.imp.SHLWAPI.dll_StrCatW]
lea ecx, [esp + 0x470]
lea edx, [esp + 0xa88]
push ecx
push edx
call esi
lea eax, [esp + 0x18]
lea ecx, [esp + 0xa88]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x405edb
xor eax, eax
jmp 0x4060a0
xor edx, edx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x26a]
mov word [esp + 0x268], dx
mov word [esp + 0x678], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x67a]
lea edx, [esp + 0x470]
rep stosd dword es:[edi], eax
push 0x104
push edx
push 0x43b0d0
mov ecx, ebp
stosw word es:[edi], ax
call fcn.00406180
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x406094
test byte [esp + 0x18], 0x10
je 0x405f6d
cmp word [esp + 0x44], 0x2e
jne 0x405f6d
mov ax, word [esp + 0x46]
test ax, ax
je 0x406080
cmp ax, 0x2e
jne 0x405f6d
cmp word [esp + 0x48], 0
je 0x406080
mov ecx, dword [esp + 0xca0]
mov edi, dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea edx, [esp + 0x268]
push ecx
push edx
call edi
lea eax, [esp + 0x470]
lea ecx, [esp + 0x268]
push eax
push ecx
call esi
lea edx, [esp + 0x44]
lea eax, [esp + 0x268]
push edx
push eax
call esi
mov ecx, dword [esp + 0xca4]
lea edx, [esp + 0x678]
push ecx
push edx
call edi
lea eax, [esp + 0x470]
lea ecx, [esp + 0x678]
push eax
push ecx
call esi
lea edx, [esp + 0x44]
lea eax, [esp + 0x678]
push edx
push eax
call esi
test byte [esp + 0x18], 0x10
je 0x406009
mov ecx, dword [esp + 0xca8]
lea edx, [esp + 0x678]
push ecx
lea eax, [esp + 0x26c]
push edx
push eax
mov ecx, ebp
call fcn.00405d90
test eax, eax
je 0x4060bb
jmp 0x406080
lea ecx, [esp + 0x268]
push ecx
lea ecx, [esp + 0x14]
call fcn.00422acd
lea edx, [esp + 0x678]
lea ecx, [esp + 0x14]
push edx
mov dword [esp + 0xc9c], 0
call fcn.00422acd
mov eax, dword [esp + 0xca8]
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
mov ecx, ebp
mov byte [esp + 0xca4], 1
call fcn.004059a0
test eax, eax
je 0x4060c6
lea ecx, [esp + 0x14]
mov byte [esp + 0xc98], 0
call fcn.00422a0d
lea ecx, [esp + 0x10]
mov dword [esp + 0xc98], 0xffffffff
call fcn.00422a0d
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x405f3e
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
mov ecx, dword [esp + 0xc90]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xc8c
ret 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x4060a0
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x14]
mov byte [esp + 0xc98], 0
call fcn.00422a0d
lea ecx, [esp + 0x10]
mov dword [esp + 0xc98], 0xffffffff
call fcn.00422a0d
xor eax, eax
jmp 0x4060a0