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

Disassembly:
push 0x2b8
mov eax, 0x59ca19
call fcn.005693c7
mov esi, dword [ebp + 8]
push esi
call fcn.00578706
pop ecx
cmp eax, 3
jb 0x41417d
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41417d
push esi
lea ecx, [ebp - 0x28]
call fcn.00402ac4
and dword [ebp - 4], 0
lea eax, [ebp - 0x28]
push eax
call fcn.00419b70
mov ebx, 0x5a0a50
pop ecx
test eax, eax
jne 0x413ef3
push ebx
call fcn.00578706
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x28]
call fcn.00408c34
call fcn.0042aeec
test al, al
je 0x413f12
mov bl, 0x37
insd dword es:[edi], dx
ret
and dword [ebp - 0x30], 0
xor eax, eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x70]
call fcn.00402a71
mov esi, 0x5a3400
mov byte [ebp - 4], 2
push esi
call fcn.00578706
pop ecx
push eax
push esi
lea ecx, [ebp - 0x70]
call fcn.00408c34
cmp dword [ebp - 0x5c], 8
lea ecx, [ebp - 0x2c0]
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x2c4], eax
call fcn.0042ae62
test al, al
je 0x413f94
and dword [esi], esi
dec edx
xor byte [edx], ah
outsb dx, byte [esi]
out dx, al
arpl dx, di
mov edi, 0x53137df0
mov ds, word [edx - 0x28495c8f]
push ebx
dec eax
sbb eax, 0x92bce84c
cmp eax, 0x65e8927e
imul eax, dword [ecx], 0x74c08400
sbb dword [esi + 0x74113a1b], ebp
enter 0x2c10, 0x11
call fcn.0042a8fe
test al, al
je 0x413fb6
scasb al, byte es:[edi]
sbb edi, dword [edx]
adc dword [eax + ecx*8 + 0x10], esi
sub al, 0x11
adc ebx, edi
inc ecx
and dword [edi - 0x6ab5137e], esp
mov ecx, 0xf8e7bc05
jo 0x413f8a
call fcn.0042abb0
test al, al
je 0x413fdb
fnstenv [edi]
cmp ah, byte [ebp + 0x42]
and byte [edi + 0x57093ab6], ch
sub edx, dword [edi]
and al, 0xce
int 0xe9
int 0xc5
lea eax, [edx]
push eax
xchg esi, eax
mov bl, 0x21
mov dl, 0x5d
mov esi, dword [ebp - 0x2c4]
cmp esi, 0xffffffff
je 0x414105
push 0x2e
pop ebx
mov edi, 0x5a0a50
lea eax, [ebp - 0x2c0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x414105
cmp word [ebp - 0x294], bx
je 0x413ff2
cmp word [ebp - 0x292], 0
je 0x413ff2
cmp word [ebp - 0x292], bx
jne 0x41402e
cmp word [ebp - 0x290], 0
je 0x413ff2
test byte [ebp - 0x2c0], 0x10
lea eax, [ebp - 0x28]
je 0x4140aa
push eax
lea ecx, [ebp - 0x58]
call fcn.00402a71
cmp word [ebp - 0x294], 0
mov byte [ebp - 4], 3
jne 0x414055
xor eax, eax
jmp 0x414062
lea eax, [ebp - 0x294]
push eax
call fcn.00578706
pop ecx
push eax
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x58]
call fcn.00408c34
push edi
call fcn.00578706
pop ecx
push eax
push edi
lea ecx, [ebp - 0x58]
call fcn.00408c34
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push eax
call fcn.00413e91
pop ecx
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 2
call fcn.00403628
jmp 0x413ff2
dec ebp
test al, 0xc6
inc ebp
cld
add ch, al
xor ebp, 0xfffffffe
invalid
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x40]
call fcn.004036b6
cmp word [ebp - 0x294], 0
jne 0x4140c5
xor eax, eax
jmp 0x4140d2
lea eax, [ebp - 0x294]
push eax
call fcn.00578706
pop ecx
push eax
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x40]
call fcn.00408c34
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00402ac4
call fcn.004159ca
add esp, 0x18
jmp 0x413ff2
call fcn.0042aa12
test al, al
je 0x41412d
adc byte [edx + 0x2854afa8], dh
inc ebp
jl 0x41409a
add dword [eax + 0x13], edi
ficom dword [ebx]
dec ebp
imul ch
mov edx, 0xad68171e
add eax, 0x91268d41
jae 0x4140bf
jl 0x414184
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
push 0x20
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor ebx, ebx
lea ecx, [ebp - 0x70]
push ebx
push 1
call fcn.00403628
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.00403628
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.00403628
call fcn.00569382
ret
mov ebp, esp
sub esp, 0x218
mov eax, dword [0x62aa54]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x20c]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x218], eax
xor eax, eax
push eax
push 0x1a
push ecx
push eax
mov dword [ebp - 0x210], ebx
call int.004155bb
lea eax, [ebp - 0x20c]
push eax
call fcn.00578706
add esp, 0x14
mov dword [ebp - 0x214], eax
call fcn.0042a9cd
test al, al
je 0x4141fa
xchg dword [ebp + 0x78b90900], esi
sub dword [ebx + eax*2 + 0x3b], esi
push esi
cmp byte [ecx], bh
inc ecx
push ebx
aaa
aad 0x6e
and ebx, dword [eax - 0x78]
sub dword [ebx - 0xf627468], esp
std
invalid
cmp dword [ebp - 0x214], 0
je 0x414306
mov esi, 0x5a0a50
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.00578f16
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.00578f16
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.00578f16
add esp, 0x18
call fcn.0042af76
test al, al
je 0x41425a
add dword [ebp + 0x1c4cf300], ebx
div dword [ecx - 0x7c]
cmp al, byte [esi - 0xf27d4f1]
ret 0x28ba
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x414278
lea eax, [ebp - 0x20c]
push eax
call int.00413d60
pop ecx
call fcn.0042aa9c
test al, al
je 0x414295
enter 0xffffffffffff9725, 0x1a
mov byte [0x71be0397], al
lodsd eax, dword [esi]
xlatb
inc eax
outsd dx, dword [esi]
and eax, 0x4f9ad405
jg 0x4142a6
call fcn.0042ad4e
test al, al
je 0x4142ba
shr edx, cl
adc dh, byte [eax + ebp*2 + 0x32]
lds ebx, [edi]
in al, dx
or esp, dword [esi + 0x1f]
leave
mov ds, word [edx - 0x463de08]
out 0xaa, al
xchg edi, eax
inc edi
mov ah, 0xf1
fsubp st(1)
call fcn.0042af76
test al, al
je 0x4142d8
and bl, 0x96
dec edi
retf
cmp word [ebp - 0x20c], 0
jne 0x4142e6
xor eax, eax
jmp 0x4142f3
lea eax, [ebp - 0x20c]
push eax
call fcn.00578706
pop ecx
mov ecx, dword [ebp - 0x218]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.00403772
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0056935c
mov esp, ebp
pop ebp
ret