Function at 0x403260
Capabilities:
Delete directory
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov dword [ebp - 0x10], 1
cmp dword [ebp + 0xc], 0
jbe 0x40329b
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + eax*2 - 2]
cmp edx, 0x5c
je 0x40329b
mov eax, 0x5c
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov word [edx + ecx*2], ax
mov eax, dword [ebp + 0xc]
add eax, 1
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [0x4339f0]
mov dword [edx + ecx*2], eax
mov eax, dword [0x4339f4]
mov dword [edx + ecx*2 + 4], eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0xffffffff
je 0x4034b8
mov dword [ebp - 0x1c], 0x4339f8
mov eax, dword [ebp + 0x10]
add eax, 0x2c
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov dx, word [ecx]
mov word [ebp - 4], dx
mov eax, dword [ebp - 0x1c]
cmp dx, word [eax]
jne 0x403322
cmp word [ebp - 4], 0
je 0x403319
mov ecx, dword [ebp - 0x18]
mov dx, word [ecx + 2]
mov word [ebp - 6], dx
mov eax, dword [ebp - 0x1c]
cmp dx, word [eax + 2]
jne 0x403322
add dword [ebp - 0x18], 4
add dword [ebp - 0x1c], 4
cmp word [ebp - 6], 0
jne 0x4032dd
mov dword [ebp - 0x34], 0
jmp 0x40332a
sbb ecx, ecx
or ecx, 1
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0
je 0x403498
mov dword [ebp - 0x24], 0x4339fc
mov eax, dword [ebp + 0x10]
add eax, 0x2c
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov dx, word [ecx]
mov word [ebp - 8], dx
mov eax, dword [ebp - 0x24]
cmp dx, word [eax]
jne 0x40338f
cmp word [ebp - 8], 0
je 0x403386
mov ecx, dword [ebp - 0x20]
mov dx, word [ecx + 2]
mov word [ebp - 0xa], dx
mov eax, dword [ebp - 0x24]
cmp dx, word [eax + 2]
jne 0x40338f
add dword [ebp - 0x20], 4
add dword [ebp - 0x24], 4
cmp word [ebp - 0xa], 0
jne 0x40334a
mov dword [ebp - 0x38], 0
jmp 0x403397
sbb ecx, ecx
or ecx, 1
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x48], edx
cmp dword [ebp - 0x48], 0
je 0x403498
mov eax, dword [ebp + 0x10]
add eax, 0x2c
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
lea eax, [edx + ecx*2]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x2c]
mov ax, word [edx]
mov word [ebp - 2], ax
mov ecx, dword [ebp - 0x28]
mov dx, word [ebp - 2]
mov word [ecx], dx
mov eax, dword [ebp - 0x2c]
add eax, 2
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x28]
add ecx, 2
mov dword [ebp - 0x28], ecx
cmp word [ebp - 2], 0
jne 0x4033c2
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
and eax, 0x10
je 0x403468
mov ecx, dword [ebp + 0x10]
add ecx, 0x2c
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
add edx, 2
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x14]
mov cx, word [eax]
mov word [ebp - 0xc], cx
add dword [ebp - 0x14], 2
cmp word [ebp - 0xc], 0
jne 0x40340b
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x4c]
sar edx, 1
mov dword [ebp - 0x50], edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
add edx, dword [ebp - 0x50]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00403260
add esp, 0x10
test eax, eax
je 0x403459
cmp dword [ebp - 0x10], 0
je 0x403459
mov dword [ebp - 0x3c], 1
jmp 0x403460
mov dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x10], ecx
jmp 0x403498
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00402fa0
add esp, 8
test eax, eax
je 0x40348b
cmp dword [ebp - 0x10], 0
je 0x40348b
mov dword [ebp - 0x40], 1
jmp 0x403492
mov dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4032cd
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x10], 0
je 0x4034f8
xor edx, edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov word [ecx + eax*2 - 2], dx
push 0x90
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4034f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret