Function at 0x40b5d0
Capabilities:
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x3d
push 0
push 0
dec ecx
jne 0x40b5d9
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov byte [ebp - 5], cl
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004035ac
lea esi, [ebp - 0x148]
xor eax, eax
push ebp
push 0x40bcdf
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp - 5], 0
jne 0x40b620
mov eax, dword [ebp - 4]
call fcn.0040b3f8
test al, al
je 0x40bcb9
mov byte [ebp - 6], 0
mov dword [esi], 0x27
push esi
lea edx, [ebp - 0x154]
mov eax, 0x40bcf0
call fcn.00404814
mov eax, dword [ebp - 0x154]
lea edx, [ebp - 0x150]
call fcn.00404d24
mov ecx, dword [ebp - 0x150]
lea eax, [ebp - 0x14c]
mov edx, dword [ebp - 4]
call fcn.00403408
mov eax, dword [ebp - 0x14c]
call fcn.004035bc
push eax
call sub.kernel32.dll_FindFirstFileA
mov edi, eax
cmp edi, 0xffffffff
je 0x40b730
test bl, bl
jne 0x40b6a2
lea eax, [ebp - 0x158]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x158]
call fcn.0040b318
test al, al
je 0x40b71b
test bl, bl
jne 0x40b6aa
mov byte [ebp - 6], 1
test byte [esi], 1
je 0x40b6e9
push 0
lea eax, [ebp - 0x160]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x15c]
mov edx, dword [ebp - 4]
call fcn.00403408
mov eax, dword [ebp - 0x15c]
call fcn.004035bc
push eax
call sub.kernel32.dll_SetFileAttributesA
lea eax, [ebp - 0x168]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov ecx, dword [ebp - 0x168]
lea eax, [ebp - 0x164]
mov edx, dword [ebp - 4]
call fcn.00403408
mov eax, dword [ebp - 0x164]
call fcn.0040d1ec
push esi
push edi
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x40b67c
push edi
call sub.kernel32.dll_FindClose
cmp byte [ebp - 6], 0
jne 0x40bcb9
mov dword [esi], 0x27
push esi
lea edx, [ebp - 0x174]
mov eax, 0x40bcf0
call fcn.00404814
mov eax, dword [ebp - 0x174]
lea edx, [ebp - 0x170]
call fcn.00404d24
mov ecx, dword [ebp - 0x170]
lea eax, [ebp - 0x16c]
mov edx, dword [ebp - 4]
call fcn.00403408
mov eax, dword [ebp - 0x16c]
call fcn.004035bc
push eax
call sub.kernel32.dll_FindFirstFileA
mov edi, eax
cmp edi, 0xffffffff
je 0x40b814
test byte [esi], 1
je 0x40b7d1
push 0
lea eax, [ebp - 0x17c]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov ecx, dword [ebp - 0x17c]
lea eax, [ebp - 0x178]
mov edx, dword [ebp - 4]
call fcn.00403408
mov eax, dword [ebp - 0x178]
call fcn.004035bc
push eax
call sub.kernel32.dll_SetFileAttributesA
lea eax, [ebp - 0x184]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov ecx, dword [ebp - 0x184]
lea eax, [ebp - 0x180]
mov edx, dword [ebp - 4]
call fcn.00403408
mov eax, dword [ebp - 0x180]
call fcn.0040d1ec
push esi
push edi
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x40b792
push edi
call sub.kernel32.dll_FindClose
mov dword [esi], 0x16
push esi
lea eax, [ebp - 0x188]
mov ecx, 0x40bd54
mov edx, dword [ebp - 4]
call fcn.00403408
mov eax, dword [ebp - 0x188]
call fcn.004035bc
push eax
call sub.kernel32.dll_FindFirstFileA
mov edi, eax
cmp edi, 0xffffffff
je 0x40bcb9
test byte [esi], 0x10
je 0x40bca4
lea eax, [ebp - 0x18c]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x18c]
mov edx, 0x40bd60
call fcn.00403508
je 0x40bca4
lea eax, [ebp - 0x190]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x190]
mov edx, 0x40bd6c
call fcn.00403508
je 0x40bca4
lea eax, [ebp - 0x194]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x194]
mov edx, dword [0x41c264]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x198]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x198]
mov edx, dword [0x41c268]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x19c]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x19c]
mov edx, dword [0x41c26c]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1a0]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1a0]
mov edx, dword [0x41c274]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1a4]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1a4]
mov edx, dword [0x41c278]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1a8]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1a8]
mov edx, dword [0x41c25c]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1ac]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1ac]
mov edx, dword [0x41c270]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1b0]
push eax
mov eax, dword [ebp - 4]
call fcn.004033bc
mov edx, eax
sub edx, 0xf
inc edx
mov ecx, 0xf
mov eax, dword [ebp - 4]
call fcn.0040361c
mov eax, dword [ebp - 0x1b0]
mov edx, dword [0x41c22c]
call fcn.00404744
test eax, eax
jne 0x40bc4c
lea eax, [ebp - 0x1b4]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1b4]
mov edx, dword [0x41c230]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1b8]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1b8]
mov edx, dword [0x41c234]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1bc]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1bc]
mov edx, dword [0x41c224]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1c0]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1c0]
mov edx, dword [0x41c220]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1c4]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1c4]
mov edx, dword [0x41c228]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1c8]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1c8]
mov edx, dword [0x41c238]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1cc]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1cc]
mov edx, dword [0x41c23c]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1d0]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1d0]
mov edx, dword [0x41c240]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1d4]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1d4]
mov edx, dword [0x41c244]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1d8]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1d8]
mov edx, dword [0x41c24c]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1dc]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1dc]
mov edx, dword [0x41c254]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1e0]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1e0]
mov edx, dword [0x41c258]
call fcn.00404744
test eax, eax
je 0x40bca4
lea eax, [ebp - 0x1e4]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
mov eax, dword [ebp - 0x1e4]
mov edx, dword [0x41c260]
call fcn.00404744
test eax, eax
je 0x40bca4
mov eax, dword [ebp - 4]
call fcn.004033bc
cmp eax, 3
jg 0x40bc63
push 0x3e8
call sub.kernel32.dll_Sleep
push dword [ebp - 4]
lea eax, [ebp - 0x1ec]
lea edx, [esi + 0x2c]
mov ecx, 0x104
call fcn.004033a4
push dword [ebp - 0x1ec]
push 0x40bd78
lea eax, [ebp - 0x1e8]
mov edx, 3
call fcn.0040347c
mov eax, dword [ebp - 0x1e8]
mov cl, byte [ebp - 5]
mov edx, ebx
call fcn.0040b5d0
push esi
push edi
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x40b84a
push edi
call sub.kernel32.dll_FindClose
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40bce6
lea eax, [ebp - 0x1ec]
mov edx, 0x29
call fcn.004031a0
lea eax, [ebp - 4]
call fcn.0040317c
ret