Function at 0x411d10
Capabilities:
Check if file exists
Enumerate files on windows
Get file attributes

Disassembly:
sub esp, 0x464
mov eax, dword [sym.imp.MSVCRT.dll_free]
mov ecx, dword [sym.imp.MSVCRT.dll_malloc]
push ebx
push esi
push edi
xor ebx, ebx
push eax
push ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
call fcn.00417cc0
add esp, 8
test eax, eax
jne 0x411d46
pop edi
pop esi
pop ebx
add esp, 0x464
ret
mov ecx, dword [esp + 0x478]
lea edx, [esp + 0x10]
lea eax, [esp + 0x170]
push edx
push eax
push 0x200
push ecx
mov byte [esp + 0x180], bl
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov edx, dword [esp + 0x10]
cmp edx, ebx
jne 0x411d91
lea edi, [esp + 0x170]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + ecx + 0x170]
mov dword [esp + 0x10], edx
mov edi, str..key
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x170]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x411ddb
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x464
ret
push ebp
mov ebp, dword [esp + 0x488]
mov eax, dword [esp + 0x34]
and eax, 0x10
test al, al
jne 0x411fbd
lea edi, [esp + 0x60]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x60]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x411e36
lea eax, [esp + 0x174]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x411e88
lea edi, [esp + 0x164]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x164]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x411fbd
lea eax, [esp + 0x174]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x411fbd
mov esi, dword [esp + 0x484]
mov edi, dword [esp + 0x480]
mov eax, dword [esp + 0x478]
lea ecx, [esp + 0x10]
push ecx
push esi
lea edx, [esp + 0x17c]
push edi
push edx
push eax
mov dword [esp + 0x24], ebx
call fcn.00411ff0
add esp, 0x14
cmp eax, ebx
jne 0x411edc
mov eax, dword [esp + 0x478]
lea ecx, [esp + 0x10]
push ecx
push esi
lea edx, [esp + 0x17c]
push edi
push edx
push eax
call fcn.00412440
add esp, 0x14
mov ecx, dword [esp + 0x18]
or ecx, eax
mov eax, dword [esp + 0x10]
cmp eax, ebx
mov dword [esp + 0x18], ecx
je 0x411fbd
cmp ebp, ebx
je 0x411faf
lea ecx, [esp + 0x374]
push 0x80
push ecx
push ebx
push ebx
push 0x28100007
lea edx, [esp + 0x34]
push 0x1080001
push edx
call fcn.00417ca0
add esp, 0x10
push eax
mov eax, dword [esp + 0x20]
push eax
call fcn.004175e0
mov edi, dword [ebp + 8]
add esp, 0x14
dec edi
js 0x411f98
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x3f4]
push 0x80
push edx
mov eax, dword [ecx + edi*4]
lea ecx, [esp + 0x28]
push ebx
push ecx
push eax
call fcn.004175e0
add esp, 0x14
test eax, eax
je 0x411f95
lea esi, [esp + 0x3f4]
lea eax, [esp + 0x374]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x411f8c
cmp cl, bl
je 0x411f88
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x411f8c
add eax, 2
add esi, 2
cmp cl, bl
jne 0x411f68
xor eax, eax
jmp 0x411f91
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x411f98
dec edi
jns 0x411f34
cmp edi, 0xffffffff
jne 0x411faf
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push ecx
mov ecx, ebp
call sub.MFC42.DLL_CPtrArray::SetAtGrow
jmp 0x411fbd
mov edx, dword [esp + 0x10]
push ebx
push edx
call fcn.00417580
add esp, 8
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x411de3
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x18]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x464
ret