Function at 0x403324
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 0x4034ff
lea eax, [ebp - 0x310]
push eax
call fcn.0040e743
lea eax, [ebp - 0x310]
push eax
call fcn.004030ae
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add esp, 0xc
cmp word [eax], bx
jne 0x403371
push 0x42a674
jmp 0x4033a0
lea eax, [ebp - 0x310]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x768], eax
je 0x4036b6
test al, 0x10
je 0x4036b6
test byte [ebp + 0xf], 0x80
jne 0x4036b6
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 0x4036b1
lea eax, [ebp - 0x73c]
push 0x42a668
push eax
call fcn.0040f634
pop ecx
test eax, eax
pop ecx
je 0x403451
lea eax, [ebp - 0x73c]
push 0x42a660
push eax
call fcn.0040f634
pop ecx
test eax, eax
pop ecx
je 0x403451
test byte [ebp - 0x768], 0x10
je 0x403450
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 0x403451
inc ebx
lea eax, [ebp - 0x768]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4033cd
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
jne 0x4036b1
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 0x4034af
test byte [ebp + 0xd], 0x40
jne 0x4036b6
mov edi, ebx
test bl, al
je 0x4034bf
test byte [ebp + 0xe], 4
jne 0x4036b6
mov edi, ebx
test al, 4
je 0x4034cf
test byte [ebp + 0xe], 0x40
jne 0x4036b6
mov edi, ebx
test edi, edi
je 0x4034ed
lea eax, [ebp - 0x310]
push 0x90
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x4036b6
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x4036aa
lea eax, [ebp - 0x108]
push 0x104
push eax
call fcn.00401535
lea eax, [ebp - 0x108]
push eax
call fcn.004030f6
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
add esp, 0x10
cmp byte [eax], 0
jne 0x403531
push 0x42a65c
jmp 0x403560
lea eax, [ebp - 0x108]
push eax
call esi
cmp eax, 0xffffffff
mov dword [ebp - 0x248], eax
je 0x4036b6
test al, 0x10
je 0x4036b6
test byte [ebp + 0xf], 0x80
jne 0x4036b6
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 0x4036b1
lea eax, [ebp - 0x21c]
push 0x42a654
push eax
call fcn.0040f5b0
pop ecx
test eax, eax
pop ecx
je 0x403611
lea eax, [ebp - 0x21c]
push 0x42a650
push eax
call fcn.0040f5b0
pop ecx
test eax, eax
pop ecx
je 0x403611
test byte [ebp - 0x248], 0x10
je 0x403610
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 0x403611
inc ebx
lea eax, [ebp - 0x248]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40358d
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
jne 0x4036b1
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 0x40366b
test byte [ebp + 0xd], 0x40
jne 0x4036b6
mov edi, ebx
test bl, al
je 0x403677
test byte [ebp + 0xe], 4
jne 0x4036b6
mov edi, ebx
test al, 4
je 0x403683
test byte [ebp + 0xe], 0x40
jne 0x4036b6
mov edi, ebx
test edi, edi
je 0x40369d
lea eax, [ebp - 0x108]
push 0x90
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x4036b6
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
je 0x4036b1
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 4]
jmp 0x4036b8
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret