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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x768
push ebx
push esi
xor ebx, ebx
push edi
cmp dword [0x432378], ebx
push dword [ebp + 8]
mov dword [ebp - 4], ebx
je 0x40389d
lea eax, [ebp - 0x310]
push 0x208
push eax
call fcn.00401472
lea eax, [ebp - 0x310]
push eax
call fcn.004030ae
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add esp, 0x10
cmp word [eax], bx
jne 0x40370f
push 0x42a674
jmp 0x40373e
lea eax, [ebp - 0x310]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x768], eax
je 0x403a4f
test al, 0x10
je 0x403a4f
test byte [ebp + 0xf], 0x80
jne 0x403a4f
push 0x42a66c
lea eax, [ebp - 0x310]
push eax
call fcn.0040e719
pop ecx
lea eax, [ebp - 0x768]
pop ecx
push eax
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x403a4a
lea eax, [ebp - 0x73c]
push 0x42a668
push eax
call fcn.0040f634
pop ecx
test eax, eax
pop ecx
je 0x4037ef
lea eax, [ebp - 0x73c]
push 0x42a660
push eax
call fcn.0040f634
pop ecx
test eax, eax
pop ecx
je 0x4037ef
test byte [ebp - 0x768], 0x10
je 0x4037ee
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x518]
push eax
call fcn.0040e743
pop ecx
lea eax, [ebp - 0x73c]
pop ecx
push eax
lea eax, [ebp - 0x518]
push eax
call fcn.0040e8db
pop ecx
lea eax, [ebp + eax*2 - 0x51a]
push eax
call fcn.0040e743
push dword [ebp + 0xc]
lea eax, [ebp - 0x518]
push eax
call fcn.00403324
add esp, 0x10
test eax, eax
jg 0x4037ef
inc ebx
lea eax, [ebp - 0x768]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40376b
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
jne 0x403a4a
lea eax, [ebp - 0x310]
xor edi, edi
push eax
call fcn.0040e8db
and word [ebp + eax*2 - 0x314], di
pop ecx
lea eax, [ebp - 0x310]
push eax
call esi
push 1
mov dword [ebp - 0x768], eax
test al, 2
pop ebx
je 0x40384d
test byte [ebp + 0xd], 0x40
jne 0x403a4f
mov edi, ebx
test bl, al
je 0x40385d
test byte [ebp + 0xe], 4
jne 0x403a4f
mov edi, ebx
test al, 4
je 0x40386d
test byte [ebp + 0xe], 0x40
jne 0x403a4f
mov edi, ebx
test edi, edi
je 0x40388b
lea eax, [ebp - 0x310]
push 0x90
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x403a4f
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x403a43
lea eax, [ebp - 0x108]
push eax
call fcn.0040e770
lea eax, [ebp - 0x108]
push eax
call fcn.004030f6
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
add esp, 0xc
cmp byte [eax], 0
jne 0x4038ca
push 0x42a65c
jmp 0x4038f9
lea eax, [ebp - 0x108]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x248], eax
je 0x403a4f
test al, 0x10
je 0x403a4f
test byte [ebp + 0xf], 0x80
jne 0x403a4f
push 0x42a658
lea eax, [ebp - 0x108]
push eax
call fcn.0040e780
pop ecx
lea eax, [ebp - 0x248]
pop ecx
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x403a4a
lea eax, [ebp - 0x21c]
push 0x42a654
push eax
call fcn.0040f5b0
pop ecx
test eax, eax
pop ecx
je 0x4039aa
lea eax, [ebp - 0x21c]
push 0x42a650
push eax
call fcn.0040f5b0
pop ecx
test eax, eax
pop ecx
je 0x4039aa
test byte [ebp - 0x248], 0x10
je 0x4039a9
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x414]
push eax
call fcn.0040e770
pop ecx
lea eax, [ebp - 0x21c]
pop ecx
push eax
lea eax, [ebp - 0x414]
push eax
call fcn.0040e860
pop ecx
lea eax, [ebp + eax - 0x415]
push eax
call fcn.0040e770
push dword [ebp + 0xc]
lea eax, [ebp - 0x414]
push eax
call fcn.004036bd
add esp, 0x10
test eax, eax
jg 0x4039aa
inc ebx
lea eax, [ebp - 0x248]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x403926
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
jne 0x403a4a
lea eax, [ebp - 0x108]
xor edi, edi
push eax
call fcn.0040e860
pop ecx
lea ecx, [ebp - 0x108]
dec ecx
dec ecx
and byte [eax + ecx], 0
lea eax, [ebp - 0x108]
push eax
call esi
push 1
mov dword [ebp - 0x248], eax
test al, 2
pop ebx
je 0x403a04
test byte [ebp + 0xd], 0x40
jne 0x403a4f
mov edi, ebx
test bl, al
je 0x403a10
test byte [ebp + 0xe], 4
jne 0x403a4f
mov edi, ebx
test al, 4
je 0x403a1c
test byte [ebp + 0xe], 0x40
jne 0x403a4f
mov edi, ebx
test edi, edi
je 0x403a36
lea eax, [ebp - 0x108]
push 0x90
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x403a4f
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
je 0x403a4a
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 4]
jmp 0x403a51
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret