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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x47c
mov eax, dword [0x4261d4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov eax, edx
push esi
mov esi, ebx
mov dword [ebp - 0x468], eax
push edi
xor edi, edi
mov dword [eax], 1
mov dword [ebp - 0x464], edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, di
jne 0x41207e
sub esi, ecx
sar esi, 1
je 0x41be53
lea eax, [esi + 3]
cmp eax, 0x104
jg 0x412220
lea eax, [ebp - 0x460]
push eax
push ebx
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x41be5d
push eax
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_FindClose]
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x460]
test al, 0x10
je 0x412220
test eax, 0x400
jne 0x41be73
mov edi, 0x104
lea ecx, [ebp - 0x210]
push ebx
mov edx, edi
call fcn.00401da3
movzx eax, word [ebx + esi*2 - 2]
cmp eax, 0x3a
je 0x412113
cmp eax, 0x5c
je 0x412113
push 0x402df0
mov edx, edi
lea ecx, [ebp - 0x210]
call fcn.00402c8a
inc esi
push 0x40b210
mov edx, edi
lea ecx, [ebp - 0x210]
call fcn.00402c8a
lea eax, [ebp - 0x460]
push eax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_FindFirstFileW]
mov dword [ebp - 0x46c], eax
cmp eax, 0xffffffff
je 0x412220
cmp dword [0x426124], 0
jne 0x412206
lea edx, [ebp - 0x22c]
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x464]
jne 0x412160
sub ecx, edi
sar ecx, 1
jne 0x412193
lea edx, [ebp - 0x434]
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x464]
jne 0x412180
sub ecx, edi
sar ecx, 1
lea eax, [ecx + esi]
mov ecx, 0x104
push edx
cmp eax, ecx
jge 0x41c033
lea edi, [esi + esi]
mov edx, ecx
lea eax, [ebp - 0x210]
sub edx, esi
add eax, edi
mov ecx, eax
call fcn.00401da3
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x470], eax
test al, 0x10
jne 0x412442
test al, 1
jne 0x41beca
mov edx, eax
lea ecx, [ebp - 0x210]
call fcn.0040c230
test eax, eax
jne 0x41bee6
lea eax, [ebp - 0x460]
push eax
push dword [ebp - 0x46c]
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_FindNextFileW]
test eax, eax
jne 0x412148
mov eax, dword [ebp - 0x46c]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_FindClose]
cmp dword [0x426124], 0
jne 0x41c052
mov ecx, ebx
call fcn.004123dc
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00401200
mov esp, ebp
pop ebp
ret
mov ecx, 0x402c60
lea eax, [ebp - 0x434]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4124ed
test dx, dx
je 0x412477
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4124ed
add eax, 4
add ecx, 4
test dx, dx
jne 0x41244d
xor edi, edi
mov eax, edi
test eax, eax
je 0x4121eb
mov ecx, 0x402c64
lea eax, [ebp - 0x434]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x412652
test dx, dx
je 0x4124b8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x412652
add eax, 4
add ecx, 4
test dx, dx
jne 0x41248e
mov eax, edi
test eax, eax
je 0x4121eb
lea edx, [ebp - 0x474]
lea ecx, [ebp - 0x210]
call fcn.00412049
cmp dword [0x426124], 0
jne 0x412206
test eax, eax
je 0x4121eb
jmp 0x41be84
sbb eax, eax
or eax, 1
xor edi, edi
jmp 0x41247b
sbb eax, eax
or eax, 1
jmp 0x4124ba
mov eax, 0xa1
jmp 0x412227
push 0x10
pop eax
mov ecx, edi
mov dword [ebp - 0x460], eax
mov dword [ebp - 0x43c], ecx
jmp 0x4120cb
test ecx, 0x20000000
je 0x4120de
jmp 0x412220
mov ecx, dword [ebp - 0x468]
mov dword [ecx], edi
cmp eax, 0x91
jne 0x41bea0
cmp dword [ebp - 0x474], 0
je 0x4121eb
lea eax, [ebp - 0x210]
push eax
push 1
push 0x4000271b
call fcn.0040bd02
add esp, 0xc
push edi
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
push eax
call fcn.0040bd02
pop ecx
pop ecx
jmp 0x4121eb
and eax, 0xfffffffe
push eax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_SetFileAttributesW]
mov eax, dword [ebp - 0x470]
jmp 0x4121d6
cmp eax, 0x4d3
je 0x412206
cmp eax, 3
jne 0x41bf32
push 4
lea eax, [ebp - 0x210]
push 0x41c05c
push eax
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
je 0x41bf32
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_GetFullPathNameW]
cmp eax, 0x104
jle 0x41bf32
push 0x6f
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_SetLastError]
lea ecx, [ebp - 0x22c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x464]
jne 0x41bf3b
sub ecx, edx
sar ecx, 1
je 0x41bfa2
cmp edi, 0x208
jae 0x41c02e
xor eax, eax
lea ecx, [ebp - 0x434]
mov word [ebp + edi - 0x210], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x464]
jne 0x41bf6f
sub ecx, edx
sar ecx, 1
lea eax, [ecx + esi]
mov ecx, 0x104
mov edx, ecx
cmp eax, ecx
lea ecx, [ebp - 0x210]
jb 0x41bfe9
lea eax, [ebp - 0x22c]
push eax
call fcn.00402c8a
lea eax, [ebp - 0x210]
push eax
push 1
push 0x4000271b
call fcn.0040bd02
add esp, 0xc
xor edi, edi
push edi
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
push eax
call fcn.0040bd02
pop ecx
pop ecx
push dword [ebp - 0x470]
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_SetFileAttributesW]
mov eax, dword [ebp - 0x468]
mov dword [eax], edi
jmp 0x4121eb
lea eax, [ebp - 0x434]
push eax
call fcn.00402c8a
lea eax, [ebp - 0x210]
push eax
push 1
push 0x4000271b
call fcn.0040bd02
xor eax, eax
lea ecx, [ebp - 0x210]
add esp, 0xc
mov word [ebp + edi - 0x210], ax
lea eax, [ebp - 0x22c]
mov edx, 0x104
push eax
call fcn.00402c8a
jmp 0x41bfb8
call fcn.0041c651
mov eax, dword [ebp - 0x468]
xor ecx, ecx
push ebx
push 2
push 0x400023da
mov dword [eax], ecx
call fcn.0040bd02
add esp, 0x10
jmp 0x412206
xor eax, eax
jmp 0x412227